Skip to content

[EPIC] Script Provisioning Provider Extension #7733

Description

@wbreza

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)

Metadata

Metadata

Assignees

Labels

area/provisioningBicep/Terraform/ADE provisioningepicLarge multi-issue initiative

Type

Fields

No fields configured for Task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions