feat: keyless-sign + attest published OCI charts - #64
Merged
Conversation
viniciusdc
approved these changes
Jul 17, 2026
Contributor
Author
Runtime validation - OCI chart signing works end-to-endDispatched this branch's
-> verified: cosign signature ( Notes
|
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.
What
Phase 2 of Nebari artifact signing: keyless-sign + provenance-attest every Helm chart this repo publishes to
oci://quay.io/nebari/charts, so the artifact consumers actuallyhelm installis verifiable. Complements the pack-side signing in nebari-dev/.github#46 (which signs container images and the.tgzon the pack's GitHub Release).How
release-helm-charts.yml:helm pushstep now records each pushed chart'srepo+digestand exposes them as areleasejob output (charts, a JSON array; empty ->[]).signjob: fans out over the pushed charts via a dynamic matrix (fromJSON(needs.release.outputs.charts), guarded to skip when empty),docker logins to quay (cosign reads Docker's config, not helm's), and calls the sharedsign-ocicomposite action per chart.sbom: "false") - syft doesn't meaningfully SBOM a Helm chart artifact.releasekeepscontents: write;signgetsid-token: write+attestations: write+contents: read.ensure-quay-repos/ quay push / gh-pages index behavior is otherwise unchanged.Signer identity for the OCI charts is this repo's
release-helm-charts.yml(distinct from the pack'spack-build-image.yaml/pack-release.yamlidentities), as documented inverifying-nebari-artifacts.md.Dependency / merge order
nebari-dev/.github/.github/actions/sign-oci@f116e6f(the current feat: reusable signing actions (sign-oci, sign-blob) + wire into pack-build-image .github#46 branch commit). This should merge after docs(sync-chart): point sync PR template at the /sync-rebase trigger #46, and the pin flipped to@v1once docs(sync-chart): point sync PR template at the /sync-rebase trigger #46 is merged andv1is retagged.Verification
cosign verifyan OCI chart against therelease-helm-charts.ymlidentity (evidence added as a comment).Draft until #46 lands and the pin is flipped to
@v1.