(feat) Add supply chain verification for Helm charts#1842
Merged
Conversation
4f808c3 to
4040e15
Compare
Sveltos can now verify the integrity and origin of a Helm chart before
deploying it. Two mechanisms are supported, each targeting a different
chart source.
For charts pulled from OCI registries, Sveltos verifies the Cosign signature
attached to the chart. Two providers are available:
1. The PublicKey provider checks the signature against a static key stored in a Kubernetes
Secret on the management cluster. No Sigstore transparency log or certificate authority is
contacted. Only the public key and the signature stored in the OCI registry are used.
2. The Keyless provider is designed for CI-signed charts: it verifies that the Fulcio-issued
certificate in the signature was granted to the expected OIDC identity (issuer and subject
regexp), and that the signing event was recorded in the Rekor transparency log. This means
the chart must have been signed by a specific pipeline in a specific repository, not just by
anyone who holds a key.
Both providers support the Sigstore Bundle v0.3 OCI referrer format produced by current cosign
releases and fall back to the legacy tag-based signature format automatically.
For charts pulled from HTTP repositories, Sveltos verifies the Helm .prov provenance file using a GPG
keyring stored in a Kubernetes Secret. The file contains a checksum and a PGP signature over the chart
archive, and verification confirms the chart has not been modified since it was signed.
In both cases, if verification fails the deployment is blocked and the failure reason is recorded on the
ClusterSummary status. Charts without a verification field deploy as before.
```yaml
signatureVerification:
provider: Keyless
matchOIDCIdentity:
- issuer: "^https://token.actions.githubusercontent.com$"
subject: "^https://github.com/myorg/myapp/.*$"
```
```yaml
provenanceVerification:
keyringSecretRef:
name: my-gpg-keyring
```
4040e15 to
1556217
Compare
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.
Sveltos can now verify the integrity and origin of a Helm chart before
deploying it. Two mechanisms are supported, each targeting a different
chart source.
For charts pulled from OCI registries, Sveltos verifies the Cosign signature
attached to the chart. Two providers are available:
Secret on the management cluster. No Sigstore transparency log or certificate authority is
contacted. Only the public key and the signature stored in the OCI registry are used.
certificate in the signature was granted to the expected OIDC identity (issuer and subject
regexp), and that the signing event was recorded in the Rekor transparency log. This means
the chart must have been signed by a specific pipeline in a specific repository, not just by
anyone who holds a key.
Both providers support the Sigstore Bundle v0.3 OCI referrer format produced by current cosign
releases and fall back to the legacy tag-based signature format automatically.
For charts pulled from HTTP repositories, Sveltos verifies the Helm .prov provenance file using a GPG
keyring stored in a Kubernetes Secret. The file contains a checksum and a PGP signature over the chart
archive, and verification confirms the chart has not been modified since it was signed.
In both cases, if verification fails the deployment is blocked and the failure reason is recorded on the
ClusterSummary status. Charts without a verification field deploy as before.