backlog(2): HQ1 — image pre-pull harness unit (plan-prepull-images.md), near-term; fixes the first-deploy 'No such image' race
This commit is contained in:
@@ -176,12 +176,19 @@ Phase plan: `/srv/cc-ci/cc-ci-plan/plan-phase2-recipe-tests.md`
|
|||||||
with the F2-7 keycloak-specificity caveat; worked lasuite-docs example end-to-end. **Will
|
with the F2-7 keycloak-specificity caveat; worked lasuite-docs example end-to-end. **Will
|
||||||
re-pass when Q3.2/Q3.5 enroll new recipes** (immich/lasuite-drive) to confirm a new
|
re-pass when Q3.2/Q3.5 enroll new recipes** (immich/lasuite-drive) to confirm a new
|
||||||
engineer can follow the doc cold.
|
engineer can follow the doc cold.
|
||||||
- [ ] **[idea]** — Harness image pre-pull before `abra app deploy`. First-ever deploy of a fresh
|
- [ ] **HQ1 — Harness image pre-pull (near-term unit, orchestrator 2026-05-29).** PLAN:
|
||||||
recipe can hit a swarm "No such image" placement race on digest-pinned images (observed once on
|
`cc-ci-plan/plan-prepull-images.md`. At the START of a recipe test sequence (before the first
|
||||||
lasuite-meet's first deploy; self-resolved after manual `docker pull`; images then cached + kept
|
`abra app deploy`) AND before the upgrade tier's new-version deploy: resolve recipe images via
|
||||||
by the conservative prune). A pre-pull (parse compose images, `docker pull` each in
|
`docker compose --env-file <app.env> -f <COMPOSE_FILE> config --images` and `docker pull` each
|
||||||
`lifecycle.deploy_app` before deploy) would make first-cold deploys deterministic. Low-risk,
|
(skip-if-present via `docker image inspect` for pinned tags); then the normal abra deploy runs
|
||||||
helps every fresh recipe + a from-scratch host (D8). Not blocking (warm-cache model masks it).
|
UNCHANGED (real abra; pre-pull just warms the local store). Value: separates pull from converge
|
||||||
|
→ a pull failure is a CLEAR pull error (not a murky "not converged" timeout); images-local →
|
||||||
|
faster convergence within abra's native window (less need for the -c workaround on *pull-bound*
|
||||||
|
deploys — note collabora's slow-INIT still needs the recipe healthcheck, not affected). Cheap on
|
||||||
|
warm cache (`docker pull` = "Already exists" no re-download; skip-if-present = zero network for
|
||||||
|
pinned tags). Directly fixes the "No such image" first-deploy race I hit on immich + lasuite-meet.
|
||||||
|
**Adversary verifies:** warm-cache 2nd run does NO layer re-download; a bad-tag pre-pull fails as
|
||||||
|
a clear pull error PRE-deploy. Pick up as a near-term harness unit (NOT a phase-pause).
|
||||||
- [ ] **Q5.2** — Adversary samples a subset and cold-verifies parity tables + specific tests are real
|
- [ ] **Q5.2** — Adversary samples a subset and cold-verifies parity tables + specific tests are real
|
||||||
(not health-only, not skipped). NO weakened test, no corners cut (P7).
|
(not health-only, not skipped). NO weakened test, no corners cut (P7).
|
||||||
- [ ] **Q5.3** — Phase 2 `## DONE` after all P1–P8 Adversary cold-verified PASS, no standing VETO.
|
- [ ] **Q5.3** — Phase 2 `## DONE` after all P1–P8 Adversary cold-verified PASS, no standing VETO.
|
||||||
|
|||||||
Reference in New Issue
Block a user