0Pricing
Helm Academy · Lesson

A Minimal Deployment Template

Turning a static manifest into a chart template.

A Minimal Deployment Template is a free Helm Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Helm Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

From Static Manifest to Template

A chart is just a folder of templates. Each template is a Kubernetes manifest with placeholders Helm fills in at install time.

Start With a Plain Deployment

Before adding any magic, write the manifest you already know. Here is a hard-coded Deployment running one nginx pod.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app

Drop It Into templates

Save that file as templates/deployment.yaml inside your chart. Anything in templates is rendered and sent to the cluster.

The Release Name Is Dynamic

Hard-coding the name is fragile. Helm exposes the release name as .Release.Name, so every install gets a unique identity.

metadata:
  name: {{ .Release.Name }}

Pull Values From values.yaml

Settings users may change live in values.yaml and are read through .Values. This makes replicas configurable instead of fixed.

spec:
  replicas: {{ .Values.replicaCount }}

Define That Default

For .Values.replicaCount to resolve, give it a default in values.yaml. Users can override it later without touching templates.

# values.yaml
replicaCount: 1

Selectors Must Match Labels

A Deployment's selector must match the pod template labels exactly, or Kubernetes rejects it. Reuse one consistent label everywhere.

selector:
  matchLabels:
    app: {{ .Release.Name }}

The Pod Template Section

Inside spec.template you describe the actual pod: its labels and its containers. This is the workload Helm will ship to the cluster.

template:
  metadata:
    labels:
      app: {{ .Release.Name }}
  spec:
    containers: []

Add the Container

Each container needs a name and an image. For now the image is hard-coded; you will parameterize it in the next lesson.

containers:
  - name: app
    image: nginx:1.27

Render to Check Your Work

Run helm template . to see the final YAML Helm produces locally, with no cluster involved. Read it before installing.

helm template my-release .

The Whole Minimal Template

Together these pieces form a tiny but real Deployment template: name and labels driven by the release, replicas driven by values.

spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ .Release.Name }}

Quick Check

Which built-in object gives you the unique name of the installed release?

Recap: Your First Template

You turned a static Deployment into a template: .Release.Name for identity and .Values for settings. Render with helm template to verify. 🎉

Frequently asked questions

Is the “A Minimal Deployment Template” lesson free?

Yes — the full text of “A Minimal Deployment Template” is free to read here on the web, and the Helm Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Helm Academy course, upgrade to CoddyKit PRO.

What will I learn in “A Minimal Deployment Template”?

Turning a static manifest into a chart template. You practise Helm Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Helm Academy?

No prior experience is required. Helm Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “A Minimal Deployment Template” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Helm Academy lesson?

Yes. Every Helm Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. A Minimal Deployment Template
  2. Parameterizing the Container Image
  3. Adding a Service Template
  4. Installing and Iterating Your Chart
← Back to Helm Academy