variable "libvirt_uri" {
description = "libvirt connection URI for the vcloud host (e.g. qemu+ssh://user@host/system). MUST be measured this session, never guessed -- no default."
type = string
}
variable "domain_suffix" {
description = "Base domain for per-plane libvirt DNS domains. Anchor value per D-106's naming convention (<service>.omega.<dc>.vr1.cloud.neumatrix.local)."
type = string
default = "cloud.neumatrix.local"
}
variable "underlay_mtu" {
description = "Underlay MTU applied to every plane and mesh-link network. MUST be the Phase-0 MEASURED host L2 MTU (buildout-design Section 3 / D-102) -- do not assume jumbo (9000). No default -- pass explicitly, e.g. via a Phase-0-specific tfvars file once measured."
type = number
}
variable "dc1_pool_path" {
description = "Host filesystem path for DC1's libvirt storage pool. Measured, real path on the vcloud host -- no default."
type = string
}
variable "office1_pool_path" {
description = "Host filesystem path for Office1's libvirt storage pool (MAAS-region/NetBox/GitBucket service-VM disks). Measured, real path on the vcloud host -- no default."
type = string
}
variable "dc1_planes" {
description = <<-EOT
DC1's six planes. DC1 INHERITS the DC0 v4 layout UNCHANGED (D-101) --
these CIDRs are copied from scripts/lib-net.sh's PLANE_CIDRS array as it
stood 2026-07-09, not invented here. If lib-net.sh changes, update this
default in the SAME change (it is a second copy of the same fact, not an
independent source -- a future DOCFIX candidate is a generator that keeps
both in sync automatically instead of two hand-maintained copies).
EOT
type = map(object({
cidr = string
}))
default = {
provider-public = { cidr = "10.12.4.0/22" }
metal-admin = { cidr = "10.12.8.0/22" }
metal-internal = { cidr = "10.12.12.0/22" }
data-tenant = { cidr = "10.12.16.0/22" }
storage = { cidr = "10.12.32.0/22" }
replication = { cidr = "10.12.36.0/22" }
}
}
# dc2_planes has NO variable/default here yet, deliberately: DC2's supernet is
# a D-101 OPEN SUB-ITEM ("exact prefixes assigned in NetBox, non-colliding with
# DC1..."), not yet assigned anywhere. Do not add a guessed default -- once
# NetBox assigns it, add a dc2_planes variable shaped exactly like dc1_planes
# above and a matching module "dc2_planes" block in main.tf (see the commented
# skeleton there).