Ga naar inhoud

Naamgeving en Terraform state

Naamonderdelen

Onderdeel Variabele (<env-folder>/global.auto.tfvars of <region>/global.auto.tfvars) Voorbeeld
<company> scaffold_company_short_name demo
<env> scaffold_environment canary, prod
<envshort> scaffold_environment_short_name cnry, prod
<region> scaffold_location_short_name (regiobestand) weu
regionaam scaffold_location (regiobestand) westeurope

De meeste namen kunnen worden overschreven met een overwrite_* variabele in dezelfde layer. Namen die in deze gids voorkomen:

Resource Standaardnaam Bron
Connectivity resource group rg-<company>-connectivity-<env>-<region>-001 infra/deploy/firewall/locals.tf, connectivity/locals.tf
Firewall policy afwp-<company>-connectivity-<env>-<region>-001 infra/deploy/firewall/locals.tf
App Gateway resource group rg-<company>-appgw-<env>-<region>-001 infra/deploy/connectivity/locals.tf
WAF policy resource group rg-<company>-agw-<env>-<region>-001 infra/templates/web_application_firewall_policy/main.tf
App Gateway Key Vault kv<company>agw<envshort><region>001 infra/templates/application_gateway/main.tf
App Gateway identity / public IP uai-<company>-agw-<env>-<region>-001 / pip-<company>-agw-<env>-<region>-001 idem
Platform action groups ag-<company>-mgmtgeneral-<env>-<region>-001, ag-<company>-mgmtxpirit-<env>-<region>-001 infra/templates/monitor/main.tf
Hub 24/7 action group / rule ag-<company>-hub247-<env>-<region>-001 / apr-<company>-hub247-<env>-<region>-001 infra/deploy/connectivity/main.tf
Alert initiative assignments alerting_servicehealth, alerting_management, alerting_landingzone, alerting_identity, alerting_connectivity infra/deploy/postdeployment/main_policies_alerts.tf

Spoke-namen (spoke-canvas/deploy/spoke/locals.tf)

Resource Standaardnaam
Resource group rg-canvas-<wl>-<env>-<region>-001
Log Analytics log-<wl>-<env>-<region>-001
Key Vault kv<wl><env><region>001
Storage account st<wl><env><region>001
Hub connection De VNet-naam met vnet- vervangen door con-, tenzij overwritePeeringConnectionName is gezet (modules/virtual_network/locals.tf)
Entra ID-groepen <GroupnamePrefix><wl>_<env>_Owners / _Contributors / _Readers / _Support
Service principal <SPNNamePrefix><wl>-<env>

<wl> en <env> zijn de workloadShortName en environment uit de spoke-JSON, in kleine letters. De namen van de Key Vault en het storage account moeten globaal uniek zijn in Azure.

Terraform state

Wat Storage (mcp.json) Key
Hub layer Azure.TerraformState.Hub <env>-<region>-<layer>.tfstate
Spoke subscription layer Azure.TerraformState.Spoke <wl>_<env>_Subscription.tfstate
Spoke canvas layer Azure.TerraformState.Spoke spoke_<wl>_<env>.tfstate

<env> in de hub key is de naam van de map waarin mcp.json staat. De backend is azurerm met use_azuread_auth=true (src/Xebia.Mcp/Functions/Private/Terraform/Invoke-XebiaTerraformBackend.ps1).

Vastzittende state lock

Een geannuleerde run kan een blob lease op een state-bestand achterlaten. Symptoom: Error acquiring the state lock.

  • Lokaal, in de dev container (zie Eén layer lokaal draaien): Unlock-XebiaLocal -Config $config -DeployName <layer> -Region <region> voor een hub layer, of Unlock-XebiaLocal -Config $config -SpokeFilePaths @('<file>') voor een spoke. De spoke-unlock doet alleen iets als $WhatIfPreference $false is; de hub-unlock werkt ook in WhatIf-modus.
  • Portal: storage account → container → state blob → Break lease.

Doorbreek een lease alleen als je zeker weet dat er geen run meer actief is.