mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 02:54:26 +00:00
A debian:bookworm workspace job died on `apt-get update`: the mounted sources list carried the Ubuntu entry too, Nexus had auto-blocked archive.ubuntu.com, and apt fails the whole update on one bad source. Three holes, three plugs: - One sources list per INFINITO_DISTRO under compose/package-cache/apt/, selected by the compose overrides. A Debian runner no longer fetches an Ubuntu suite it has no use for. The non-apt distros get an empty file so the bind mount has a source to point at. - autoBlock off. While a remote is auto-blocked Nexus answers `404 Remote Auto Blocked` to every client instead of falling back to the copy it already has cached. - Mirror failover in the frontend. Every apt suite gets a second proxy repo on an independent upstream; a 5xx from the primary re-runs the request against it. Nexus has no group repository type for apt, so the retry lives in nginx. Measured on a live Nexus 3.91.1: dead remote without a cached copy answers 502, with a cached copy 200 regardless of metadataMaxAge. The frontend serves 149 kB of real bookworm `Release` from the mirror repo when the primary is dead, and the new regex locations produce upstream request lines byte-identical to the `rewrite … break` form they replace, including `%3a` epochs in pool paths. INFINITO_CACHE_PACKAGE_APT_LIST is gone; the mount interpolates INFINITO_DISTRO directly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 lines
1.1 KiB
YAML
26 lines
1.1 KiB
YAML
# Optional swarm-node package-cache wiring; 01_bootstrap.sh passes it only when a
|
|
# package-cache-frontend is running (local/act), so CI without a cache is unaffected.
|
|
---
|
|
x-cache: &cache
|
|
extra_hosts:
|
|
- "deb.debian.org:${INFINITO_CACHE_PACKAGE_FRONTEND_IP}"
|
|
- "archive.ubuntu.com:${INFINITO_CACHE_PACKAGE_FRONTEND_IP}"
|
|
- "security.ubuntu.com:${INFINITO_CACHE_PACKAGE_FRONTEND_IP}"
|
|
- "infinito-registry-cache:${INFINITO_CACHE_REGISTRY_IP:?Run 'make dotenv' to generate the .env single source of truth}"
|
|
volumes:
|
|
- ../package-cache/apt/${INFINITO_DISTRO:?Run 'make dotenv' to generate the .env single source of truth}.list:/etc/apt/sources.list.d/package-cache.list:ro
|
|
- ${INFINITO_CACHE_REGISTRY_CA_HOST_PATH:?Run 'make dotenv' to generate the .env single source of truth}:/opt/registry-cache-ca:ro
|
|
- ../../scripts/docker/cache/registry-ca.sh:/usr/local/bin/registry-cache-ca.sh:ro
|
|
|
|
services:
|
|
nfs-server:
|
|
<<: *cache
|
|
swarm-mgr-01:
|
|
<<: *cache
|
|
swarm-wrk-01:
|
|
<<: *cache
|
|
swarm-wrk-02:
|
|
<<: *cache
|
|
backup-host:
|
|
<<: *cache
|