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, ofUnlock-XebiaLocal -Config $config -SpokeFilePaths @('<file>')voor een spoke. De spoke-unlock doet alleen iets als$WhatIfPreference$falseis; 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.