Safeguard
Developer Tools•

How do Helm charts work in an OCI registry? Push, tags and digests

helm push stores a chart in an OCI registry, infers the tag from the chart version and prints a digest. What gets stored, and how to pin and sign it.

Safeguard Security Team
3 min read

Helm can store packaged charts in any OCI registry. The push command uploads a chart archive, takes the repository name from the chart name and the tag from the chart's semantic version, and prints a digest. Because it is an OCI artifact, a chart can be pinned by digest and signed like an image.

What the Helm docs say

Helm's registry documentation recommends container registries with OCI support to store and share chart packages. A registry can hold zero or more Helm repositories, each with zero or more packaged charts. Push works on a .tgz created ahead of time with helm package, and the reference must start with oci:// and must not include the chart name or tag, since those are inferred. The tag comes from the chart's semantic version, and the docs call this a strict requirement.

An example from the docs:

helm package mychart
helm push mychart-0.1.0.tgz oci://localhost:5000/helm-charts

The output reports the pushed reference and a sha256 digest. If a provenance file sits next to the archive, it is uploaded automatically and becomes an extra layer on the chart manifest. The docs also note that registries may require the repository or namespace to exist first.

What this gives you

PropertyEffect
Version becomes the tag0.1.0 in Chart.yaml is the tag, so a version bump is the only way to a new tag
Digest is printedYou can record exactly what you pushed
Provenance as a layerThe signature file travels with the chart
Same storage as imagesRegistry access rules and retention apply

Practical steps

  1. Treat the chart version as immutable. If the registry supports tag immutability, turn it on for chart repositories too.
  2. Record the digest from the push output in the release record.
  3. Install by digest in production, so a retagged chart cannot change a deployment.
  4. Sign the chart. Helm documents GPG based provenance for classic repositories and a Sigstore plugin for OCI charts. See how to sign and verify a Helm chart with provenance.
  5. Scan the rendered templates and the images they reference as part of the same release gate.

Pitfalls

  • Passing a full URL with a scheme or path to registry login. Helm wants a hostname, optionally with a port.
  • Forgetting that values files may hold secrets. Check where Helm keeps release values.
  • Letting anyone push chart versions that production pulls automatically.

Safeguard's policy gates and infrastructure scanning can check chart content and the images it deploys before a release is promoted.

Quick check

Can I choose the tag when I push a chart?

No. Helm infers it from the chart's semantic version, and the docs describe this as a strict requirement.

Where does the signature go?

A provenance file next to the archive is uploaded on push as an extra layer on the chart manifest.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.