fix(release): annotate the index and mirror cosign's accessories to GHCR #41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/oci-annotations-and-signed-mirror"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Blocked on webgrip/workflows#53 — needs v1.11.0 for the
annotationsandcopy-accessoriesinputs. The pins here anticipate that version and must be confirmed after it is cut.ADR-0020 got the decision right and the mechanism wrong
GHCR resolves a package's repository link from the manifest. A Dockerfile
LABELlands in each platform's image config — whichdocker inspectreads and a registry does not.LABELThe Confirmation gate shared the mistake. It asserted the label, so it was green on all four of those releases. A gate that passes while the thing it guards is broken is worse than no gate. It now also asserts
.annotations["org.opencontainers.image.source"]on the raw index — checked against an un-annotated index, where it fails, so it would have caught this.Annotations are set at build time, and that was measured, not assumed: a plain
imagetools createpreserves index annotations and leaves the index digest byte-identical, so one annotation reaches all three registries while ADR-0020's identical-digest property stands. Annotating during the copy would have diverged GHCR from Harbor.The
LABELstays — it is whatdocker inspectsurfaces. Two readers, two mechanisms.GHCR was an unsigned mirror of a signed image
imagetools createcopies the manifest list, so BuildKit's SLSA provenance and SBOM ride along inside the index for free — both were already on GHCR. cosign's signature and CycloneDX attestation live as separate.sig/.atttags and were left behind.copy-accessories: truemirrors them. Verified that a copied signature still verifies at the destination, because cosign checks the digest. Its payload keeps the Harbor reference, so Kyverno goes on verifying against Harbor — which it already does, so no policy change.ADR amendment
Append-only, per the repo's ADR conventions: the body stands as decided, two dated entries record the corrected mechanism and the measurement behind it, frontmatter
datemoves, and the index row mirrors it.internal/ledger(the ADR consistency validator) passes.Gates
go build/vet,gofmtclean,internal/ledger,helm lintand all three chart renderings.Verifying after release