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/nginx

helm install <name> <chart> -f <values> — Install with custom values file.

helm install my-app ./mychart -f values-prod.yaml

helm install <name> <chart> --set <key>=<value> — Install with inline value overrides.

helm install my-app bitnami/nginx --set replicaCount=3

helm install <name> <chart> -n <namespace> — Install into a specific namespace.

helm install my-app ./mychart -n production

helm install <name> <chart> --dry-run — Simulate install without actually deploying.

helm install my-app ./mychart --dry-run

helm upgrade <name> <chart> — Upgrade a release to a new chart version.

helm upgrade my-app bitnami/nginx

helm upgrade --install <name> <chart> — Upgrade or install if not exists (idempotent).

helm upgrade --install my-app ./mychart -f values.yaml

List & Status

helm list — List all releases in the current namespace.

helm list

helm list -A — List releases across all namespaces.

helm list -A

helm status <name> — Show the status of a release.

helm status my-app

helm history <name> — Show the revision history of a release.

helm history my-app

helm get values <name> — Show the values used for a release.

helm get values my-app

helm get manifest <name> — Show the rendered Kubernetes manifests.

helm get manifest my-app

Rollback & Uninstall

helm rollback <name> <revision> — Roll back a release to a previous revision.

helm rollback my-app 2

helm uninstall <name> — Uninstall a release.

helm uninstall my-app

helm uninstall <name> --keep-history — Uninstall but keep the release history.

helm uninstall my-app --keep-history

Repositories

helm repo add <name> <url> — Add a chart repository.

helm repo add bitnami https://charts.bitnami.com/bitnami

helm repo update — Update local chart repository index.

helm repo update

helm repo list — List all configured repositories.

helm repo list

helm repo remove <name> — Remove a repository.

helm repo remove bitnami

helm search repo <keyword> — Search charts in added repositories.

helm search repo nginx

helm search hub <keyword> — Search charts on Artifact Hub.

helm search hub postgresql

Create & Template

helm create <name> — Create a new chart scaffold.

helm create my-chart

helm template <name> <chart> — Render chart templates locally without deploying.

helm template my-app ./mychart -f values.yaml

helm lint <chart> — Check a chart for issues.

helm lint ./mychart

helm package <chart> — Package a chart into a .tgz archive.

helm package ./mychart

helm show values <chart> — Show the default values of a chart.

helm show values bitnami/nginx

helm 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

  • ddev – spin up local container-based development environments
  • docker – build and run container images
  • docker-compose – define multi-container setups declaratively