With extendable parameter files, you can define shared parameter values once in a base parameter file. Environment-specific parameter files can inherit these values via the extends […]
Azure Bicep has become much better over the years at helping you write strongly typed Infrastructure as Code. With features such as user-defined types, typed variables, […]
Learn when to use Azure Bicep roleDefinitions() versus existing role definition resources for Azure RBAC role assignments, with practical guidance for built-in and custom roles.
Terraform modules usually start with good intentions. A team wants consistency, there is some repeated Terraform, and a shared module feels like the obvious next step. […]
Learn how to use the new Azure Bicep this.exists() and this.existingResource() functions to achieve full idempotency when deploying Azure MySQL Flexible Server replicas, working around poorly […]
Azure Bicep User-Defined Functions are powerful tools for standardising and sharing logic across your organisation. However, changes to these functions can introduce errors that impact your […]
One of the most challenging and time-consuming aspects of managing Azure Policy at scale is ensuring the policy does what it’s supposed to do without causing […]
Sometimes the hardest part of contributing to a Terraform provider is not the resource implementation itself, but figuring out how to… Continue reading on Azure Terraformer […]
Background I have developed several Azure Policy-related solutions for various customers over the last 4-5 years. Some of these patterns have kept evolving over time. I […]
If you’ve ever tried to put together a “simple” Terraform module for Azure, you’ll know it rarely stays simple. You start with a couple of resources. […]