DevOps Peach

Docker & Kubernetes · Helm – The Package Manager for Kubernetes · Lesson 1 of 5

Why Helm — the kubectl Way and the Helm Way

Helm bundles many manifests into one parameterised chart and installs it as a release with history, so upgrades and rollbacks are easy.

Practice interactively →

The kubectl way: an app is many YAML files (Deployment, Service, ConfigMap, Ingress, a database…) applied with kubectl apply -f. As environments and apps grow:

The Helm way: Helm is a package manager for Kubernetes.

flowchart LR
  C["Chart nginx<br/>(templates + default values)"] --> H["helm install"]
  V["values: replicaCount=2"] --> H
  H --> R1["Release web (ns web)"]
  H --> R2["Release web-staging (ns staging)"]
  R1 --> K["Standard K8s objects<br/>Deployment, Service…"]

Note: Helm does not replace the Kubernetes API. It renders templates into ordinary manifests and sends them to the apiserver; kubectl get deploy still shows the objects Helm created.

Command Meaning
helm version Check the CLI version (v3.x)
helm install web bitnami/nginx -n web --create-namespace Install the whole app with one command

Helm compared with other approaches

Approach How configuration varies Release history Best for
Plain YAML + kubectl apply Copy and edit files None built in Very small apps, learning
Kustomize (kubectl apply -k) Base YAML plus overlays that patch it per environment None built in Teams who want plain YAML and few abstractions
Helm Templates plus values Revisions, rollback Reusable packages, third-party software, many environments

They are not exclusive: many teams install third-party software (ingress controllers, monitoring stacks, databases) with Helm charts and manage their own apps with Kustomize or Helm.

A typical layout for your own app

charts/shop/
values.yaml            # shared defaults
values-dev.yaml        # small differences per environment
values-prod.yaml
helm upgrade --install shop charts/shop -n shop-prod --create-namespace \
  -f charts/shop/values-prod.yaml --set image.tag=3f9c2ab --atomic --wait

The CI pipeline only changes the image tag; everything else lives in reviewed values files.

Using third-party charts responsibly

Where this module goes

The next lessons cover Helm's architecture, chart structure, templates, and dependencies. Together with the earlier Kubernetes modules, this gives you everything needed to package an application, deploy it repeatably to several environments, and roll it back safely.

Practice interactively →