Helm

Helm is the package manager for Kubernetes. It packages a set of Kubernetes manifests into a chart, parameterised by values, that can be installed, upgraded, rolled back, and shared via repositories. Helm charts are the standard distribution format for installable Kubernetes applications.

Core concepts

  • Chart. A directory of YAML templates, a values.yaml, and metadata (Chart.yaml) describing an installable Kubernetes application.
  • Values. User-supplied parameters that fill in template variables, allowing the same chart to deploy differently per environment.
  • Release. An installed instance of a chart in a cluster, with a name, version, and history.
  • Repository. A web-hosted index of charts (Artifact Hub, Bitnami, ingress-nginx, the Argo repo, OCI registries).

Typical commands

  • helm install <name> <chart>
  • helm upgrade <name> <chart>
  • helm rollback <name> <revision>
  • helm template ... | kubectl apply -f - (render locally, apply with kubectl)
  • helm package and helm push for publishing charts to a registry

Helm vs Kustomize vs raw manifests

  • Helm. Templating with values; release tracking; rollbacks; package manager workflow. Strongest fit for distributing third-party applications.
  • Kustomize. Overlay-based composition; no templates, pure YAML patches. Strongest fit for internal services under direct team control.
  • Raw manifests. Simplest; ungoverned; hard to scale across environments.
🔗
Related Terms
Kubernetes, ArgoCD, GitOps, Docker.

Subscribe to Sahil's Playbook

Clear thinking on product, engineering, and building at scale. No noise. One email when there's something worth sharing.
[email protected]
Subscribe
Mastodon