diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 89e3a12..909bbea 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -319,6 +319,20 @@ build: WHERE each DC's region lives** (rack host vs its own DC VM; if a VM, the D-134 octet map needs a ruled octet -- `.6` is next free after `.4` artifact and `.5` Juju controller) -- present as its own GA-R5 exchange before any install. + **^ SUB-QUESTION RULED 2026-07-30 (GA-R5). Operator answer, exact utterance: "Dedicated + region VM per DC at utility .6 (Recommended)".** Each DC's MAAS region (regiond + + PostgreSQL) runs in its OWN VM, not on the rack host -- the region DATABASE must not share + fate with the hypervisor running every node it manages, which is also a precondition for + D-132 question 3 (cross-site backup custody, still pinned). **The D-134 STANDING OCTET MAP + IS EXTENDED: `.6` is now the per-DC MAAS region at every future DC standup**, giving + `.4` artifact service / `.5` Juju controller / `.6` MAAS region; divergence between DCs at + the same octet remains a DEFECT. Addresses: `10.12.8.6` (dc0), `10.12.68.6` (dc1). + BUILD NOTES (not rulings): author BOTH metal-admin AND provider-public legs at creation -- + the region needs egress for image sync, and the identical under-carve on the Juju controller + VM cost three bootstrap attempts today; re-measure capacity with + `scripts/dc-dc-whole-host-budget.py` before applying (the D-104 gate passed at RAM 83% for + the 10-node shape and this adds a 12th domain per rack); the substrate caller is + `for_each`-keyed so it plans `1 add / 0 change / 0 destroy`. - Project: Omega Cloud, VR1 DC-DC rehearsal -- a two-DC + Office1-headend virtual rehearsal on KVM (vcloud host), rehearsing the future bare-metal diff --git a/docs/design-decisions.md b/docs/design-decisions.md index dc2aea8..311234d 100644 --- a/docs/design-decisions.md +++ b/docs/design-decisions.md @@ -6601,3 +6601,40 @@ **Roosevelt analog:** this IS the Roosevelt shape, arriving one deployment early -- per-DC regions are what D-132 was filed to propose. The rehearsal value is real: the cross-fiber provider-API dependency would have been discovered at Roosevelt scale otherwise. + +## D-132 -- AMENDMENT ADDENDUM (2026-07-30): the per-DC region lives in its OWN VM at utility-band .6 + +**Status: RULED 2026-07-30** (operator, GA-R5), immediately following the per-DC region +ruling above. That ruling deliberately left placement open; this closes it. + +**Question as presented.** Where does each DC's MAAS region controller live -- co-located on +the DC rack host, or in its own VM? Context put to the operator: the rack host already runs +the MAAS RACK controller, the D-131 node-DNS forwarder and the artifact service, AND is the +libvirt host for every node VM, so it is already the DC's busiest single failure point. A +dedicated VM follows the D-134 standing octet map (`.4` artifact service, `.5` Juju +controller, so `.6` next free) and needs authoring into that DC's substrate root via the same +additive `for_each` pattern that added the D-104 controller VM. + +**Operator answer, exact utterance: "Dedicated region VM per DC at utility .6 +(Recommended)".** + +**RULED (1) -- placement.** Each DC's MAAS region controller (regiond + PostgreSQL) runs in +its OWN VM inside that DC, NOT on the rack host. Rationale carried from the question: the +region DATABASE must not share fate with the hypervisor running every node it manages. That +independence is a direct precondition for D-132 question 3 (cross-site backup custody), which +remains pinned -- a backup whose only copy dies with the rack host is not custody. + +**RULED (2) -- the address, and it EXTENDS the D-134 standing octet map.** The region VM takes +utility-band octet **`.6`** on every plane it is attached to: `10.12.8.6` (dc0) and +`10.12.68.6` (dc1) on metal-admin. Per the D-134 amendment of 2026-07-29 the octet map is a +STANDING CROSS-DC STANDARD and divergence between DCs at the same octet is a DEFECT, so `.6` +is now reserved for the per-DC MAAS region at EVERY future DC standup. Running map: +`.4` artifact service (mirror or proxy), `.5` Juju controller, `.6` MAAS region. + +**Build notes carried forward (not rulings).** The VM needs a provider-public leg for image +sync egress in addition to metal-admin -- the same under-carve that cost three bootstrap +attempts on the Juju controller VM; author BOTH legs at creation rather than discovering the +gap at first sync. Capacity must be re-measured with `scripts/dc-dc-whole-host-budget.py` +before applying: the D-104 amendment's gate passed at RAM 83% for the 10-node shape and this +adds a 12th domain per rack. The substrate caller is `for_each`-keyed, so the addition plans +as `1 add / 0 change / 0 destroy`.