Working with Chart Repositories
1. Adding Chart Repository
Example: Add popular repos
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
Flag Purpose
--username / --passwordBasic auth for private repo
--ca-fileCustom CA bundle
--cert-file / --key-filemTLS client cert
--pass-credentialsForward credentials to redirected URL
--force-updateReplace existing repo entry
2. Listing Repositories
Command Output
helm repo listTable of name + URL
helm repo list -o jsonJSON for scripting
helm repo list -o yamlYAML output
3. Updating Repository Index
Command Purpose
helm repo updateRefresh index.yaml for all repos
helm repo update bitnamiRefresh single repo only
helm repo update --fail-on-repo-update-failExit non-zero on any failure (CI)
4. Removing Repository
Example: Remove + verify
helm repo remove bitnami
helm repo list | grep -v bitnami
Command Effect
helm repo remove <name>Deletes entry from repositories.yaml + cache
helm repo remove a b cRemoves multiple repos
5. Searching Repository Charts
Example: Find a chart
helm search repo nginx
helm search repo nginx --versions # all versions
helm search repo nginx --version "^1.0" # version constraint
helm search repo bitnami/ # all charts in repo
6. Viewing Repository Index
Command Result
cat ~/.cache/helm/repository/bitnami-index.yamlRaw cached index
curl -s https://charts.bitnami.com/bitnami/index.yamlLive index from server
helm search repo bitnami/ -o yamlParsed view of charts
7. Using Private Repositories
Example: HTTPS basic auth
helm repo add internal https://charts.corp.example.com \
--username " $CHARTS_USER " --password " $CHARTS_PASS "
helm repo update internal
helm install api internal/api-service
8. Configuring Repository Credentials
Mechanism Usage
Basic auth --username / --password on repo add
mTLS --cert-file, --key-file, --ca-file
Env vars (CI) Inject secrets, never commit repositories.yaml with passwords
OCI helm registry login writes to ~/.config/helm/registry/config.json
Warning: repositories.yaml stores passwords in plain text. Use OCI + Docker creds helpers or external secret tooling for CI.
9. Setting Repository Cache
Setting Value
Cache root $HELM_CACHE_HOME (default OS cache dir)
Per-repo index $HELM_CACHE_HOME/repository/<name>-index.yaml
Downloaded charts $HELM_CACHE_HOME/repository/<name>-<version>.tgz
Clear cache rm -rf $HELM_CACHE_HOME/repository && helm repo update
10. Managing Multiple Repositories
Example: Scripted CI bootstrap
declare -A repos = (
[ bitnami ]= https://charts.bitnami.com/bitnami
[ prom ]= https://prometheus-community.github.io/helm-charts
[ grafana ]= https://grafana.github.io/helm-charts
)
for name in "${ ! repos [ @ ]}" ; do
helm repo add " $name " "${ repos [ $name ]}" --force-update
done
helm repo update
Pattern Why
Pin repo URLs in Git Reproducible builds across teams
Use --force-update Idempotent re-runs in pipelines
Prefer OCI over HTTP Auth via existing registry credentials