Course page
Log in

You are watching a free preview. Enroll to open all 24 lessons, track progress and ask the course tutor.

Enroll for $44.99

Section 1: Helm essentials

What Helm solves, and what it does not

Video 8 min Lesson 1 of 24 Sample clip Preview

Kubernetes applications are made of many manifests: a Deployment, a Service, a ConfigMap, maybe an HTTPRoute, a HorizontalPodAutoscaler and a ServiceAccount. Each environment needs slightly different values: replica counts, image tags, host names, resource limits. Copying and editing YAML files per environment does not scale.

Helm addresses this with three ideas.

  • Charts: a package of templated manifests plus default values.
  • Values: settings you supply at install time to customise the chart.
  • Releases: a named installation of a chart in a namespace, with a revision history you can upgrade and roll back.
helm install shop-api ./charts/api -n shop -f values-prod.yaml
helm upgrade shop-api ./charts/api -n shop -f values-prod.yaml --set image.tag=1.6.0
helm history shop-api -n shop
helm rollback shop-api 3 -n shop

How Helm works

Helm renders templates locally by combining them with values, producing plain Kubernetes manifests. It then sends them to the API server and records the release, by default as a Secret in the release namespace. There is no server side Helm component in the cluster since Helm 3.

What Helm does not do

  • It does not continuously reconcile. If someone edits a Deployment by hand, Helm will not notice until the next upgrade. GitOps tools such as Argo CD and Flux add that loop, and they can render Helm charts.
  • It does not make a confusing chart understandable. Templating is powerful, and the main risk of Helm is charts so flexible that nobody can predict their output.
  • It is not a secrets manager. Values files with passwords in Git are a leak waiting to happen.

Helm or Kustomize

Kustomize patches plain YAML without templates. It is excellent for your own applications with a few environment differences. Helm shines when you distribute an application to others, or when many teams install the same component with varied settings. Many teams use both: Helm for third party software and shared platform charts, Kustomize for their own small services.

Our approach

We write charts that are boring on purpose: few values, sensible defaults, and output you can read with helm template and understand at a glance.

← → switch lessons