-
Notifications
You must be signed in to change notification settings - Fork 95
Troubleshooting
Chris Panagiotidis edited this page Jun 12, 2026
·
1 revision
Use this page to narrow failures by symptom.
The GitHub UI can show a Wiki tab before the underlying .wiki.git repo exists.
Expected remote:
https://github.com/Jamonygr/azure-landing-zone-lab.wiki.git
If clone or push says Repository not found, create the first page in the GitHub UI or retry pushing a local wiki commit to the wiki remote.
Symptom:
terraform fmt -check -recursive -diff
Fix:
terraform fmt -recursiveThen review the diff before committing.
Check:
- Provider initialization.
- Variable type mismatches.
- Conditional module references.
- Missing required inputs.
- Output references to disabled modules.
Source files:
Likely causes:
- Missing
id-token: writepermission. - Wrong
AZURE_CLIENT_ID. - Wrong
AZURE_TENANT_ID. - Federated credential subject does not match repo, branch, or environment.
- Entra app lacks required Azure role assignments.
Relevant docs in this wiki:
Check secrets:
TF_STATE_RGTF_STATE_SAAZURE_SUBSCRIPTION_ID
Check Azure:
- Storage account exists.
- State container exists or action can create it.
- Automation identity has Storage Blob Data Contributor or equivalent.
- Network rules allow the runner path, or private runner path exists.
Source:
Policy files:
Typical causes:
- Missing tags.
- Storage public access.
- SQL public network access.
- Location not in approved region list.
- Key Vault soft delete not configured.
Symptom:
- Plan fails because
allowed_jumpbox_source_ipscontains0.0.0.0/0.
Fix:
- Replace with a trusted CIDR.
- Or leave it empty and disable public jumpbox IP.
- Do not set
allow_public_rdp_from_internet = trueexcept for temporary break-glass testing.
Source: variables.tf
Symptom:
- Cost management is enabled but no real email is configured.
Fix:
deploy_cost_management = true
cost_alert_emails = ["platform-team@example.com"]Source:
Check:
deploy_application_gateway = truedeploy_workload_prod = true-
deploy_load_balancer = trueif web VMs are expected - Workload web server IP output exists
Source:
Check:
deploy_private_dns_zones = truedeploy_private_endpoints = true- Private DNS zones are linked to hub and relevant spokes.
- Workload DNS path uses Azure DNS or forwards to Azure.
- Private Endpoint network interfaces exist in the shared PE subnet.
Source:
Symptom:
ARM_SUBSCRIPTION_ID not set, skipping integration tests
Fix:
$env:ARM_SUBSCRIPTION_ID = "<subscription-id>"
Set-Location tests
go test ./... -vAlso install Go if go is not recognized.
Source: tests/landing_zone_test.go
- Architecture Overview
- Full Environment Inventory
- Network Topology
- Shared Services
- Workloads
- Module Reference
- Security Model
- Security Operations
- Identity and Access
- Governance and Policy
- Production Readiness Review
- Monitoring and Diagnostics
- Operations Runbooks
- Azure Portal Validation Evidence
- Cost Management
- Disaster Recovery and Resilience