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

Example · bash
# Install a full application (e.g. an NGINX web server) in one command
helm install my-web bitnami/nginx

When 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.

Example · bash
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-nginx bitnami/nginx

List installed releases

Shows every active Helm release across all Kubernetes namespaces, equivalent to querying all installed packages.

Example · bash
helm list --all-namespaces

Install with custom values

Installs nginx with overridden values directly from the command line, creating the target namespace if it does not exist.

Example · bash
helm install my-nginx bitnami/nginx \
  --set service.type=ClusterIP \
  --set replicaCount=3 \
  --namespace web --create-namespace

Discussion

  • Be the first to comment on this lesson.