Introduction to Helm
Helm is the package manager for Kubernetes, bundling manifests into reusable, versioned charts.
Real applications span many manifests β Deployments, Services, ConfigMaps, Ingresses. Managing them by hand across environments is tedious. Helm is the package manager that solves this.
Key concepts
- A chart is a package of templated Kubernetes manifests.
- A values file supplies the variables (image tag, replica count, hostnames) that fill the templates.
- A release is one installed instance of a chart in your cluster.
Why teams love it
- Install complex software (databases, ingress controllers) with one command.
- Reuse one chart across dev, staging, and prod by swapping values.
- Upgrade and roll back releases as versioned units.
Public charts on Artifact Hub let you deploy popular software in seconds.
Example
# Add a chart repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# Install a release, overriding a value
helm install my-db bitnami/postgresql --set auth.database=appdb
# List releases and upgrade one
helm list
helm upgrade my-db bitnami/postgresql --set primary.persistence.size=20Gi
# Roll back to a previous revision
helm rollback my-db 1When to use it
- A team installs the cert-manager Helm chart with a single helm install command instead of manually applying 50+ YAML manifests.
- A developer creates a Helm chart for their microservice so that deploying to dev, staging, and production only requires changing a values.yaml file.
- An SRE uses helm rollback to revert a broken production release to the previous chart version in under one minute.
More examples
Install a chart from a repository
Adds an official Helm repo, updates it, and installs the ingress-nginx chart into its own namespace with 2 replicas.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.replicaCount=2Custom values override
A production values file that overrides chart defaults: 3 replicas, pinned image tag, resource requests, and Ingress enabled.
# values-production.yaml
replicaCount: 3
image:
tag: v1.4.2
resources:
requests:
cpu: 250m
memory: 256Mi
ingress:
enabled: true
host: api.example.comUpgrade, rollback, and history
Upgrades a release with new values, inspects the revision history, and rolls back to revision 2 if the upgrade caused issues.
helm upgrade my-app ./charts/my-app -f values-production.yaml
# Check release history
helm history my-app
# Rollback to previous revision
helm rollback my-app 2
Discussion