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-appDrop 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: 1Selectors 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.27Render 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
- A Minimal Deployment Template
- Parameterizing the Container Image
- Adding a Service Template
- Installing and Iterating Your Chart