POL-3: cosign-sign app images in CI (plat/mitosis#41) #4
No reviewers
Labels
No labels
agent-work
agent-working
ultracode
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-platform/app-template!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/pol-3-sign-images"
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?
POL-3 — cosign-sign app images in CI · plat/mitosis#41
After
docker push, sign the image by digest with the platform cosign key soverify-image-provenance(gitops) can prove provenance before admitting it to atenant/preview namespace. Added to both
release.ymlandpreview.yml:--allow-http-registry— the sovereign registry is plain HTTP.~/.docker/config.json.COSIGN_PRIVATE_KEY/COSIGN_PASSWORDForgejo Actions secrets(OPERATOR TODO in the gitops
cosign-signingSecret).Validation (offline)
Exact
docker inspectdigest one-liner verified against a real pushed image(digest matches). The exact cosign invocation (v2.4.3, same flags) signed a test
image that kyverno
verifyImagesv1.18.1 then PASSED, while an unsigned imagewas REJECTED.
Do not merge — gated on the live GATE (needs ci-builder v0.2.0 built first).
After `docker push`, sign the image BY DIGEST with the platform cosign key so the verify-image-provenance ClusterPolicy (gitops) can prove it was built by this platform before admitting it to a tenant/preview namespace: DIGEST=$(docker inspect --format '{{ .RepoDigests }}' ... ) cosign sign --yes --tlog-upload=false --allow-http-registry \ --key env://COSIGN_PRIVATE_KEY "$REGISTRY/$OWNER/$APP@$DIGEST" Keyed cosign (self-hosted: no Fulcio/Rekor, no transparency log); --allow-http- registry because the sovereign registry is plain HTTP; auth is the existing ~/.docker/config.json. Key material comes from COSIGN_PRIVATE_KEY / COSIGN_PASSWORD Forgejo Actions secrets (OPERATOR TODO in the gitops cosign-signing Secret). Bumps the ci-builder container ref to 0.2.0 (the image that bakes cosign). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>