Helm is Kubernetes' package manager — letting you install complex applications (with all their Deployments, Services, ConfigMaps, and more) as a single, versioned, configurable package called a "chart," rather than writing every YAML file by hand.
Why Use Helm
- Install complex applications (databases, monitoring stacks, ingress controllers) with a single command
- Easily override configuration values without editing raw YAML
- Upgrade or roll back an entire application's Kubernetes resources as one unit
Step 1 — Install Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Step 2 — Verify Installation
helm version
Step 3 — Add a Chart Repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Bitnami maintains a large, well-tested collection of charts for common applications (databases, monitoring tools, and more).
Step 4 — Search for a Chart
helm search repo bitnami/postgresql
Step 5 — Install a Chart
helm install my-postgres bitnami/postgresql
my-postgres is the "release name" you assign to this specific installation.
Step 6 — Customize Installation Values
helm install my-postgres bitnami/postgresql \
--set auth.postgresPassword=CHANGE_ME_STRONG_PASSWORD \
--set primary.persistence.size=10Gi
Or use a values file for more complex configuration:
helm install my-postgres bitnami/postgresql -f custom-values.yaml
Step 7 — List Installed Releases
helm list
Step 8 — Upgrade a Release
helm upgrade my-postgres bitnami/postgresql --set primary.persistence.size=20Gi
Step 9 — Roll Back a Release
helm rollback my-postgres 1
Rolls back to a specific previous revision number, useful if an upgrade introduced a problem.
Step 10 — Uninstall a Release
helm uninstall my-postgres
Note: by default this doesn't delete associated PersistentVolumeClaims, preserving data — delete those separately if you genuinely want to remove all data too.
Viewing What a Chart Will Actually Create (Before Installing)
helm template bitnami/postgresql
Renders the full Kubernetes YAML the chart would apply, without actually installing it — useful for reviewing exactly what you're about to deploy.
Creating Your Own Chart
helm create my-chart
Scaffolds a basic chart structure you can customize — useful once you're packaging your own applications for repeatable deployment.
Common Errors
"chart not found" — run helm repo update to refresh the local repository index, or verify the repo was added correctly with helm repo list.
Installation succeeds but Pods stay Pending — check if the chart's default resource requests exceed what your cluster/node has available; adjust via --set or a custom values file.
FAQ
Is Helm required to use Kubernetes?
No — it's optional, but it significantly simplifies installing and managing complex, multi-resource applications compared to writing raw YAML manually.
Continue Reading
- How to Deploy a Database in Kubernetes with StatefulSets
- How to Monitor a Kubernetes Cluster with Prometheus and Grafana
- Kubernetes ConfigMaps and Secrets: Managing Configuration Safely
Browse more articles in Kubernetes & Container Orchestration.