Skip to content

Deployment updates - #815

Merged
Paul Lizer (paullizer) merged 10 commits into
Developmentfrom
deployment-updates
Mar 31, 2026
Merged

Deployment updates#815
Paul Lizer (paullizer) merged 10 commits into
Developmentfrom
deployment-updates

Conversation

@paullizer

Copy link
Copy Markdown
Contributor

No description provided.

CopilotAI review requested due to automatic review settings March 31, 2026 17:58

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repo’s deployment tooling and documentation across AZD/Bicep, Azure CLI/PowerShell, and Terraform—mainly to improve private networking parity, make deployments more repeatable (especially under MFA/claims challenges), and reduce reliance on Key Vault for “core service” key-auth configuration.

Changes:

  • Expanded deployment docs (main README, Bicep, Azure CLI, Terraform) with clearer shell/platform guidance, private networking runner connectivity guidance, and OpenAI deployment-type notes.
  • Added multiple functional regression tests that assert key deployment behaviors by scanning deployer scripts/templates.
  • Refactored deployment-time configuration to retrieve core keys directly from Azure resources / Azure CLI and added Terraform private networking support (VNets, private endpoints, private DNS handling).

Reviewed changes

Copilot reviewed 68 out of 71 changed files in this pull request and generated 13 comments.

Show a summary per file
FileDescription
README.mdAdds Azure CLI deployer reference + PowerShell-first quickstart and prerequisites guidance.
deployers/azure.yamlAdds/updates AZD hooks (preprovision validation, postprovision behavior, Windows hook coverage).
functional_tests/test_postprovision_python_dependency_install.pyRegression test for venv-aware pip install logic in postprovision hook.
functional_tests/test_postconfig_azurecli_credential.pyRegression test ensuring postconfig uses AzureCliCredential and Cosmos key fallback.
functional_tests/test_enhanced_citations_storage_deployment_fix.pyRegression test ensuring storage connection string population for enhanced citations + version check.
functional_tests/test_core_service_key_deployment_path.pyRegression test for “core service keys from Azure resources (not KV)” + version check.
functional_tests/test_azurecli_aoai_model_deployments.pyRegression test for Azure CLI deployer AOAI model deployment support and docs.
functional_tests/test_azd_windows_hooks.pyRegression test for required Windows AZD hook behavior and Cosmos/ACR handling.
functional_tests/test_azd_prerequisites_allowed_ip_auto_merge.pyRegression test for auto-merging runner public IP into AZD env before provisioning.
functional_tests/test_acr_trusted_services_bypass.pyRegression test for ACR trusted services bypass + build/run polling behavior.
docs/how-to/enterprise_networking.mdAdds “deployment runner connectivity” guidance for private endpoint reachability.
docs/explanation/fixes/v0.237.064/POSTPROVISION_VENV_PIP_USER_FIX.mdFix doc for avoiding pip --user inside venv during postprovision.
docs/explanation/fixes/v0.237.063/WINDOWS_ACR_LOG_STREAM_ENCODING_FIX.mdFix doc for Windows ACR log streaming Unicode encode failures.
docs/explanation/fixes/v0.237.062/ACR_DEPLOYMENT_TIME_PUBLIC_ACCESS_FIX.mdFix doc for allowing ACR access during build until final lockdown.
docs/explanation/fixes/v0.237.061/ACR_PREDEPLOY_TEMPORARY_FIREWALL_OPEN_FIX.mdFix doc for temporary ACR firewall changes during predeploy (historical).
docs/explanation/fixes/v0.237.060/COSMOS_FIREWALL_MFA_FALLBACK_ACCESS_CHECK_FIX.mdFix doc for Cosmos firewall MFA fallback access probing.
docs/explanation/fixes/v0.237.059/COSMOS_FIREWALL_CIDR_PROPAGATION_FIX.mdFix doc for CIDR matching + propagation wait behavior.
docs/explanation/fixes/v0.237.058/ACR_TASKS_TRUSTED_AZURE_SERVICES_FIX.mdFix doc for ACR Tasks access via trusted Azure services bypass.
docs/explanation/fixes/v0.237.057/AZD_POSTPROVISION_COSMOS_ACCESS_PROBE_FIX.mdFix doc for Cosmos data-plane probe short-circuiting.
docs/explanation/fixes/v0.237.056/AZD_PRIVATE_NETWORK_RUNNER_IP_PRIMING_FIX.mdFix doc for runner IP priming before provisioning.
docs/explanation/fixes/v0.237.055/AZD_POSTPROVISION_MFA_COSMOS_GUIDANCE_FIX.mdFix doc for surfacing MFA-specific Cosmos guidance.
docs/explanation/fixes/v0.237.054/AZD_POSTPROVISION_COSMOS_FIREWALL_RUNNER_ACCESS_FIX.mdFix doc for adding runner IP to Cosmos firewall during hook execution.
docs/explanation/fixes/v0.237.053/AZD_POSTPROVISION_COSMOS_KEY_FALLBACK_FIX.mdFix doc for Cosmos key fallback to avoid RBAC propagation timing.
docs/explanation/fixes/v0.237.052/POSTCONFIG_AZURECLI_CREDENTIAL_FIX.mdFix doc for switching postconfig to AzureCliCredential.
docs/explanation/fixes/v0.237.051/AZD_WINDOWS_SUBSCRIPTION_TARGETING_FIX.mdFix doc for subscription-pinned Azure CLI calls on Windows hooks.
docs/explanation/fixes/v0.237.050/AZD_WINDOWS_RGNAME_RESOLUTION_FIX.mdFix doc for Windows resource group name resolution fallback.
docs/explanation/fixes/v0.237.049/AZD_WINDOWS_POSTPROVISION_HOOK_FIX.mdFix doc for missing Windows hook definitions.
docs/explanation/fixes/ENHANCED_CITATIONS_STORAGE_CONNECTION_STRING_FIX.mdFix doc for ensuring enhanced citations storage connection string persistence.
docs/explanation/fixes/CORE_SERVICE_KEY_DEPLOYMENT_FIX.mdFix doc for core-service key retrieval directly from Azure resources.
docs/explanation/features/v0.237.001/PRIVATE_NETWORKING_SUPPORT.mdAdds “deployment runner access” guidance to private networking feature doc.
docs/explanation/features/TERRAFORM_PRIVATE_NETWORKING_PARITY.mdFeature doc describing Terraform private networking parity scope.
docs/explanation/features/AZURECLI_PRIVATE_NETWORKING_PARITY.mdFeature doc describing Azure CLI deployer private networking parity scope.
docs/explanation/features/AZURECLI_AOAI_MODEL_DEPLOYMENTS.mdFeature doc describing AOAI model deployment creation via Azure CLI deployer.
docs/explanation/features/ACR_BUILD_WORKFLOW_FOR_DEPLOYERS.mdFeature doc describing ACR Tasks-based build workflow across deployers.
deployers/terraform/ReadMe.mdUpdates Terraform deployer docs (private networking notes, OpenAI reuse, image build guidance).
deployers/terraform/private_networking.tfAdds Terraform resources/logic for VNets, subnets, private endpoints, and private DNS zone reuse/linking.
deployers/terraform/.terraform.lock.hclUpdates provider locks (adds azapi and bumps provider versions).
deployers/Initialize-EntraApplication.ps1Adds cloud selection/auth improvements + permission grant handling + interactive input validation.
deployers/Initialize-AzureEnvironment.ps1Adds existing OpenAI reuse options + cloud selection/auth + outputs ACR build guidance.
deployers/bicep/validate_azd_prerequisites.pyNew preprovision script to validate private networking prerequisites and persist runner IP to AZD env.
deployers/bicep/README.mdUpdates Bicep deployer docs (shell correctness, ACR build, private DNS + existing VNet guidance, OpenAI deployment type).
deployers/bicep/postconfig.pyRefactors postconfig to use Azure CLI + direct resource key retrieval, plus enhanced citations storage connection string handling.
deployers/bicep/OneClickDeploy.mdAdds upfront private networking/existing VNet prerequisite warnings for one-click deployments.
deployers/bicep/modules/videoIndexer.bicepAdds selectable Video Indexer ARM API version path (legacy vs current).
deployers/bicep/modules/speechService.bicepRemoves deployment-time Key Vault secret storage for speech keys.
deployers/bicep/modules/setPermissions.bicepAdds cross-RG/sub OpenAI permission path and conditional Video Indexer/OpenAI integration behavior.
deployers/bicep/modules/setPermissions-openAIExternal.bicepNew module to assign OpenAI roles when OpenAI is in a different RG/subscription.
deployers/bicep/modules/search.bicepRemoves deployment-time Key Vault secret storage for search key.
deployers/bicep/modules/redisCache.bicepRemoves deployment-time Key Vault secret storage for Redis key.
deployers/bicep/modules/privateNetworking.bicepAdds private DNS zone reuse and optional VNet link creation; supports external OpenAI resource scoping.
deployers/bicep/modules/privateDNSLink.bicepNew module to create VNet links in an existing private DNS zone scope.
deployers/bicep/modules/privateDNS.bicepAdds support for existing private DNS zone reuse and optional link creation.
deployers/bicep/modules/openAI.bicepAdds “existing OpenAI endpoint/resource metadata” flow; skips provisioning/models when reusing endpoint.
deployers/bicep/modules/documentIntelligence.bicepRemoves deployment-time Key Vault secret storage for doc intel keys.
deployers/bicep/modules/cosmosDb.bicepRemoves deployment-time Key Vault secret storage for Cosmos key.
deployers/bicep/modules/contentSafety.bicepRemoves deployment-time Key Vault secret storage for content safety key.
deployers/bicep/modules/azureContainerRegistry.bicepAdjusts ACR networking defaults and enables trusted Azure services bypass; removes KV secret storage.
deployers/bicep/modules/appService.bicepSwitches key-auth settings to direct listKeys/listCredentials values; adds Video Indexer env settings.
deployers/bicep/main.parameters.jsonAdds new parameters for existing VNet/subnets, OpenAI reuse, OpenAI deployment type, Video Indexer overrides.
deployers/bicep/main.bicepAdds new private networking reuse params, private DNS configs, OpenAI reuse options, default model logic, and default imageName.
deployers/bicep/cosmosDb-postDeployPerms.shAdds MFA/“already exists” detection to role assignment flows.
deployers/azurecli/README.mdMajor expansion of Azure CLI deployer documentation (features, prerequisites, private networking, AOAI models, ACR build).
deployers/azurecli/destroy-simplechat.ps1Adds cloud-aware token refresh targets + cleanup scope notes + new security group coverage.
application/single_app/route_backend_models.pyReturns configured models for Foundry endpoints / missing resource metadata instead of hard failing.
application/single_app/functions_settings.pyMakes default Video Indexer ARM API version environment/cloud-aware.
application/single_app/config.pyBumps application version to 0.240.004.
Files not reviewed (1)
  • deployers/terraform/.terraform.lock.hcl: Language not supported
Comments suppressed due to low confidence (1)

deployers/azure.yaml:223

  • The postprovision hook runs postconfig via .venv/bin/python3, but this workflow doesn’t create a .venv (and dependencies were installed via python3 -m pip ..., not into .venv). This will fail on fresh deployments. Consider invoking postconfig with the same interpreter used for the pip install step (or explicitly create/activate a venv before installing and running postconfig).
 echo ""
echo "[3/4] Running post-deployment configuration..."
if .venv/bin/python3 ./bicep/postconfig.py; then
echo "✓ Post-deployment configuration completed"
else

Comment threaddeployers/bicep/postconfig.py Outdated
Comment threaddeployers/bicep/main.parameters.json Outdated
Comment threaddeployers/bicep/validate_azd_prerequisites.py
Comment threadfunctional_tests/test_core_service_key_deployment_path.py
Comment threadfunctional_tests/test_azd_windows_hooks.py
Comment threadfunctional_tests/test_acr_trusted_services_bypass.py
Comment threadfunctional_tests/test_core_service_key_deployment_path.py
@paullizer
Paul Lizer (paullizer) merged commit 39343c3 into DevelopmentMar 31, 2026
4 checks passed
@paullizer
Paul Lizer (paullizer) deleted the deployment-updates branch March 31, 2026 18:58
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@paullizer