Chart Repositories
A chart repository is an HTTP server hosting packaged charts plus an index.yaml that lists them.
Syntax
helm repo index <dir> --url <base-url>A classic Helm repository is simply a web server serving .tgz chart packages alongside an index.yaml file that catalogs them.
Publishing steps
- Package your charts with
helm package. - Generate or update the index with
helm repo index. - Upload the
.tgzfiles andindex.yamlto any static host (S3, GitHub Pages, etc.).
index.yaml
The index maps chart names and versions to their download URLs. Consumers add your repo URL and Helm reads this index to find charts.
Example
# Package charts into a folder
helm package ./mychart --destination ./repo
# Generate index.yaml pointing at the public URL
helm repo index ./repo --url https://charts.example.com
# Consumers then add it
helm repo add example https://charts.example.com
helm install web example/mychartWhen to use it
- A platform team sets up a simple Nginx server on S3 to serve packaged charts and an index.yaml, giving internal teams a private chart repository without a dedicated service.
- A developer adds the team's Artifactory chart repository with helm repo add so colleagues can install approved internal charts without sharing .tgz files directly.
- A chart maintainer runs helm repo index after uploading a new package to regenerate index.yaml and make the new chart version discoverable via helm search repo.
More examples
Generate repo index
Copies the packaged chart into a directory, generates an index.yaml listing it with its digest and metadata, ready to serve.
mkdir -p repo/
cp myapp-1.0.0.tgz repo/
helm repo index repo/ --url https://charts.example.com
cat repo/index.yamlAdd and use private repo
Registers a private chart repository with credentials and searches it to confirm the charts are discoverable.
helm repo add myteam https://charts.example.com \
--username $CHART_USER \
--password $CHART_PASS
helm repo update
helm search repo myteam/Merge new chart into repo
Regenerates index.yaml while merging with the existing one so previously listed charts are preserved alongside the new addition.
# After adding a new .tgz to the existing repo directory:
helm repo index ./repo \
--url https://charts.example.com \
--merge ./repo/index.yaml
Discussion