fix(ci): sign release checksums with cosign --bundle - #112
Open
mayankpande88 wants to merge 1 commit into
Open
Conversation
cosign-installer v4 ships cosign v3, which defaults to the new bundle format: --output-signature and --output-certificate are ignored, and a single --bundle file carries the signature, Fulcio certificate and transparency-log entry together. With neither flag honoured and no --bundle given, cosign tries to create a bundle at an empty path and fails with: Error: signing checksums.txt: create bundle file: open : no such file or directory This broke the github-release job of the v0.1.3 release — the image, chart, binaries, SBOM and ECR mirrors all published, but no GitHub Release or signed checksums were produced. It would break every release from here on, not just that one. Switch to --bundle checksums.txt.bundle. The release upload already globs dist/*, so the bundle ships without further change. Verification instructions are recorded inline, and the CHANGELOG entry advertising the .sig/.pem pair is corrected to match what actually ships.
There was a problem hiding this comment.
Code Review
This pull request updates the CHANGELOG.md to specify that keyless cosign signatures for release artifacts are now shipped as checksums.txt.bundle instead of checksums.txt.sig and .pem. No review comments were provided, and there is no additional feedback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The
github-releasejob of the release workflow fails for every release, and took out the v0.1.3 run.cosign-installerv4 ships cosign v3, which defaults to the new bundle format. In that mode--output-signatureand--output-certificateare ignored (cosign logs a deprecation warning for each), and a single--bundlefile carries the signature, Fulcio certificate and transparency-log entry together. With neither flag honoured and no--bundlesupplied, cosign tries to create a bundle at an empty path:This is not specific to v0.1.3 — it fails on any tag pushed with a current cosign.
Impact on v0.1.3
Everything else in that release succeeded: the image (
0.1.3,latest,0.1), Helm chart, binaries for all five platforms, SBOM, image signature and both ECR mirrors. Only the GitHub Release page and the signedchecksums.txtare missing. The release entry is being created manually from the artifacts that run already built.The fix
Switch to
cosign sign-blob --yes --bundle checksums.txt.bundle checksums.txt. The upload step already globsdist/*, so the bundle ships with no further change.Verification instructions are recorded inline in the workflow, since the flag change also changes how consumers verify a download:
The
CHANGELOGentry advertisingchecksums.txt.sig/.pemis corrected to match what actually ships — that feature has never worked as documented.Type of change
How Has This Been Tested?
Not directly executable outside CI — keyless signing needs the workflow's OIDC token, so this is verified on the next tag push. What was checked:
--bundleis the current flag for bothsign-blobandverify-blobin cosign's published documentation;--output-signature/--output-certificateno longer appear there.Checklist
make validatepasses (fmt + lint + test) — unchanged, no Go code touched