Charts, Releases, Repositories
Charts, Releases, Repositories
Helm is Kubernetes' package manager. A chart is a directory of templated manifests plus default values.yaml; a release is one installed instance with a name; a repository is an HTTPS index of packaged charts (.tgz).
Helm 3 removed Tiller — there is no in-cluster agent. On helm install, the CLI renders templates, talks straight to the API server, and records the release (manifests + supplied values, base64) in a Secret named sh.helm.release.v1.<name>.v<revision> in the release namespace. Rollback = re-apply a previous revision's stored manifest from those Secrets.
Everyday Commands
Everyday Commands
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-api bitnami/nginx -n prod --create-namespace \
-f values-prod.yaml --set replicaCount=3
helm upgrade --install my-api bitnami/nginx -n prod --atomic --wait
helm list -n prod
helm status my-api -n prod
helm get values my-api -n prod # user-supplied values only
helm template my-api bitnami/nginx -f values-prod.yaml > rendered.yaml
helm uninstall my-api -n prod
Value precedence: --set beats -f files, which beat the chart's defaults. --atomic pairs --wait with automatic rollback when an upgrade fails — the default safety net for unattended installs.
Pitfalls and Interview Angles
Pitfalls and Interview Angles
Unpinned versions. helm install foo bitnami/nginx resolves to whatever is latest today. Pin --version (and image tags) so tomorrow's deploy matches today's test.
Secrets in values. Release Secrets live in etcd holding your values — base64 is not encryption. Use SOPS/Sealed Secrets or external secret managers for anything sensitive.
History growth. Every upgrade stores a new Secret revision; prune old ones only with eyes on rollback needs.
--set on CLI. Visible in shell history and process lists — pass sensitive values via files.
Interview angle: explain exactly where release state lives, how helm rollback works from that state, and what you pin to make a deploy reproducible.
Quiz
1. Where does Helm 3 store release history?
2. Which value source wins in Helm's precedence order?
3. What does --atomic do on helm upgrade?
Flashcards
Question
Chart vs release
Click to reveal answer
Answer
Chart = templated package; release = named installation instance with its own revision history.
Question
Release storage
Click to reveal answer
Answer
Secrets named sh.helm.release.v1.<name>.v<n> in the release namespace hold manifests and values.
Question
helm template
Click to reveal answer
Answer
Renders locally without contacting the cluster — ideal for diffs, review, and CI validation.
Question
--atomic
Click to reveal answer
Answer
Wait for success and auto-rollback on failure; the standard flag for production upgrades.
Revision Notes
Key Takeaways
- 1. Helm 3 is client-side: render, apply via API server, record revisions as Secrets
- 2. Value precedence is --set > -f > values.yaml; pin chart versions for reproducibility
- 3. helm template, helm diff-style review, and --atomic form the safe operating loop
Interview Tips
- • Explain rollback mechanics from the release Secret, not vaguely "Helm keeps history"
- • Name what you pin (chart version + image tag) and where secrets must never live
Cheat Sheet
Helm 3: chart → named release stored in sh.helm.release.v1 Secrets. Precedence --set > -f > defaults. upgrade --install --atomic --wait; helm template for review; pin --version; no plaintext secrets.
Continue Learning
Before You Start
- No prerequisites listed.