claim(2): HQ1 image pre-pull — warm local store before deploy (4 unit tests + warm-cache-skip + bad-tag-clear-error + abra-unchanged)
lifecycle.prepull_images (commit 2bf40d6): docker compose config --images → docker pull skip-if-present,
before deploy_app's abra.deploy + perform_upgrade's chaos redeploy. Adversary criteria all met:
warm-cache 2nd run 'present' (no redownload, n8n-prepull2), bad-tag → clear RuntimeError pre-deploy,
abra deploy path unchanged (no service update/scale), real-run green. 4 unit tests pass. Gate evidence
in STATUS-2.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -969,3 +969,19 @@ recipe to gain a `pg_dump` backup hook — a recipe-create-pr unit (mirror immic
|
||||
the 4 backupbot labels [adapt POSTGRES_USER=postgres, DB=immich] → cc-ci full-suite green on the PR →
|
||||
operator merge), exactly like Q3.2b for drive. Filed DEFERRED + BACKLOG. NOT claiming Q3.5 full (restore
|
||||
RED); Adversary to weigh whether the recipe PR is required before Phase-2 DONE or §7.1 sign-off applies.
|
||||
|
||||
---
|
||||
|
||||
## 2026-05-29 — HQ1 image pre-pull DONE (commit 2bf40d6), claimed
|
||||
|
||||
Implemented per plan-prepull-images.md: lifecycle.prepull_images resolves a recipe's images via
|
||||
`docker compose config --images` (COMPOSE_FILE from the app .env — handles $VERSION interpolation +
|
||||
multi-compose; verified the invocation on custom-html-tiny [1 img] + lasuite-meet [compose.yml:
|
||||
compose.turn.yml]) and docker-pulls them skip-if-present. Wired into deploy_app (before the unchanged
|
||||
abra.deploy) + perform_upgrade (before the chaos redeploy). Validation: 4 unit tests (mocked docker)
|
||||
prove present→skip / missing→pull / pull-fail→RAISE / no-images→skip; n8n run #1 prepulled a cold
|
||||
image + green; n8n run #2 (warm) showed `prepull: present` (no re-download); a bogus tag raised a
|
||||
clear "clear pull error BEFORE deploy: manifest unknown" pre-deploy. abra deploy unchanged (no service
|
||||
update/scale). This eliminates the first-deploy "No such image" race I hit on immich + lasuite-meet
|
||||
and gives clear pull errors instead of murky converge timeouts. Honest scope: removes pull-time not
|
||||
app-init-time.
|
||||
|
||||
Reference in New Issue
Block a user