helm Command
Intermediate Containers man(1)Kubernetes package manager
👁 2 views
📅 Updated: Mar 16, 2026
SYNTAX
helm [COMMAND] [FLAGS]
What Does helm Do?
The helm command is the package manager for Kubernetes, equivalent to apt for Debian or dnf for Fedora. Helm uses a packaging format called Charts — collections of templated Kubernetes manifests that can be versioned, shared, and deployed with customizable values.
Helm simplifies deploying complex Kubernetes applications by abstracting the management of multiple Kubernetes resources (Deployments, Services, ConfigMaps, Secrets, Ingresses, etc.) into a single versioned package. Instead of managing dozens of YAML files, you install or upgrade a chart with one command, customizing it with values specific to your environment.
Helm 3 (current version) removed the controversial server-side Tiller component from Helm 2, making it simpler, more secure, and easier to use. Release information is now stored as Kubernetes Secrets in the target namespace, and Helm works with standard Kubernetes RBAC — no additional server-side components needed.
As a graduated CNCF project, Helm is the industry standard for Kubernetes application packaging. The Artifact Hub (artifacthub.io) hosts thousands of community-maintained charts for databases, monitoring tools, CI/CD systems, and more.
Helm simplifies deploying complex Kubernetes applications by abstracting the management of multiple Kubernetes resources (Deployments, Services, ConfigMaps, Secrets, Ingresses, etc.) into a single versioned package. Instead of managing dozens of YAML files, you install or upgrade a chart with one command, customizing it with values specific to your environment.
Helm 3 (current version) removed the controversial server-side Tiller component from Helm 2, making it simpler, more secure, and easier to use. Release information is now stored as Kubernetes Secrets in the target namespace, and Helm works with standard Kubernetes RBAC — no additional server-side components needed.
As a graduated CNCF project, Helm is the industry standard for Kubernetes application packaging. The Artifact Hub (artifacthub.io) hosts thousands of community-maintained charts for databases, monitoring tools, CI/CD systems, and more.
Options & Flags
| Option | Description | Example |
|---|---|---|
| install NAME CHART | Install a chart as a named release | helm install mydb bitnami/postgresql |
| upgrade NAME CHART | Upgrade an existing release | helm upgrade mydb bitnami/postgresql --set primary.resources.limits.memory=1Gi |
| uninstall NAME | Remove a release from the cluster | helm uninstall mydb |
| list | List all releases in the current namespace | helm list --all-namespaces |
| rollback NAME REVISION | Rollback a release to a previous revision | helm rollback mydb 2 |
| repo add/update | Add or update chart repositories | helm repo add bitnami https://charts.bitnami.com/bitnami && helm repo update |
| search repo/hub | Search for charts in repos or Artifact Hub | helm search repo nginx |
| template | Render chart templates locally without installing | helm template myapp ./mychart --debug |
| package | Package a chart directory into a .tgz archive | helm package ./mychart |
| lint | Check a chart for issues | helm lint ./mychart |
Practical Examples
#1 Install PostgreSQL from Bitnami
Add the Bitnami repo and install PostgreSQL with a custom password in the database namespace.
$ helm repo add bitnami https://charts.bitnami.com/bitnami && helm install mydb bitnami/postgresql --set auth.postgresPassword=secret -n database --create-namespace#2 Install with custom values file
Install a local chart with environment-specific values. Values file overrides defaults in values.yaml.
$ helm install myapp ./mychart -f values-production.yaml -n production#3 Upgrade a release
Upgrade with new image tag and replica count. Creates a new revision for rollback.
$ helm upgrade myapp ./mychart --set image.tag=v2.0 --set replicaCount=3#4 Rollback after failed upgrade
View release history and rollback to revision 2. Kubernetes recreates the previous state.
$ helm history myapp && helm rollback myapp 2#5 Preview templates before install
Render all Kubernetes manifests locally without installing. Essential for validating templates.
$ helm template myapp ./mychart -f values-prod.yaml --debug#6 Create a new chart
Scaffold a new chart with templates, values.yaml, Chart.yaml, and helpers. Includes a default Nginx deployment.
$ helm create mychart && ls mychart/#7 Get release values and manifests
Inspect the user-supplied values and rendered manifests of an installed release.
$ helm get values myapp -n production && helm get manifest myapp -n production#8 Push chart to OCI registry
Package and push a chart to an OCI-compatible registry (GitHub Container Registry, Docker Hub, Harbor).
$ helm package ./mychart && helm push mychart-1.0.0.tgz oci://ghcr.io/myorg/chartsTips & Best Practices
Use --dry-run for safety: Before installing or upgrading, use helm install --dry-run to simulate the operation and see what would be applied without making changes.
Pin chart versions: Always specify --version when installing charts in production: helm install mydb bitnami/postgresql --version 15.2.5. Without it, you get the latest version which may include breaking changes.
upgrade --install is idempotent: Use helm upgrade --install to either install (if not present) or upgrade (if present). This is the recommended pattern for CI/CD pipelines.
Use helm diff plugin: Install the helm-diff plugin to see exactly what would change before upgrading: helm diff upgrade myapp ./mychart -f values.yaml
Release data in Secrets: Helm 3 stores release data as Kubernetes Secrets in the target namespace (sh.helm.release.v1.*). This means release history persists in the cluster.
Frequently Asked Questions
What is a Helm chart?
A Helm chart is a package of pre-configured Kubernetes resources. It contains templates (Go template YAML), default values (values.yaml), metadata (Chart.yaml), and optionally dependencies. Think of it as an apt package for Kubernetes.
How do I update chart dependencies?
Run helm dependency update ./mychart to download dependencies listed in Chart.yaml. Dependencies are stored in the charts/ subdirectory as .tgz archives.
How do I see what Helm would deploy?
Use helm template to render manifests locally, or helm install --dry-run to simulate an install against the cluster (validates against the API server).
Where do I find community charts?
Artifact Hub (artifacthub.io) indexes thousands of charts from various repositories. Popular repos include Bitnami, JetStack (cert-manager), and ingress-nginx.
Can I use Helm with ArgoCD?
Yes. ArgoCD natively supports Helm charts as an application source. Define a Helm chart in your ArgoCD Application manifest, and ArgoCD manages the deployment lifecycle via GitOps.
Related Commands
More Containers Commands
Master Linux with Professional eBooks
Curated IT eBooks covering Linux, DevOps, Cloud, and more
Browse Books →