Epic: Script Provisioning Provider Extension
The Script Provisioning Provider is designed as a pragmatic onramp for teams adopting Azure with azd. It enables teams with existing script-based provisioning workflows to immediately benefit from azd's environment management, parameter resolution, and deployment lifecycle -- while providing a natural migration path toward declarative IaC (Bicep or Terraform) over time.
Context
Problem
Today, azd provision and azd down only work with declarative IaC tools (Bicep and Terraform). Many teams manage Azure infrastructure with imperative shell scripts that call az cli, Azure PowerShell, or other Azure tooling. These teams cannot adopt azd without rewriting their provisioning workflows.
The provisioning provider extensibility framework (#7465) enables extensions to register custom provisioning providers via gRPC. This epic delivers a Script Provisioning Provider Extension (microsoft.azd.scripts) -- a first-party extension that allows users to configure shell scripts (bash/PowerShell) as their provisioning and teardown workflow in azure.yaml.
Architecture
The extension is a pure provisioning provider -- no custom CLI commands, no MCP server, no lifecycle event handlers. It registers a "scripts" provider via WithProvisioningProvider("scripts", factory) and implements the full azdext.ProvisioningProvider interface.
Key components:
- ProviderConfig / ScriptConfig -- typed configuration parsed from
infra.config in azure.yaml
- EnvResolver -- 4-layer environment variable merging (secrets > env > azd env > OS)
- ScriptExecutor -- runs bash/pwsh scripts with merged environment, streams stdout/stderr
- OutputCollector -- discovers and parses
outputs.json files, merges across scripts
Work Items
| # |
Issue |
Title |
Status |
| 1 |
#7734 |
Extension scaffold |
Not started |
| 2 |
#7735 |
Config design and parsing |
Not started |
| 3 |
#7736 |
Full provider implementation |
Not started |
Dependency Order
#7734 Extension Scaffold (no dependencies -- start here)
|
v
#7735 Config Design & Parsing (depends on scaffold)
|
v
#7736 Full Provider Implementation (depends on config parsing)
Epic: Script Provisioning Provider Extension
The Script Provisioning Provider is designed as a pragmatic onramp for teams adopting Azure with azd. It enables teams with existing script-based provisioning workflows to immediately benefit from azd's environment management, parameter resolution, and deployment lifecycle -- while providing a natural migration path toward declarative IaC (Bicep or Terraform) over time.
Context
WithProvisioningProvider()fluent API and gRPC protocol)Problem
Today,
azd provisionandazd downonly work with declarative IaC tools (Bicep and Terraform). Many teams manage Azure infrastructure with imperative shell scripts that callaz cli, Azure PowerShell, or other Azure tooling. These teams cannot adopt azd without rewriting their provisioning workflows.The provisioning provider extensibility framework (#7465) enables extensions to register custom provisioning providers via gRPC. This epic delivers a Script Provisioning Provider Extension (
microsoft.azd.scripts) -- a first-party extension that allows users to configure shell scripts (bash/PowerShell) as their provisioning and teardown workflow inazure.yaml.Architecture
The extension is a pure provisioning provider -- no custom CLI commands, no MCP server, no lifecycle event handlers. It registers a
"scripts"provider viaWithProvisioningProvider("scripts", factory)and implements the fullazdext.ProvisioningProviderinterface.Key components:
infra.configinazure.yamloutputs.jsonfiles, merges across scriptsWork Items
Dependency Order