Chart Repositories

A chart repository is an HTTP server hosting packaged charts plus an index.yaml that lists them.

Syntaxhelm 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

  1. Package your charts with helm package.
  2. Generate or update the index with helm repo index.
  3. Upload the .tgz files and index.yaml to 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

Example Β· bash
# 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/mychart

When 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.

Example Β· bash
mkdir -p repo/
cp myapp-1.0.0.tgz repo/
helm repo index repo/ --url https://charts.example.com
cat repo/index.yaml

Add and use private repo

Registers a private chart repository with credentials and searches it to confirm the charts are discoverable.

Example Β· bash
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.

Example Β· bash
# After adding a new .tgz to the existing repo directory:
helm repo index ./repo \
  --url https://charts.example.com \
  --merge ./repo/index.yaml

Discussion

  • Be the first to comment on this lesson.
Chart Repositories β€” Helm | SoundsCode