VR1 Stage 1+2 → main: Office1 headend, NetBox apex + tooling, edge (Stage 2 close-out complete) #1

Merged jesse.austin merged 72 commits into OpenStack:main from OpenStack:dc-dc-stage1-phase0-first-exec 2 hours ago
2026-07-15
@JANeumatrix
C2 sub-task (ii): extend sandbox loop to ip-ranges/ip-addresses; load + verify D-120 bands ...
JANeumatrix committed 9 hours ago
@JANeumatrix
creds-audit: enforce per-site credential consolidation (SEC-009); prevents the DC0/DC1 spread ...
JANeumatrix committed 12 hours ago
@JANeumatrix
C2 sub-task (i): sandbox re-verified faithful; fidelity-checker scope false-positive fixed ...
JANeumatrix committed 12 hours ago
@JANeumatrix
DOCFIX-195: office1-netbox holds the VR1 IPAM apex role; apex write-back deferred; C2 redefined ...
JANeumatrix committed 15 hours ago
@JANeumatrix
D-120 ADOPTED + EXECUTED: re-IP Office1 services into the .2-.49 static band ...
JANeumatrix committed 18 hours ago
@JANeumatrix
D-120 PROPOSED: static-services addressing for compose /24s; re-IP plan drafted ...
JANeumatrix committed 20 hours ago
@JANeumatrix
Consolidate credential/env sprawl into ~/vr1-office1-creds/ (SEC-009); seed memory ...
JANeumatrix committed 21 hours ago
2026-07-14
@JANeumatrix
C4 DONE: document the NetBox sandbox loop; add the upstream-write guard it exposed ...
JANeumatrix committed 21 hours ago
@JANeumatrix
Fix the WAF User-Agent gap: the two pynetbox importers could never write upstream ...
JANeumatrix committed 22 hours ago
@JANeumatrix
D-119 OpenTofu rename APPLIED -- repo/state back in sync (operator-gated) ...
JANeumatrix committed 22 hours ago
@JANeumatrix
Add the missing preflight-failure test; reconcile the stale tofu-sync ledger line ...
JANeumatrix committed 22 hours ago
@JANeumatrix
Ledger: write-path bugs 1-3 fixed; flag the sandbox re-verify owed before C2 ...
JANeumatrix committed 22 hours ago
@JANeumatrix
NetBox write-path hardening: the bugs that would have corrupted the apex at C2 ...
JANeumatrix committed 22 hours ago
@JANeumatrix
D-119: region-qualify the VR1 DC namespace -- C3 / gap #19 CLOSED (Stage 3 unblocked) ...
JANeumatrix committed 22 hours ago
@JANeumatrix
C1 follow-ups: verify the RDNSS we never set; correct a revert line that did not revert ...
JANeumatrix committed 1 day ago
@JANeumatrix
Office1 LAN IPv6 is LIVE and proven on the wire -- Stage 2 close-out C1 CLOSED ...
JANeumatrix committed 1 day ago
@JANeumatrix
Consolidate to one session; close last night's two delivery gaps ...
JANeumatrix committed 1 day ago
@JANeumatrix
opnsense-set-interface-v6: script the LAN IPv6 the REST API cannot set (D-113 amendment) ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-113 AMENDMENT: "interfaces: the REST API" is FALSE -- base-interface addressing has no API ...
JANeumatrix committed 1 day ago
@JANeumatrix
Pin Stage 2 as the branch merge point; reconcile the Stage 2 tracker; log the OpenTofu naming collision (gap #19) ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-118 ADOPTED (org ULA fd50:840e:74e2::/48); VR1 DC0 + DC1 IMPORTED; roles importer bug fixed ...
JANeumatrix committed 1 day ago
@JANeumatrix
Prove the sandbox is a FAITHFUL replica, not just a count-matching one ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-115 office carve IMPORTED into the Office1 NetBox; DC import blocked on ORG_ULA_48 ...
JANeumatrix committed 1 day ago
@JANeumatrix
NetBox sandbox seeded from the upstream draft (129 objects) + the two-phase tooling ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-117 ADOPTED (B, DC-only): fix the off-by-one site binding + make the importer dry-by-default ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-117 (PROPOSED): VR1 site naming collision blocks the NetBox import ...
JANeumatrix committed 1 day ago
2026-07-13
@JANeumatrix
D-116 ADOPTED: no Office1-local GitBucket -- keep using git.baldurkeep.com ...
JANeumatrix committed 1 day ago
@JANeumatrix
Tailscale: office1-tailscale joined the SELF-HOSTED tailnet as the Office1 subnet router ...
JANeumatrix committed 1 day ago
@JANeumatrix
Office1: edge route to the compose net + Tailscale subnet router + an as-built connection reference ...
JANeumatrix committed 1 day ago
@JANeumatrix
office1-netbox DEPLOYED: NetBox 4.6.4 live on the Office1 headend, three levels deep ...
JANeumatrix committed 1 day ago
@JANeumatrix
Ledger: pin Office1 LAN IPv6 as the next step after the NetBox deploy (D-115 q3) ...
JANeumatrix committed 1 day ago
@JANeumatrix
D-115 ADOPTED: v4 stays role-based; Office = /22 per office; DC2 moves INSIDE the Cloud /16 ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-115 PROPOSED: Office1 addressing -- the office carve, and the four v4 role gaps it exposed ...
JANeumatrix committed 2 days ago
@JANeumatrix
Office1 headend LIVE: MAAS 3.7.2 + LXD 5.21 on voffice1. D-114 PROVEN END TO END. ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-114 follow-through: fix node-vm's nested-virt defect NOW; voffice1 pinned to a reserved address ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-114: voffice1 is LIVE. cloudinit-vm gains nested virt -- it was silently broken for the model ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-114 ADOPTED: VR1 site containment VMs + MAAS-composed LXD VMs for the non-stack machines ...
JANeumatrix committed 2 days ago
@JANeumatrix
Fold the AppArmor/libvirt rule into scripts/prereqs -- it gated every VR1 VM boot ...
JANeumatrix committed 2 days ago
@JANeumatrix
Ledger collapse: close the coverage gap in the carry-forward ...
JANeumatrix committed 2 days ago
@JANeumatrix
Collapse the three ledger streams into one; reconcile against repo ground truth ...
JANeumatrix committed 2 days ago
@JANeumatrix
APPLIED + CORRECTION: "updated in-place" does NOT mean "no restart" -- the apply bounced the edge ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113(a2) COMPLETE: DELETE the config.xml path (template, renderer, ISO builder) ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113(a2): API-key bootstrap -- no GUI click, no re-implemented crypto ...
JANeumatrix committed 2 days ago
@JANeumatrix
Correct the workflow doc's status: it was materially FALSE and would misdirect work ...
JANeumatrix committed 2 days ago
@JANeumatrix
DOCFIX-194: the OpenTofu gate was GREEN over two BROKEN modules ...
JANeumatrix committed 2 days ago
@JANeumatrix
SAFETY SWEEP: mark the config.xml push path as a LIVE HAZARD (no behaviour change) ...
JANeumatrix committed 2 days ago
@JANeumatrix
CHECKPOINT 2026-07-13: session close (edge routing + serving DHCP; D-113(a2) proven) ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113(a2) write path PROVEN on the live edge: API -> OPNsense -> Kea -> daemon ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113(a2) PROVEN: the OPNsense REST API round-trips the edge config ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113(a2) step 1: thin OPNsense REST API client + harness ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113 ADOPTED: option (a2) -- stay on OPNsense, move config to the REST API ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-113 (PROPOSED): is OPNsense the right edge platform? -- and a confound in D-112 ...
JANeumatrix committed 2 days ago
@JANeumatrix
SEC-006/SEC-007: put the two known credential exposures on the ledger ...
JANeumatrix committed 2 days ago
@JANeumatrix
SEC-005: store a GitBucket credential on the jumphost so pushes stop failing ...
JANeumatrix committed 2 days ago
@JANeumatrix
DOCFIX-193 APPLIED: the Office1 edge now serves DHCP (kea-dhcp4 on udp/67) ...
JANeumatrix committed 2 days ago
2026-07-12
@JANeumatrix
DOCFIX-193: LAN DHCP was never implemented -- add Kea to the edge config template ...
JANeumatrix committed 2 days ago
@JANeumatrix
D-112(c) EXECUTED: the Office1 OPNsense edge is UP and ROUTING ...
JANeumatrix committed 2 days ago
@JANeumatrix
DOCFIX-192: the edge config silenced its own ONLY console (no serial, no video device) ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-191: the rendered edge config would have LOCKED MANAGEMENT OUT (no sshd, no key) ...
JANeumatrix committed 3 days ago
@JANeumatrix
D-112: record option (a) as MEASURED INFEASIBLE; rule the (c) bootstrap; make the edge console interactive ...
JANeumatrix committed 3 days ago
@JANeumatrix
D-112 ADOPTED: option (c) post-boot network provisioning (operator ruling) ...
JANeumatrix committed 3 days ago
@JANeumatrix
D-112 (PROPOSED): OPNsense Config Importer cannot fire on a nano image -- by design ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-190: second boot bug -- libvirt domains had ACPI disabled (FreeBSD kernel panic) ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-189: re-audit the max-context session's troubleshooting + docs ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-188 followup: correct the pass criteria (anchor on virsh dominfo, not the QEMU -m string) ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-188: root-cause the OPNsense boot triple-fault -- libvirt memory_unit (guest had 2 MiB) ...
JANeumatrix committed 3 days ago
@JANeumatrix
DOCFIX-187: opnsense-edge module boot fixes + boot-triple-fault incident report ...
JANeumatrix committed 3 days ago
@JANeumatrix
Office1 OPNsense edge build: real-ISP-router config + first-boot fixes ...
JANeumatrix committed 3 days ago
2026-07-11
@JANeumatrix
D-111: align VR1 v6 subcarve to deployed NN mnemonic; fix ULA-gen doc bug ...
JANeumatrix committed 4 days ago
2026-07-10
@JANeumatrix
DOCFIX-181: fix carve_gua subnet-enumeration hang (gauntlet was stalling) ...
JANeumatrix committed 4 days ago
@JANeumatrix
DC-DC Stage 1 (dc-dc-phase0): first real execution + scaffold/tooling fixes ...
JANeumatrix committed 4 days ago