d139-step1-apex-push-dc0-20260801.txt
======================================
D-139 execution STEP 1 -- apex CREATE-only push, vr1-dc0. EXECUTED 2026-08-01.
Tool: netbox/d139-gua-carve.py --dc vr1-dc0 --commit (exit 0)
Apex: office1-netbox http://10.10.1.10:8000 (the WORKING VR1 apex, DOCFIX-195).
Host: vcloud. Operator-approved ("Work through the open items in order").
PRE-WRITE, verified immediately before the mutation:
apex prefix count 139
dry-run prefix set vs the reviewed capture (docs/audit/d139-carve-dryrun-20260801.txt)
IDENTICAL for the 11 originally-reviewed rows
the 2 OOB rows are NEW since that review -- added by the 2026-08-01 ruling, covered by
harness T07/T08/T12/T17 and mutation-proven (removing them turns T07 + both T08 red).
TOOL RESULT: CREATE 13 | EXISTS 3 | RETIRE-REPORT 9; READ-BACK: 13/13 present; errors=0.
INDEPENDENT READ-BACK (not the tool's own word -- a separate API query):
apex prefix count 152 (139 + 13, exact)
GUA rows scoped vr1-dc0 17 (4 pre-existing + 13 new)
:20::/60 :20::/64 role=metal-admin
:21::/64 role=metal-internal
:30::/60 :30::/64 role=data-tenant
:40::/60 :40::/64 role=storage
:50::/60 :50::/64 role=replication
:80::/60 :80::/64 role=lbaas-mgmt
:f0::/60 :f0::/64 role=oob <- the 2026-08-01 OOB ruling
ULA prefixes still present 9 (the tool has NO delete path)
ULA VIP legs still present 26 (nothing orphaned)
WHAT THIS DOES NOT DO, stated so no one reads more into it: it writes PREFIXES into the
apex only. No MAAS subnet, no node address, no VIP was created, moved or deleted. Steps
2 (MAAS GUA /64s alongside the ULA) and 3 (node v6 re-carve while v4 is still present)
remain outstanding, and the ULA retirement is step 6.
vr1-dc1 has NOT been pushed -- the two DCs are separately approved.