Packaging Helm charts as OCI artifacts (hands‑on guide for modern Helm)

Helm’s distribution model has shifted: modern Helm workflows favor OCI registries, artifact signing, and tighter GitOps integration. This hands‑on guide walks through packaging a chart, publishing it as an OCI artifact, signing it with Sigstore/Cosign, and verifying it during deployment — using the current Helm tooling and GitOps-friendly practices.

Why this matters

What you’ll need

Quick summary of the flow

  1. Package your chart (helm package or helm chart save).
  2. Authenticate to your OCI registry (helm registry login).
  3. Save and push the chart as an OCI artifact (helm chart save / helm chart push or helm push depending on client version).
  4. Sign the pushed artifact with cosign.
  5. Deploy (helm install/upgrade or via GitOps operator) and verify the signature during CI or at reconcile time.

Step-by-step

1) Prepare and package the chart

2) Log in to your OCI registry

3) Save and push the chart as an OCI artifact

4) Sign the chart with Cosign (provenance and integrity) Signing gains importance when charts travel through CI/CD and multiple teams. Sigstore’s cosign can sign OCI artifacts; the signature is stored alongside the artifact in the registry (as a referrer), enabling verification down the line.

Example (keyless signing with OIDC — common for CI pipelines):

# install cosign first, then:
cosign sign --key <key-or-use-keyless> oci://registry.example.com/myrepo/mychart:0.1.0

5) Verify signatures before deploy (CI or GitOps)

Deploying the OCI chart

Troubleshooting and gotchas

Best practices checklist

Why this is a timely topic

Closing notes Adopting OCI-based Helm distribution plus Sigstore signing turns charts into first-class, verifiable artifacts you can reliably store and serve from the same registries you use for images. That simplifies supply-chain controls, accelerates GitOps flows, and aligns Helm packaging with modern security and operational patterns. For immediate reference, check the Helm documentation on registries and the Sigstore/Cosign project for signing examples, and consult your registry provider for provider-specific details. (helm.sh)

References