Learn Helm

The package manager for Kubernetes: install, configure and upgrade apps as charts

14 lessons · 2 hours · 4 levels · covers Helm 4

Helm packages Kubernetes manifests into versioned, configurable charts and manages installed releases with upgrades and rollbacks. It is how most third-party software (databases, ingress controllers, monitoring stacks) is installed on clusters, and a common way to ship your own services.

Before you start

Helm builds on these; the tree links to the exact lessons you need.

How deep do you want to go?

1. EssentialsRead and write simple code, do the everyday basics5 lessons · 41 min in total
2. PracticalUse it productively at work, with the usual idioms8 lessons · 1 hour in total
3. AdvancedThe less common features, performance and trade-offs11 lessons · 2 hours in total
4. ExpertInternals and the edge cases experts know14 lessons · 2 hours in total

The Helm tree

HelmWhat Helm is: charts, releases, reposWhat Helm is: charts,releases, reposInstalling charts from repos and OCIInstalling charts fromrepos and OCIConfiguring with valuesConfiguring withvaluesUpgrades, history and rollbacksUpgrades, historyand rollbacksAnatomy of a chartAnatomy of a chartTemplates, values and built-in objectsTemplates, valuesand built-in objectsControl flow and named templatesControl flow andnamed templatesChart dependencies and subchartsChart dependenciesand subchartsDeployments and ReplicaSetsDeployments andReplicaSetsServicesServicesManifests and kubectl applyManifests andkubectl applyJobs and CronJobsJobs and CronJobsKustomize overlaysKustomize overlays
Essentials and Practical shown (8 of 14 lessons); the full list is below. Click a lesson to read it.

All 14 lessons, in order

Using charts

  1. What Helm is: charts, releases, repos · Essentials · 7 min

    A chart is a package of templated manifests; installing it creates a release you can upgrade and roll back.

  2. Installing charts from repos and OCI · Essentials · 8 min

    Add repositories, search them, and install, list and uninstall releases.

  3. Configuring with values · Essentials · 10 min

    Override a chart's defaults with -f values files and --set flags, and understand how they merge.

  4. Upgrades, history and rollbacks · Essentials · 8 min

    Upgrade releases, inspect their revision history and roll back to a previous revision.

Writing charts

  1. Anatomy of a chart · Essentials · 8 min

    Learn the files of a chart: Chart.yaml, values.yaml, templates/, helpers, NOTES.txt and .helmignore.

  2. Templates, values and built-in objects · Practical · 12 min

    Write templates using .Values, .Release, .Chart and pipelines of template functions.

  3. Control flow and named templates · Practical · 12 min

    Use if, with, range and variables, and share snippets with define, include and _helpers.tpl.

  4. Chart dependencies and subcharts · Practical · 10 min

    Declare dependencies in Chart.yaml, configure subcharts through values, and toggle them with conditions.

Lifecycle and distribution

  1. Hooks and chart tests · Advanced · 10 min

    Run Jobs at points in the release lifecycle with hooks, and verify installs with helm test.

  2. Linting, schemas and testing charts · Advanced · 10 min

    Catch chart bugs early with helm lint, values.schema.json, rendered-output checks and helm-unittest.

  3. Packaging and publishing to OCI registries · Advanced · 8 min

    Package charts, push them to OCI registries, sign them, and version them with SemVer.

Advanced Helm

  1. How Helm applies changes and stores releases · Expert · 12 min

    Release records in Secrets, three-way merges versus server-side apply, ownership annotations and drift.

  2. lookup, tpl and library charts · Expert · 12 min

    Query the cluster with lookup, render values as templates with tpl, fail clearly, and share code via library charts.

  3. Helm with GitOps and post-renderers · Expert · 12 min

    Run charts through Argo CD or Flux, patch rendered output with post-renderers, and choose who owns the release.