d139-steps2-3-dc0-20260801.txt
===============================
D-139 execution STEPS 2 and 3 for vr1-dc0. EXECUTED 2026-08-01, operator-gated.
Run from voffice1 (D-128 Plane-2) via the restored :5241 forward, profile
vr1-dc0-region asserted by rack identity before any call.
STEP 2 -- MAAS GUA /64s alongside the existing ULA
scripts/dc-plane-ipam.sh carve-v6 vr1-dc0 --commit
planned=5 applied=5 skipped=7 errors=2
Each GUA /64 created on the SAME vlan as its v4 twin, each read back:
2602:f3e2:f02:20::/64 vlan 5001 (metal-admin) + fd50:840e:74e2:220::/64
2602:f3e2:f02:21::/64 vlan 5004 (metal-internal) + fd50:840e:74e2:221::/64
2602:f3e2:f02:30::/64 vlan 5005 (data-tenant) + fd50:840e:74e2:230::/64
2602:f3e2:f02:40::/64 vlan 5006 (storage) + fd50:840e:74e2:240::/64
2602:f3e2:f02:50::/64 vlan 5007 (replication) + fd50:840e:74e2:250::/64
2602:f3e2:f02:10::/64 vlan 5002 (provider-public) -- already GUA, untouched
The 2 errors are CORRECT REFUSALS, not failures: lbaas-mgmt and oob have no v4
plane to pair with ("refusing to guess a fabric"). lb-mgmt is D-139 step 5; oob's
10.12.40.0/22 is ruled-but-not-built.
Independent read-back: 11 v6 subnets, 6 GUA + 5 ULA, every GUA paired on one vlan.
STEP 3 -- node v6 statics migrated ULA -> GUA, WHILE v4 IS STILL PRESENT
scripts/dc-node-v6-carve.py replace vr1-dc0 --v6-family gua --commit
applied=45 skipped=9 errors=0; READ-BACK: 45/45 link(s) verified live
PRE : 54 v6 links on tagged nodes -- GUA 9, ULA 45
POST: 54 v6 links on tagged nodes -- GUA 54, ULA 0
NICs carrying more than one global v6: 0 (G19's sole-global predicate holds)
The 9 skipped are br-ex on provider-public, already GUA before this step.
v4 was NOT touched -- that is the ordering step 3 exists to enforce, because
dc-node-v6-carve.py pivots on IPv4 existing.
GATES AFTER
dc-node-v6-carve check vr1-dc0 --v6-family gua : PASS, 54 correct, 0 missing, 0 errors
dc-plane-ipam check vr1-dc0 : 29 pass / 2 fail
The 2 are EXACTLY the two expected absences and neither is new:
v6 lbaas-mgmt 2602:f3e2:f02:80::/64 ABSENT (D-139 step 5 creates that plane)
v6 oob 2602:f3e2:f02:f0::/64 ABSENT (oob has no plane in MAAS at all)
It was 7 fail before step 2; the 5 closed are the 5 planes carved.
REVERSIBLE: `replace vr1-dc0 --v6-family ula --commit` swaps the node statics back --
both /64s remain in MAAS until step 6 retires the ULA rows. Nothing has been deleted.
NOT DONE BY THESE STEPS: no v4 was removed (step 7, still gated on the unmeasured
`network-get` question); no ULA prefix was retired (step 6); lb-mgmt's plane does not
exist (step 5); vr1-dc1 is untouched throughout.