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.

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
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
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 11/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
Quick check
Where should the difference between dev and prod (say, replica count) live in a Helm setup?
Go deeper
- 1Install an application into your cluster using a public Helm chart.
- 2Explore a chart's templates directory to see how values get injected into manifests.
- 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.