mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 19:56:53 +00:00
The instruction replay provisions a fresh inventory inside a throwaway target, so its compose pull fetched every application image from the upstream registry while every other CI deploy pulls through the GHCR mirror. On the moodle row of run 39082924588, 512 s of the 1646 s ansible run went into that pull. mirror.sh rewrites the extracted block and not the README template the site publishes: it inserts the mirrors.yml resolver ahead of the provision call and passes --mirror. A reader keeps the upstream references, because a reader has no GHCR mirror to pull from, and the replay exists to prove the instructions a reader copies. Outside CI the two GitHub variables are empty and the block stays byte-identical. The prefix is read from default.env in the checkout, the way machine.sh already reads INFINITO_PARENT_IMAGE, so no Ansible template has to look up an INFINITO_ key that belongs in an inventory. A block that carries no provision call fails the harness instead of quietly falling back to the upstream registry, and test_mirror.py renders both published shapes to keep the two sed patterns matched to what the template emits. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>