Skip to content

fix(ci): probe default images by digest, not tag@digest (D-0264) - #664

Merged
acamarata merged 1 commit into
mainfrom
fix/image-probe-by-digest
Oct 11, 2026
Merged

acamarata merged 1 commit into
mainfrom
fix/image-probe-by-digest

Conversation

@acamarata

Copy link
Copy Markdown
Collaborator

Why

The scheduled Default images pullable check went red on main (runs 38046978745, 38135117026; issue #602) for python:3.12-slim and mailpit:latest. Neither image is broken.

docker manifest inspect repo:tag@digest fetches the tag and then checks it against the digest. Once upstream moves a floating tag, that check fails with manifest verification failed for digest, even though the pinned digest still exists and a pull of repo:tag@digest (which ignores the tag) still works. The weekly pin-bump branch passed because it carries fresh digests.

Local repro:

ref rc
docker.io/library/python:3.12-slim@sha256:05cda977… 1 (manifest verification failed)
docker.io/library/python@sha256:05cda977… 0
docker.io/library/alpine@sha256:1111… (fake) 1 (no such manifest)

What

  • Probe repo@digest (tag stripped, registry/port-safe).
  • Fail loudly if a lock entry has no @digest.
  • Mirror probe uses nself/<service>@digest, same reason.

Lock and pins are unchanged. Tag drift stays the job of the weekly pin-bump PR (#617, left for the owner). IMAGE_MIRROR_APPLY is untouched.

Refs #602, D-0264.

docker manifest inspect repo:tag@digest fetches the tag and then checks
the result against the digest. When upstream moves a floating tag
(python:3.12-slim, mailpit:latest) the check fails with "manifest
verification failed for digest" even though the pinned digest still
exists and still pulls; a pull of repo:tag@digest ignores the tag.

Probe repo@digest instead, fail loudly on a lock entry with no digest,
and probe the mirror by digest too. Reproduced locally: the tag@digest
form returns rc=1 for python 05cda977, the repo@digest form returns
rc=0; the fake 1111... digest still fails.

Refs #602
@acamarata
acamarata merged commit 83c21de into main Oct 11, 2026
25 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant