Stop 08 · Kubernetes & OrchestrationTopics · 7/12

Helm Charts

Part of the DevOps Roadmap

In short

Your app needs a Deployment, Service, Ingress and ConfigMap, copied for dev, staging and prod with small changes. Helm turns that pile of near-identical YAML into one versioned package with settings.

Kubernetes' package manager — Helm charts bundle related manifests (Deployments, Services, ConfigMaps) into a reusable, templated, versioned package, avoiding copy-pasted YAML across environments.

The mascot fills rows of identical lunch boxes from one template tray, adjusting portions with a ladle.

Think of it like this

The caterer's set menu

A wedding caterer doesn't invent a new menu for every booking. They have one tested package and adjust guest count, spice level and sweets. A Helm chart is that package; values.yaml holds the per-wedding choices; each install is one booking, called a release.

Watch it happen

From chart to release and back

Chart
Values
Render
Release
Rollback

1/5A chart is a folder: Chart.yaml, templates with placeholders, and a default values.yaml.

The big ideas

What you need to know

Charts are packages

Templates plus defaults, versioned in Chart.yaml. Share them through chart repositories or OCI registries.

values.yaml is the knob panel

Keep one chart, and a small values file per environment. Only the differences live in each file.

Releases have history

Helm tracks every revision of a release, so you can see what changed and roll back.

Read before you install

Third-party charts create real resources. Run helm template first and read what will actually be applied.

See it in code

Walk through the code

bash
1# Scaffold your own chart2helm create web3# Render templates locally to check the YAML4helm template web ./web --set replicaCount=25 6# Install, upgrade and roll back a release7helm install web ./web --set replicaCount=28helm upgrade web ./web --set image.tag=1.289helm history web10helm rollback web 1

1/4Creates a starter chart with templates for a Deployment, Service, Ingress and more.

helm create gives you a working nginx chart to learn from. Keep per-environment overrides in files like values-prod.yaml and pass them with -f.

Save yourself the pain

Common mistakes

Oops

Copying the whole chart folder for each environment.

Do this instead

Keep one chart and separate values files. Copies drift apart and a fix in one never reaches the others.

Oops

Running helm upgrade on a third-party chart's new major version without reading anything.

Do this instead

Read the chart's changelog and run helm template or helm diff first. Major versions often rename values.

Your mission

Package your own app

~40 min

Quick check

Where should the difference between dev and prod (say, replica count) live in a Helm setup?

Go deeper

  1. 1Install an application into your cluster using a public Helm chart.
  2. 2Explore a chart's templates directory to see how values get injected into manifests.
  3. 3Learn why Helm makes deploying the same app across dev/staging/prod with different configs much easier.

More topics at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge