=== dc1 full-mirror teardown + proxy net-layer ownership -- 2026-07-27 === repo HEAD: fbda433d28df80a47caa9480536eb350c85abcef branch: dc-dc-stage4-phase3-maas-deploy OPERATOR INTENT (corrects the record): DC0 tests the FULL MIRROR; DC1 tests the MIRROR PROXY. dc1's partially-built full mirror and its script/files/settings were to be REMOVED. CURRENT-STATE had recorded dc1's debmirror as 'PAUSED ... kept dormant as the fallback' -- there is no fallback, and that claim is corrected in this change. Operator direction on sequencing: "Do the net layer first, then rip it all down." --- WHY THE NET LAYER HAD TO MOVE FIRST (the trap that was found) --- dc-cache-proxy.sh did NOT own its utility net layer -- its header said it REUSES dc-mirror.sh's -mirror-net.service and 'fails loud if absent'. So on dc1, whose ruled artifact path is the PROXY, three files named dc1-mirror-* were load-bearing for the proxy: the net unit, its apply helper, and the resolved DNS drop-in. Consequences: (a) the 07-23 changelog's recorded mirror-removal ('stop/disable ... -net.service, rm the generated files') would have SILENTLY KILLED the proxy, taken down the Stage 4 bullet-5 PASS, and blocked the Stage-5 dc1 deploy that consumes apt-http-proxy=http://10.12.68.4:3142; (b) the proxy could not be REBUILT after such a teardown -- nothing but 'dc-mirror.sh install' created the net layer, so rebuilding a PROXY required reinstalling the entire MIRROR apparatus (sync unit, ENABLED daily timer, nginx vhost, debmirror package). A teardown-and-rebuild therefore did not converge. --- 1. net layer moved into dc-cache-proxy.sh, then INSTALLED on the dc1 rack --- OK apt-cacher-ng installed OK /etc/apt-cacher-ng/acng.conf.d/dc1-cache-proxy.conf matches OK apt-cacher-ng active OK listening on :3142 OK /usr/local/sbin/dc1-cache-proxy-net-apply matches OK /etc/systemd/system/dc1-cache-proxy-net.service matches OK /etc/systemd/resolved.conf.d/dc1-cache-proxy.conf matches OK dc1-cache-proxy-net.service enabled OK 10.12.68.4/22 on virbr6 (vr1-dc1-metal-admin) OK default route via edge 10.12.64.1 OK proxy serves http://archive.ubuntu.com/ubuntu/dists/jammy/Release (200) OK proxy serves http://ubuntu-cloud.archive.canonical.com/ubuntu/dists/jammy-updates/caracal/Release (200) dc-cache-proxy check (dc1): PASS --- 2. INDEPENDENCE PROOF (the step that made the teardown safe) --- A oneshot with RemainAfterExit=yes does not undo its work on stop, so merely stopping dc1-mirror-net.service would have proven NOTHING. The live state was therefore REMOVED and the proxy-owned unit applied ALONE: systemctl disable --now dc1-mirror-net.service -> unit gone from multi-user.target ip addr del 10.12.68.4/22 dev virbr6 -> addr count 0 ip route del default via 10.12.64.1 -> default route count 0 systemctl restart dc1-cache-proxy-net.service -> applied ok re-verified: 10.12.68.4/22 on virbr6 + default via 10.12.64.1 RESTORED dc-cache-proxy check (dc1): PASS with the mirror net unit DISABLED --- 3. post-teardown state of the rack --- mirror-named units remaining: NONE mirror files remaining: gone /usr/local/sbin/dc1-mirror-sync gone /usr/local/sbin/dc1-mirror-net-apply gone /etc/systemd/system/dc1-mirror-sync.service gone /etc/systemd/system/dc1-mirror-sync.timer gone /etc/systemd/system/dc1-mirror-net.service gone /etc/nginx/sites-available/dc1-mirror gone /etc/nginx/sites-enabled/dc1-mirror gone /etc/systemd/resolved.conf.d/dc1-mirror.conf gone /var/lib/dc-mirror debmirror package: removed proxy-owned artifacts (must all be present): PRESENT /usr/local/sbin/dc1-cache-proxy-net-apply PRESENT /etc/systemd/system/dc1-cache-proxy-net.service PRESENT /etc/systemd/resolved.conf.d/dc1-cache-proxy.conf PRESENT /etc/apt-cacher-ng/acng.conf.d/dc1-cache-proxy.conf nginx: DELIBERATELY LEFT (see note) -- enabled vhosts: default disk: /dev/vda1 2.9T 9.0G 2.9T 1% / NOTE ON nginx: LEFT INSTALLED, deliberately. It was a MIRROR prereq, but once the dc1-mirror vhost is gone it is a generic web server serving only its stock 'default' vhost -- not mirror-specific. Removing the metapackage while nginx-core keeps running is a half-measure worse than either extreme, and a full purge is scope creep on a rack host. If dc1 is ever rebuilt as a mirror, dc-mirror.sh install fail-louds with the exact apt line. DELETION COST, measured (the question that decided surgical-vs-rebuild): 330G but only 33,037 files (~10MB average), so rm -rf took 47.6s wall. Disk 339G used -> 9.0G.