Description
Describe the solution you'd like
Our team manages a large set of Bicep deployments in our Azure tenant. The way that our applications are designed requires a fair amount of resources to be deployed for each customer on our solution. We have a few fairly large customers, so the design scales appropriately, but it is still becoming an issue to keep track of all these customer-specific deployments via imperative pipelines, especially during upgrades.
For this reason, we are looking into managing all application and customer deployments via AzOps. Every customer is based on the same exact Bicep module stored in our container registry, but parameterization is slightly different. In order to reference this external Bicep module in AzOps, we need to wrap it in a template and proxy all the parameters through to the module. We feel that duplicating the Bicep "wrapper" template for every customer will not scale well, since they will be exact copies of one another, and the set of parameters we proxy through the template in the AzOps repository is not exactly short:
subscription/
├── customer-a.bicep
├── customer-a.parameters.json
├── customer-b.bicep
├── customer-b.parameters.json
├── customer-c.bicep
└── customer-c.parameters.json
Our goal is to have a declarative set of customer-specific parameter files and a single Bicep template, as such:
subscription/
├── customer.a.parameters.json
├── customer.b.parameters.json
├── customer.c.parameters.json
└── customer.bicep
We don't feel strongly about the naming convention for correlating parameter files to template files, so either of these could work:
customer.bicep
<->customer.<id>.parameters.json
customer.bicep
<->customer.parameters.<id>.json
Adding a parameter file
Whenever a parameter file is added, we expect a deployment to take place of the corresponding Bicep file for that new parameter file only. Deployments based on other parameter files must be unaffected.
Modifying parameter files
Whenever a set of parameter files are modified, we expect a deployment to take place of the corresponding Bicep file for each of the changed parameter files only. Deployments based on unmodified parameter files must be unaffected.
Modifying the template
Whenever the Bicep or ARM template is modified, we expect a deployment to take place for every corresponding parameter file.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status