Lesson 1 · Helm fundamentals

What Helm is & why

The package manager for Kubernetes — and the "copy-paste YAML 106 times" problem it kills.

Your win: explain what Helm does in one sentence, the chart / release / values triad, and why this repo reaches for it instead of hand-writing Kubernetes manifests.

The problem Helm solves

Course 2 taught the Kubernetes objects — Deployment, Service, ConfigMap, KEDA ScaledObject, PDB, ServiceAccount. A single backend service needs all of those, and this repo runs ~25 services across a matrix of environments × organisations (Course 1's env×org model). Hand-writing that YAML would mean thousands of near-identical manifests, drifting out of sync the moment anything changes. Helm is the fix: the package manager for Kubernetes.1 You write the objects once as templates, and stamp them out with per-service, per-cell values.

One sentence Helm templates, packages, installs, and upgrades sets of Kubernetes objects as versioned units. Instead of applying raw YAML, you install a chart — and get a managed, upgradeable, rollback-able release.

The three words you must own

TermWhat it is
Chartthe package — a directory of templates + default values + metadata (Chart.yaml). This is the reusable artifact.
Valuesthe config fed into a chart's templates (.Values) — what makes one install differ from another.
Releaseone installed instance of a chart in a cluster, with a name and a revision history. Install the same chart twice → two releases.
Chart (templates + values.yaml) │ + your Values (-f files, --set) ▼ helm template / render ──► concrete K8s manifests │ helm upgrade --install ──► a RELEASE in the cluster (revision 1, 2, 3 … → rollback)

Why it matters here specifically

Anchor — Helm is how this repo produces K8s deployments/helm/ holds ~106 charts. Every backend service is one chart (Lesson 2), and the objects you learned in Course 2 are all rendered from Helm templates — nobody runs kubectl apply on hand-written YAML. Remember Course 1's skaffold render? That's literally helm template under the hood, and skaffold run is helm upgrade --install. So you've been driving Helm since Course 1 without naming it. Helm is pinned to v3.14.4 (deployments/versions/helm).
Helm 3 vs 2 (a common interview trap) Helm 3 is client-only — there's no in-cluster "Tiller" server (Helm 2 had one, and it was a security headache). Release state lives in Kubernetes Secrets in the release's namespace. If someone asks "where does Helm store release history?", the answer is "in-cluster Secrets, since v3."
Backend use case Backend use case: this is the real reading lens for `deployments/helm/`, where one chart per service plus shared library templates replaces hand-written per-service YAML.
Common mistake Common mistake: describing Helm as only a package manager or only a templating engine, instead of both.
Read this next

Helm docs — Charts (intro) + Using Helm

What a chart is, and the install/upgrade/release lifecycle. The canonical starting point.

helm.sh — Charts
helm.sh — Using Helm (releases)

In plain English Plain English: Helm is the tool this repo uses to turn a reusable chart plus layered values into concrete Kubernetes manifests and managed releases.

Check yourself (from memory)

Q1. Helm is best described as…

It templates, packages, installs and upgrades sets of K8s objects as versioned units — charts installed as releases.

Q2. A release is…

Install a chart → a named release with revision history. Same chart installed twice = two releases.

Q3. In this repo, skaffold render corresponds to…

Skaffold render = helm template (hydrate manifests); skaffold run = helm upgrade --install. You've used Helm since Course 1.
What is Helm, the chart/release/values triad, and how does this repo use it?
recall, then click to reveal
HELM = the Kubernetes PACKAGE MANAGER: it templates, packages, installs and upgrades sets of K8s objects as versioned units. TRIAD: a CHART is the package (templates + default values + Chart.yaml); VALUES are the config fed to templates (.Values); a RELEASE is one installed instance of a chart (named, with revision history → rollback). Helm 3 is client-only (no Tiller); release state lives in in-cluster Secrets. REPO: deployments/helm/ = ~106 charts (one per service); every Course-2 object is rendered from Helm. skaffold render = helm template; skaffold run = helm upgrade --install. Pinned v3.14.4.
Want to see the exact objects one service chart emits, or why Helm 3 dropped Tiller? Ask me — chart anatomy is Lesson 2.

1. Helm — Charts; Using Helm.