Loading_
Loading_
Opinionated hub-and-spoke landing zone with management groups, policy assignment, hub firewall and spoke peering.
# ─────────────────────────────────────────────────────────────────────────# AIInfraEngine — Azure Landing Zone# Hub-and-spoke with management-group-scoped policy inheritance.# ───────────────────────────────────────────────────────────────────────── terraform { required_version = ">= 1.9.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.14" } }} provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = true } }} # ── Variables ──────────────────────────────────────────────────────────── variable "org_prefix" { description = "Short organisation prefix used in every resource name." type = string190 more lines behind the library licence
azure-landing-zone.tf · 7.0 KB · 3 dependencies documented
This one is behind the licence because it is the kind of script that does real damage when it is wrong — and the version above has already been broken and fixed by two engineers in a live estate.
This module lays down the parts of an Azure landing zone that every organisation needs and nobody enjoys building twice: the management group hierarchy, policy assignments at the right scope, a hub VNet with Azure Firewall, and spoke peering.
Policy is assigned at the management group rather than the subscription so new subscriptions inherit governance the moment they are moved into the hierarchy — no post-creation checklist.
Spokes are defined as a map, which means adding a workload subscription is a two-line change rather than a copy-paste of the whole network block.
| Name | Type | Required | Description |
|---|---|---|---|
org_prefix | string | Required | 2–6 lowercase letters used in every resource name. |
hub_address_space | string | Optional | Hub VNet CIDR. Default 10.0.0.0/22. |
spokes | map(object) | Optional | Workload spokes keyed by name. |
The platform turns any script into a governed automation — versioned, gated, audited and reversible.