OCI Registries
Modern Helm can push and pull charts from OCI registries like a container image, no index.yaml required.
Syntax
helm 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
# 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.0When 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.
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/chartsInstall from OCI registry
Installs a chart directly from an OCI registry URL, no helm repo add step required.
helm install my-release \
oci://ghcr.io/myorg/charts/myapp \
--version 1.0.0 \
-n productionPull OCI chart to inspect
Downloads and unpacks the OCI chart archive locally so you can review templates and values before using it.
helm pull oci://ghcr.io/myorg/charts/myapp \
--version 1.0.0 \
--untar
ls myapp/
Discussion