10th Week :- Helm in DevOps – Your Complete Guide to Kubernetes Package Management

📌 Introduction
If you’ve ever worked with Kubernetes 🐳, you know how quickly managing multiple YAML files can turn into a nightmare 😅.
Imagine having to deploy an app with Deployments, Services, ConfigMaps, Ingress, Secrets — and updating each file manually.
That’s where Helm 🪖 comes in —
✨ The Package Manager for Kubernetes that makes life way easier for DevOps engineers.
🧐 What is Helm?
Helm is like apt for Ubuntu 📦 or npm for Node.js — but instead of installing apps on your system, it installs applications into Kubernetes.
💡 Helm = Kubernetes app manager + templating tool
With Helm, you can:
📦 Package all your Kubernetes manifests into a single bundle (called a Chart)
⚡ Install apps with one command
🔄 Upgrade & Rollback versions easily
🌍 Share your app via Helm repositories
📖 Official Helm definition:
“Helm is the best way to find, share, and use software built for Kubernetes.”
📜 What is a Helm Chart?
A Helm Chart is basically a blueprint 🏗️ for deploying an application in Kubernetes.
It’s a collection of files 📂 that describe all the Kubernetes resources your app needs.
🗂 Helm Chart Structure
mychart/
│── Chart.yaml # 📄 Metadata about the chart (name, version, description)
│── values.yaml # ⚙️ Default config values
│── templates/ # 🖌 Kubernetes manifest templates
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
│── charts/ # 📦 Dependencies (subcharts)
│── README.md # 📝 Documentation (optional)
💡 Why Use Helm in DevOps?
Managing Kubernetes without Helm feels like juggling 🔥 — lots of YAMLs, lots of repetition.
😩 Without Helm | 😎 With Helm |
Edit multiple YAML files for small changes | Change 1 value in values.yaml |
Tedious manual upgrades | Upgrade with helm upgrade |
Hard to rollback | Rollback with helm rollback |
Sharing configs is painful | Share charts easily via repos |
✅ Benefits:
♻ Reusable — same chart works for dev, staging, prod
🕒 Time-saving — no repeated editing
🔄 Easy rollback — restore previous working version
🎯 Parameterization — change configs without touching templates
⚙️ How Helm Works
Helm has two main parts:
Helm CLI 🖥 — You run commands like
install
,upgrade
,rollback
.Helm Library 📚 — Talks to Kubernetes API to create/update/delete resources.
🔍 Process:
You run →
helm install myapp ./mychart -f custom-values.yaml
Helm reads your templates/ & merges with values.yaml.
Helm renders final Kubernetes manifests 📝.
Helm applies them to your cluster.
Helm remembers your release for upgrades/rollbacks.
🛠 Installing Helm
🐧 Linux / 🍏 macOS:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
🪟 Windows (PowerShell):
choco install kubernetes-helm
✅ Verify Installation:
helm version
🏗 Creating Your First Helm Chart
Step 1: Create chart 📦
helm create mychart
Step 2: Edit values.yaml
⚙️
replicaCount: 3
image:
repository: nginx
tag: "1.21.0"
service:
type: ClusterIP
port: 80
Step 3: Install 🚀
helm install myapp ./mychart
Step 4: Check status 📊
helm list
🎨 Working with Templates
Templates in Helm use Go templating syntax ({{ }}
).
Example:
spec:
replicas: {{ .Values.replicaCount }}
containers:
- name: nginx
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
Values from:
replicaCount: 3
image:
repository: nginx
tag: "1.21.0"
Render as:
spec:
replicas: 3
containers:
- name: nginx
image: "nginx:1.21.0"
🔧 Using values.yaml
Stores default configs.
Override values:
helm install myapp ./mychart --set replicaCount=5
or
helm install myapp ./mychart -f custom-values.yaml
🚀 Default Use Cases for Helm
📦 Application Deployment — Nginx, MySQL, Redis, Prometheus.
🛠 Microservices — multiple services in one chart.
🔄 CI/CD Pipelines — auto deploy with GitOps (ArgoCD + Helm).
☁ Cloud-Native Projects — bootstrap apps quickly.
📜 Reusable Templates — one chart, many environments.
🏁 Real Example: Deploy Nginx
Add repo:
helm repo add bitnami https://charts.bitnami.com/bitnami
Install:
helm install my-nginx bitnami/nginx
Upgrade:
helm upgrade my-nginx bitnami/nginx --set image.tag=1.23.0
Rollback:
helm rollback my-nginx 1
📌 Best Practices
🧹 Keep
values.yaml
clean & documented.🚫 Don’t hardcode values in templates.
🔗 Use subcharts for dependencies.
🗂 Version control your charts.
✅ Lint before deploy:
helm lint mychart
🎯 Conclusion
Helm is a game-changer 🏆 for Kubernetes in DevOps.
It saves time ⏳, avoids mistakes ❌, and makes deployments smooth ✨.
Whether you’re deploying a simple web app 🌐 or a complex microservices architecture 🏗, Helm helps you manage it like a pro.
Subscribe to my newsletter
Read articles from Lav kushwaha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
