Postprovision Private Endpoint Subnet Wiring¶
Motivation¶
Numbered deployments can place the active Container App in a new platform VNet while older Storage accounts still have private endpoints in the previous VNet. The postprovision sidecar swap also omitted platformPrivateEndpointSubnetId, so the deployed api and worker sidecars received an empty PLATFORM_PRIVATE_ENDPOINT_SUBNET_ID even though infra/main.bicep wires the value correctly.
User-Facing Change¶
Fresh and numbered deployments now preserve the private endpoint subnet id during the six-sidecar swap. Runtime storage creation can attach workload Storage private endpoints to the current deployment VNet instead of silently skipping that step.
API/IaC Diff Summary¶
scripts/dev/postprovision.shnow requiresCONTAINER_ENV_NAME, resolves the Container Apps Environment infrastructure subnet, derives the siblingsnet-private-endpointssubnet id, validates that subnet exists, and passes it tocontainerAppControl.bicepasplatformPrivateEndpointSubnetId.- The sidecar environment variables produced by
infra/modules/containerAppControl.bicepkeep using the existingPLATFORM_PRIVATE_ENDPOINT_SUBNET_IDcontract.
Validation Evidence¶
bash -n scripts/dev/postprovision.sh- Azure diagnosis before the fix:
ca-elb-dashboard-01ran inrg-elb-dashboard-01/vnet-elb-dashboard-01, while the failing Storage accountstelbdashboardogi2vbkecehad approved private endpoints only inrg-elb-dashboard/vnet-elb-dashboard.