Automation Interoperability¶
Canonical reference: Scripting Framework (full)
Applies to: All AzureLocal repositories
Last Updated: 2026-03-17
Overview¶
This standard defines how multiple automation tools (Terraform, Bicep, ARM, PowerShell, Ansible) interoperate across AzureLocal solutions. All tools share a single configuration source and must produce identical infrastructure.
Config Flow¶
flowchart TB
A["config/variables.yml<br/>(single source of truth)"] --> B[Terraform .tfvars]
A --> C[Bicep .bicepparam]
A --> D[ARM parameters.json]
A --> E[PowerShell ConvertFrom-Yaml]
A --> F[Ansible group_vars]
B --> G[Identical Infrastructure]
C --> G
D --> G
E --> G
F --> G
Deployment Path Matrix¶
| Tool | Azure Resources | Configuration | Monitoring | Scaling |
|---|---|---|---|---|
| Terraform | ✅ | Delegates | ✅ | ✅ |
| Bicep | ✅ | Delegates | ✅ | ✅ |
| ARM | ✅ | Delegates | ✅ | — |
| PowerShell | ✅ | ✅ | ✅ | ✅ |
| Ansible | ✅ | ✅ | ✅ | ✅ |
Delegates
"Delegates" means the IaC tool provisions Azure resources but does not configure the guest OS or application layer. A separate tool (PowerShell or Ansible) handles guest configuration.
Interoperability Rules¶
- Single source of truth —
config/variables.ymlis the only config file. All tool-specific parameter files are derived. - Identical output — Given the same config, every tool must produce the same infrastructure.
- Idempotency — All scripts and templates must be safe to re-run.
- Error handling — Every tool must validate config before executing changes.
- Logging — All operations logged to
./logs/with consistent format.
Variable Path Contract¶
Scripts must use variable paths that exist in the schema. See the Variable Standards for naming rules and the Variable Reference for the complete catalog.