diff --git a/docs/changelog-20260723-g12-dc1-edge.md b/docs/changelog-20260723-g12-dc1-edge.md index 569ee60..237f127 100644 --- a/docs/changelog-20260723-g12-dc1-edge.md +++ b/docs/changelog-20260723-g12-dc1-edge.md @@ -117,9 +117,23 @@ WAN `172.30.3.2/24` gw `172.30.3.1` (egress 0% loss), LAN `10.12.64.1/22` (the ruled provider-public gateway), API answering at the new LAN. -## Next (gated, not run here) +## Item 7 -- dc-rack-net.sh dc1 site-table arm + harness (D-131 sub-1 delivery) -Rack standup DoD: `dc-rack-net.sh` needs a MEASURED `dc1)` site-table arm +Added the `dc1)` arm to `scripts/dc-rack-net.sh` (the STANDING per-DC forwarder ++ rack-legs pattern), MEASURED/apex-committed values, network-name keyed (no +virbrN literal -- T6 holds): + vr1-dc1-metal-admin 10.12.68.2/22 rack MAAS/DHCP leg (apex-committed rack IP) + vr1-dc1-metal-admin 10.12.68.3/22 node-DNS forwarder listen alias (D-120 static) + vr1-dc1-provider-public 10.12.64.2/22 edge-LAN leg (measured live on the bridge 2026-07-23) + DNS_LISTEN=10.12.68.3 DNS_UPSTREAM=10.10.0.20 (region BIND over transit). +Harness `tests/dc-rack-net/` extended T15-T18 (dc1 identity + MEASURED-tag); +**18/18**, gauntlet **ALL GREEN (76)**, repo-lint 0-fail. This forwarder is the +D-131 fix that pre-empts dc0's commissioning SERVFAIL on the isolated rack. +Revert: `git checkout` scripts/dc-rack-net.sh tests/dc-rack-net/run-tests.sh. + +## Next (gated) + +Rack standup DoD: `install dc1` on the rack (this arm) (provider-public `10.12.64.2/22`, metal-admin `10.12.68.2/22`, forwarder `10.12.68.3` -> region BIND `10.10.0.20`) + harness update, then `install dc1`; region-side MAAS (metal-admin `dns_servers=10.12.68.3 diff --git a/scripts/dc-rack-net.sh b/scripts/dc-rack-net.sh index c1c6273..96f23a5 100755 --- a/scripts/dc-rack-net.sh +++ b/scripts/dc-rack-net.sh @@ -65,6 +65,22 @@ DNS_LISTEN="10.12.8.3" # MEASURED: live forwarder listen address DNS_UPSTREAM="10.10.0.20" # MEASURED: region BIND (voffice1) over transit ;; + dc1) + # MEASURED / apex-committed at the dc1 standup (2026-07-22..23): + # vr1-dc1-metal-admin 10.12.68.2/22 rack MAAS/DHCP leg -- the + # apex-committed rack IP (docs/audit/dc1-rack-import-commit-20260722.txt; + # NetBox dcim.site vr1-dc1), D-124 amendment plane map. + # vr1-dc1-metal-admin 10.12.68.3/22 node-DNS forwarder listen alias + # -- D-120 static, below the .100-.200 dynamic range (dc0 .3 analog). + # vr1-dc1-provider-public 10.12.64.2/22 edge-LAN leg -- MEASURED live on + # the provider-public bridge 2026-07-23 (edge gw 10.12.64.1; lib-net.sh + # vr1-dc1 arm, PLANE_GW ["10.12.64.0/22"]="10.12.64.1"). + LEGS="vr1-dc1-metal-admin=10.12.68.2/22 +vr1-dc1-metal-admin=10.12.68.3/22 +vr1-dc1-provider-public=10.12.64.2/22" + DNS_LISTEN="10.12.68.3" # MEASURED: forwarder listen alias (metal-admin) + DNS_UPSTREAM="10.10.0.20" # MEASURED: region BIND (voffice1) over transit + ;; *) echo "FAIL: unknown site '$SITE' -- add a MEASURED row block first" >&2; exit 2 ;; esac diff --git a/tests/dc-rack-net/run-tests.sh b/tests/dc-rack-net/run-tests.sh index e73b2c7..7fefa90 100755 --- a/tests/dc-rack-net/run-tests.sh +++ b/tests/dc-rack-net/run-tests.sh @@ -72,5 +72,26 @@ && no "T14 do_check is read-only" \ || ok "T14 do_check is read-only" +# T15-T17: dc1 identity values (measured/apex-committed 2026-07-22..23 -- +# provider-public leg measured live on the bridge, metal-admin leg = the +# apex-committed rack IP, forwarder = D-120 static; changing one silently +# breaks dc1 node DNS or rack addressing) +grep -q 'vr1-dc1-metal-admin=10.12.68.2/22' "$SCRIPT" \ + && ok "T15 dc1 rack MAAS/DHCP leg 10.12.68.2/22 on metal-admin" \ + || no "T15 dc1 rack MAAS/DHCP leg 10.12.68.2/22 on metal-admin" +grep -q 'vr1-dc1-metal-admin=10.12.68.3/22' "$SCRIPT" \ + && grep -q 'DNS_LISTEN="10.12.68.3"' "$SCRIPT" \ + && ok "T16 dc1 forwarder alias + listen 10.12.68.3" \ + || no "T16 dc1 forwarder alias + listen 10.12.68.3" +grep -q 'vr1-dc1-provider-public=10.12.64.2/22' "$SCRIPT" \ + && ok "T17 dc1 edge-LAN leg 10.12.64.2/22 on provider-public" \ + || no "T17 dc1 edge-LAN leg 10.12.64.2/22 on provider-public" + +# T18: dc1 site block carries MEASURED citations (hard rule 2) +DC1_BLOCK="$(awk '/^ dc1\)/{f=1} f{print} f&&/;;/{exit}' "$SCRIPT")" +grep -q 'MEASURED' <<<"$DC1_BLOCK" \ + && ok "T18 dc1 site rows cite MEASURED provenance" \ + || no "T18 dc1 site rows cite MEASURED provenance" + echo; echo "dc-rack-net: $PASS passed, $FAIL failed" [ "$FAIL" -eq 0 ]