I'm fairly new to devops, and the concept, so bear with me.
Google and Microsoft is not helping me a lot.
We have a single solution with a website, an API and a common project (for logic and a database)
Which we are hosting on an IIS server, with the solution configured for each customer/tenant
As so many others, I simply just want to run a release pipeline, where I type in "customerName", "Id", "ConnectionString" and what have you...
This is fairly simple, IF I just change connectionstrings and some AppSettings, with 'Variable Substitution' and adding a 'VariableGroup' per customer/tenant.
(However config keys with the same name, gets set to the same, in both web.configs/app.configs)
The problem is we have varying settings in various customer/tenants Web.config
E.g some customers have some <MadeUp> sections i their web.config, with varying subvalues.
And all customers/tenants needs to have a whitelist of ip's that can access the API project
And Azure Devops doesn't like multiple values for a variable.
EXTRA BONUS: The reason for this subject, is that we want to get away from config.transformations and set values in pipeline somehow.
I've experimented with powershell scripts, to do some inserts to the different web.configs and app.configs, but that seem so crude and unmanageable, since I have to edit the script for each customer.
I've experimented with 'Variable groups' for each tenant, but Azure Devops doesn't seem to like lists of variables values.
I was hoping for some "simple" solution, where I typed in the variable values in a task (per tenant) and then just deployed that. But that does NOT seem to be the way devops operates.
(I've seen something that looks like this in Octopus, but Octopus is not an option right now)
It sounds so simple in my head, but being new to devops, its beyond me, how I edit the 2 web.configs and 2 app.configs per customer.
(excact same system, different configs)