Helm
The package manager for Kubernetes — Helm Charts bundle Kubernetes manifests with configurable templates, enabling consistent deployment of complex applications across environments.
Helm is to Kubernetes what apt is to Ubuntu or npm is to Node.js. Instead of maintaining dozens of raw Kubernetes YAML files for every application, you package them into a Helm Chart with templated values. A helm install command deploys the full application stack with environment-specific configuration.
Chart Structure
myapp/
Chart.yaml # Chart metadata (name, version, description)
values.yaml # Default configuration values
templates/ # Kubernetes manifest templates (Go templating)
deployment.yaml
service.yaml
ingress.yaml
_helpers.tpl # Shared template helpersTemplating
Helm uses Go templating. values.yaml defines defaults; users override them at install time:
# values.yaml
replicaCount: 1
image:
repository: myapp
tag: latest
service:
port: 80# In a template
replicas: {{ .Values.replicaCount }}# Override at install
helm install myapp ./myapp --set replicaCount=3 --set image.tag=v1.2.3Chart Repository
Charts are distributed via Helm repositories (OCI registries or HTTP repos). Artifact Hub (artifacthub.io) indexes community charts: nginx-ingress, cert-manager, Prometheus, Grafana, Argocd, and hundreds more. Instead of writing your own Kubernetes configs for open-source software, you install the community Helm chart and override values.
Helm Releases
Each helm install creates a named Release tracked by Helm in a Kubernetes Secret (release history). helm upgrade applies changes; helm rollback reverts to a previous revision. This gives you deployment history and one-command rollback without any additional tooling.
Helm with ArgoCD
Argocd natively understands Helm charts — point an ArgoCD Application at a Helm chart repo and values file, and ArgoCD handles the sync. You get GitOps (values files in Git) + packaging (Helm) + delivery (ArgoCD) in a clean pipeline.
Helm vs Kustomize
- Helm — templating with Go templates; packaging with repositories; good for distributing to others
- Kustomize — overlay-based patching (no templates); built into kubectl; better for organization-internal config management
Many teams use both: a Helm chart for the application skeleton, Kustomize overlays for environment-specific patches.
Related Terms
- Argocd — GitOps delivery that deploys Helm charts
- Kubernetes — the platform Helm manages resources on
- Pulumi — can deploy Helm charts via the Pulumi Helm provider
- Traefik — commonly deployed via Helm as a Kubernetes Ingress Controller