What is Helm?
Helm is the package manager for Kubernetes — it bundles related manifests into a single versioned, installable unit called a chart.
Helm is often described as "the package manager for Kubernetes". Just as apt, yum, or npm install software on a machine, Helm installs applications onto a Kubernetes cluster.
The problem Helm solves
A real application on Kubernetes is rarely a single file. You typically need a Deployment, a Service, a ConfigMap, a Secret, an Ingress, and more. Applying and updating all of these by hand with kubectl is tedious and error-prone.
Helm bundles all those YAML manifests into one package called a chart. You install the whole application with a single command, and Helm tracks it as one unit.
What Helm gives you
- Packaging — group many manifests into one shareable chart.
- Templating — reuse the same chart across dev, staging, and production by changing values.
- Versioning — every install and upgrade is a numbered revision you can roll back to.
- Sharing — publish charts to repositories so others can install them.
Example
# Install a full application (e.g. an NGINX web server) in one command
helm install my-web bitnami/nginxWhen to use it
- A DevOps engineer uses Helm to deploy a multi-component microservices stack to Kubernetes with a single command instead of applying dozens of individual YAML files.
- A platform team publishes a company-standard Nginx ingress chart to an internal chart repository so every team can install it with consistent configuration.
- A CI pipeline calls helm upgrade --install on every merge to main, ensuring the staging cluster always reflects the latest application version without manual manifest editing.
More examples
Install a public chart
Registers the Bitnami repository, refreshes the index, and installs the nginx chart as a release named my-nginx.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-nginx bitnami/nginxList installed releases
Shows every active Helm release across all Kubernetes namespaces, equivalent to querying all installed packages.
helm list --all-namespacesInstall with custom values
Installs nginx with overridden values directly from the command line, creating the target namespace if it does not exist.
helm install my-nginx bitnami/nginx \
--set service.type=ClusterIP \
--set replicaCount=3 \
--namespace web --create-namespace
Discussion