dc1 full mirror REMOVED (D-135 amendment); dc-cache-proxy.sh now owns its net layer
Operator clarified intent, exact utterance: "DC0 is the test of a full mirror. DC1 is the test
of the mirror proxy. DC1 needed the partially created full mirror and associated
script/files/settings removed." Recorded as a D-135 AMENDMENT 2026-07-27 -- the per-DC split
is the DELIBERATE EXPERIMENT, not an interim state. That supersedes both the "PAUSED ... kept
dormant as the fallback" record and the "DC1's proxy is REPLACED by a full mirror afterward"
claim, which sat in THREE places (D-135, CURRENT-STATE:109, dc-cache-proxy.sh:6); all corrected.

dc0 FIRST (gated): sync re-run -> OK 2026-07-27T08:43:46Z ubuntu=0 uca=0 in 20s, confirming
the transient-500 diagnosis. The fixed check now reports PASS -- trustworthy precisely because
the same check FAILED on the same rack twenty minutes earlier. Stage 4 DoD bullet 5 is now MET
for both DCs (dc0 mirror PASS, dc1 proxy PASS), node-side half at G17.

WHY THE ORDER MATTERED. Asked to weigh rip-down-and-rebuild against surgical removal, the
rebuild path turned out to be BLOCKED, not merely slower: dc-cache-proxy.sh did not own its
utility net layer -- it REUSED dc-mirror.sh's <site>-mirror-net.service and refused to install
without it. So on dc1, whose ruled path is the PROXY, three files named dc1-mirror-* (net unit,
apply helper, resolved DNS drop-in) were load-bearing FOR THE PROXY. Consequences: the recorded
removal procedure would have silently killed the proxy, the bullet-5 PASS and the Stage-5 dc1
apt path; and the proxy could not be REBUILT afterward, since nothing but `dc-mirror.sh
install` created the net layer -- rebuilding a PROXY meant reinstalling the whole MIRROR
apparatus, enabled daily debmirror timer included. Operator direction: net layer first, then
rip it all down.

1. NET LAYER MOVED: <site>-cache-proxy-net.service + -net-apply + its own resolved drop-in,
   reusing dc-mirror's proven mechanism (bridge from the libvirt net NAME at runtime, hard
   rule 3). Proxy-named so a proxy-only DC has NO mirror-named dependency. Idempotent
   replace verbs, so both net units coexist safely where a site runs both -- dc0 unaffected.
   check asserts the ARTIFACTS, not just the live address/route: asserting only the live
   effect would PASS while the layer was really the mirror's, which is the exact failure.
   Harness 20/20 (was 15). T12 REPLACED not deleted -- it asserted the superseded design, so
   it failed by design; now inverted, plus T12b-T12f. T12b is scoped to non-comment lines on
   purpose: the header's account of the removed trap cites dc-mirror.sh install, and deleting
   that history to satisfy a grep would lose why the trap existed.
2. INDEPENDENCE PROVEN BEFORE DELETING: a oneshot with RemainAfterExit=yes does not undo its
   work on stop, so stopping the mirror unit would have proven nothing. Removed the live state
   outright (addr count -> 0, default route count -> 0), applied the proxy-owned unit ALONE,
   both restored; check dc1 PASS with dc1-mirror-net.service disabled.
3. WHOLESALE REMOVAL: all mirror units, timer, sync helper, nginx vhost, resolved drop-in, the
   debmirror package, and 330G of partial mirror (33,037 files, rm -rf 47.6s; disk 339G ->
   9.0G). Zero mirror-named residue, every proxy artifact present, proxy PASS throughout and
   never down. Capture docs/audit/dc1-mirror-teardown-20260727.txt.

nginx left installed deliberately: a mirror prereq, but with the vhost gone it is a generic
server on its stock default vhost; removing the metapackage while nginx-core runs is a
half-measure and a full purge is scope creep on a rack host.

Gauntlet ALL GREEN (81), repo-lint 0-fail, dc-cache-proxy 20/20, dc-mirror 24/24.

Revert: `dc-mirror.sh install dc1` (needs debmirror reinstalled) then `sync dc1` to re-pull
~950G; git revert dc-cache-proxy.sh + harness to restore the mirror-owned layer. The 330G
partial is NOT recoverable -- deliberately, per the amendment.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf
1 parent fbda433 commit 84951307a918a695e6f7f84ed4f8c992f248cd01
@JANeumatrix JANeumatrix authored 3 hours ago
Showing 6 changed files
View
docs/CURRENT-STATE.md
View
docs/audit/dc1-mirror-teardown-20260727.txt 0 → 100644
View
docs/changelog-20260727-creds-consolidation.md
View
docs/design-decisions.md
View
scripts/dc-cache-proxy.sh
View
tests/dc-cache-proxy/run-tests.sh