Stage-3 review sweep C+D: Model B two-root reshape + SEC-010 hardening
Phase C (Model B reshape, D-123 operator ruling):
- outer root (opentofu/main.tf): vvr1-dc0 resized to whole-DC containment VM
  (108 vCPU / 425984 MiB / 3221225472000 bytes; expose_nested_virt=true;
  single Office1 transit leg); node/plane/wan/opnsense modules removed from
  vcloud level (MOVED markers), storage-04 added per R-3.
- inner root (opentofu/vr1-dc0-substrate/): NEW second root, provider
  qemu+ssh to vvr1-dc0; reuses ../modules/* verbatim to build 9 nodes +
  6 planes + wan + opnsense inside the containment VM. dmacvicar/libvirt
  0.9.8 pinned (.terraform.lock.hcl committed). Both roots tofu-validate.
- variables.tf: vvr1_dc0_vcpu/memory_mib/disk_bytes with derivation comment.

Phase D (SEC-010, R3-F02): site-headend-install.sh --host-nodes node-host
bootstrap installs qemu-kvm+libvirt, persists+verifies nested=1, writes a
transit FORWARD-drop (nftables inet sec010) enforcing DC-LOCAL under Model B.
Gate hardened (advisor catch): --check now verifies the keyed transit
interface EXISTS, else nftables oifname loads clean but matches nothing
(fail-open). Harness 49/49.

Records: D-103/107/114/121/122/123/124 amendments (append-only);
model-a-fallback-plan synced; ledgers + Phase-C changelog.

KNOWN GAP (OBS-3, operator-confirmed 2026-07-16): under Model B the inner
vr1-dc0-wan NAT is nested inside vvr1-dc0 (single transit NIC), severing the
simulated-ISP egress that Model A had at vcloud level. DC0/DC1 ARE meant to
have ISP connections -- egress path resolution is follow-up design work, not
resolved by this commit.

Present-only; not pushed. Gauntlet ALL GREEN (63); repo-lint 0 fail.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ck6xh3jWQi5b3Su8Dx1LEH
1 parent 114d392 commit 5175365c001e77cf0c863b64867a8806d87465b5
@JANeumatrix JANeumatrix authored 12 hours ago
Showing 15 changed files
View
docs/changelog-20260716-review-sweep-phaseC.md 0 → 100644
View
docs/design-decisions.md
View
docs/model-a-fallback-plan.md
View
docs/security-ledger.md
View
docs/session-ledger.md
View
opentofu/main.tf
View
opentofu/modules/maas-vm-host/main.tf
View
opentofu/variables.tf
View
opentofu/vr1-dc0-substrate/.terraform.lock.hcl 0 → 100644
View
opentofu/vr1-dc0-substrate/main.tf 0 → 100644
View
opentofu/vr1-dc0-substrate/variables.tf 0 → 100644
View
opentofu/vr1-dc0-substrate/versions.tf 0 → 100644
View
runbooks/dc-dc-phase2-tofu-dc-substrate.md
View
scripts/site-headend-install.sh
View
tests/site-headend-install/run-tests.sh