Helm — The Package Manager for Kubernetes
Practical guide to Helm — install charts, manage releases, roll back, maintain repositories and render templates, with examples for every step.
Helm is the package manager for Kubernetes: instead of hand-maintaining dozens of separate YAML manifests, you bundle an entire application into a chart and install it with a single command. Each installation of a chart creates a release that Helm versions for you – you can upgrade it, roll it back to an earlier revision when something breaks, and tailor it per environment through values. Since Helm 3 everything runs client-side without the old Tiller component in the cluster, which greatly simplifies setup and security. You pull charts from repositories or from Artifact Hub. This guide walks you through the commands you reach for daily, from the first install to your own chart.
Install & Upgrade
helm install <name> <chart> — Install a chart with a release name.
helm install my-nginx bitnami/nginxhelm install <name> <chart> -f <values> — Install with custom values file.
helm install my-app ./mychart -f values-prod.yamlhelm install <name> <chart> --set <key>=<value> — Install with inline value overrides.
helm install my-app bitnami/nginx --set replicaCount=3helm install <name> <chart> -n <namespace> — Install into a specific namespace.
helm install my-app ./mychart -n productionhelm install <name> <chart> --dry-run — Simulate install without actually deploying.
helm install my-app ./mychart --dry-runhelm upgrade <name> <chart> — Upgrade a release to a new chart version.
helm upgrade my-app bitnami/nginxhelm upgrade --install <name> <chart> — Upgrade or install if not exists (idempotent).
helm upgrade --install my-app ./mychart -f values.yamlList & Status
helm list — List all releases in the current namespace.
helm listhelm list -A — List releases across all namespaces.
helm list -Ahelm status <name> — Show the status of a release.
helm status my-apphelm history <name> — Show the revision history of a release.
helm history my-apphelm get values <name> — Show the values used for a release.
helm get values my-apphelm get manifest <name> — Show the rendered Kubernetes manifests.
helm get manifest my-appRollback & Uninstall
helm rollback <name> <revision> — Roll back a release to a previous revision.
helm rollback my-app 2helm uninstall <name> — Uninstall a release.
helm uninstall my-apphelm uninstall <name> --keep-history — Uninstall but keep the release history.
helm uninstall my-app --keep-historyRepositories
helm repo add <name> <url> — Add a chart repository.
helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update — Update local chart repository index.
helm repo updatehelm repo list — List all configured repositories.
helm repo listhelm repo remove <name> — Remove a repository.
helm repo remove bitnamihelm search repo <keyword> — Search charts in added repositories.
helm search repo nginxhelm search hub <keyword> — Search charts on Artifact Hub.
helm search hub postgresqlCreate & Template
helm create <name> — Create a new chart scaffold.
helm create my-charthelm template <name> <chart> — Render chart templates locally without deploying.
helm template my-app ./mychart -f values.yamlhelm lint <chart> — Check a chart for issues.
helm lint ./mycharthelm package <chart> — Package a chart into a .tgz archive.
helm package ./mycharthelm show values <chart> — Show the default values of a chart.
helm show values bitnami/nginxhelm dependency update <chart> — Download chart dependencies.
helm dependency update ./mychart Conclusion
Helm takes the grind out of rolling whole applications into Kubernetes reproducibly: loose manifests become a versioned release you can upgrade or roll back at will. If you maintain your own charts, it pays to invest early in clean values.yaml structures and helm lint – that keeps your deployments traceable and maintainable across many environments.
Further Reading
- Helm – official documentation – reference, concepts and best practices
- Artifact Hub – central search for ready-made charts
- Helm – Wikipedia – background and history
Related Commands
- ddev – spin up local container-based development environments
- docker – build and run container images
- docker-compose – define multi-container setups declaratively