diff --git a/runbooks/dc-dc-teardown-rollback.md b/runbooks/dc-dc-teardown-rollback.md index 441d81e..e8527c3 100644 --- a/runbooks/dc-dc-teardown-rollback.md +++ b/runbooks/dc-dc-teardown-rollback.md @@ -20,6 +20,37 @@ --- +> ## !!! MODEL B RESHAPE (D-123, 2026-07-16) -- READ BEFORE ANY DC TEARDOWN; this runbook's body predates it !!! +> +> This runbook was written (2026-07-10) for the SINGLE-ROOT shape (OpenTofu creates the DC node-VM +> domains / planes / edge directly on the **vcloud** host, and `maas-vm-host` registers the vcloud +> host). Under **D-123 Model B** that is no longer how a DC is built, so the resource-by-resource +> mechanics below are partly WRONG for the DCs. Current shape: +> +> - **TWO roots / TWO state files.** The OUTER root (`opentofu/`, vcloud) owns `vvr1-dc0` (the DC +> containment VM), the office1<->dc0 transit, and the **D-125** vcloud ISP uplink (`vr1-dc0-uplink` +> NAT + the `vvr1-dc0` uplink NIC/`br-vr1-dc0-wan` netplan bridge). The INNER root +> (`opentofu/vr1-dc0-substrate/`, provider = `qemu+ssh` to `vvr1-dc0`) owns everything INSIDE the +> DC -- the 9 node VMs, the 6 planes, `vr1-dc0-wan`, the OPNsense edge, the inner pool. So the +> "node-VM domains / planes / edge" this runbook talks about live on **`vvr1-dc0`'s libvirt, not +> vcloud's**, and `maas-vm-host` registers **`vvr1-dc0`'s inner virsh** to the Office1 REGION. +> - **Whole-DC site-down is ONE object: `virsh destroy vvr1-dc0`** (the D-122/D-123 point). Destroying +> the containment VM instantly takes down the entire inner fleet -- no per-domain group destroy +> needed. That is the fast path for "abandon this DC and rebuild." +> - **Teardown ORDER (two roots):** tear down the INNER root first (`cd opentofu/vr1-dc0-substrate && +> tofu destroy`, or just `virsh destroy vvr1-dc0` if you're discarding the whole DC), THEN the OUTER +> root. The D-061-style "clean up MAAS's record before destroying the libvirt underneath" principle +> below still applies -- but the `maas-vm-host` record now points at `vvr1-dc0`'s inner virsh, so +> remove it BEFORE destroying `vvr1-dc0`. +> - **Reverting Model B -> Model A** (a different operation from teardown) is +> `docs/model-a-fallback-plan.md` (git tag `model-a-fallback`), not this runbook. +> +> Until the body below is rewritten to the two-root shape, treat its DC-substrate steps as +> **single-root reference** and apply the mapping above. The Office1 (`voffice1`) and mesh/pool steps +> are unaffected. + +--- + ## When to use this runbook - **Mid-buildout failure recovery.** A stage's `tofu apply` failed partway