OCI Registries

Modern Helm can push and pull charts from OCI registries like a container image, no index.yaml required.

Syntaxhelm push <chart>.tgz oci://<registry>/<repo>

Helm 3 supports storing charts in OCI registries — the same registries that hold container images (Docker Hub, GHCR, ECR, Harbor). This is now the recommended distribution method.

Push and pull

  • helm push chart.tgz oci://registry/namespace — upload a packaged chart.
  • helm pull oci://registry/namespace/chart --version X — download one.
  • helm install name oci://registry/namespace/chart — install directly.

No index needed

OCI registries track versions natively (as tags), so there is no index.yaml to maintain. Authenticate with helm registry login first.

Example

Example · bash
# Authenticate to the registry
helm registry login registry.example.com

# Package then push the chart
helm package ./mychart
helm push mychart-0.1.0.tgz oci://registry.example.com/charts

# Install straight from OCI
helm install web oci://registry.example.com/charts/mychart --version 0.1.0

When to use it

  • A platform team pushes Helm charts to the same AWS ECR registry that holds their container images, unifying artifact management and access control in one place.
  • A CI pipeline uses helm push to publish a versioned chart to GitHub Container Registry after each release tag, enabling any user to install it with a single oci:// URL.
  • A developer pulls a chart from an OCI registry with helm pull oci:// to inspect its contents locally before adding it as a dependency in a parent chart.

More examples

Login and push to OCI registry

Authenticates to GitHub Container Registry and pushes the packaged chart as an OCI artifact.

Example · bash
helm registry login ghcr.io \
  --username $GITHUB_ACTOR \
  --password $GITHUB_TOKEN
helm package ./myapp
helm push myapp-1.0.0.tgz oci://ghcr.io/myorg/charts

Install from OCI registry

Installs a chart directly from an OCI registry URL, no helm repo add step required.

Example · bash
helm install my-release \
  oci://ghcr.io/myorg/charts/myapp \
  --version 1.0.0 \
  -n production

Pull OCI chart to inspect

Downloads and unpacks the OCI chart archive locally so you can review templates and values before using it.

Example · bash
helm pull oci://ghcr.io/myorg/charts/myapp \
  --version 1.0.0 \
  --untar
ls myapp/

Discussion

  • Be the first to comment on this lesson.