Day 59 – Helm — Kubernetes Package Manager
On Day 59 of my 90 Days of DevOps journey, I learned about Helm and how it simplifies Kubernetes application deployment.
For the past few days, I was manually creating multiple Kubernetes YAML files like:
Deployments
Services
ConfigMaps
Secrets
PVCs
As applications grow bigger, managing all these YAML files manually becomes difficult.
That is where Helm helps.
Today I learned that Helm is called the package manager for Kubernetes.
Just like apt is used in Ubuntu to install packages, Helm is used to install and manage Kubernetes applications.
Helm Core Concepts
Today I learned three important Helm concepts:
Chart
Release
Repository
A Chart is a package containing Kubernetes templates.
A Release is a running installation of a chart inside the cluster.
A Repository is a collection of Helm charts.
Understanding these concepts made Helm much easier to understand.
Installing Helm
First, I installed Helm and verified it using:
helm version
and:
helm env
After installation, Helm was ready to manage Kubernetes applications.
Adding Bitnami Repository
Next, I added the Bitnami repository.
Bitnami provides many ready-to-use Kubernetes application charts.
After adding the repository, I searched available charts using:
helm search repo
I was surprised to see how many applications can be deployed with just one command.
Installing a Chart
Then I installed nginx using Helm:
helm install my-nginx bitnami/nginx
This single command automatically created:
Deployment
Service
Pods
other Kubernetes resources
Earlier I had to write all these YAML files manually.
That was the biggest learning moment today.
I also checked:
helm list
helm status
helm get manifest
to inspect the release.
Customizing with Values
One powerful feature of Helm is customization using values.
I explored default configuration using:
helm show values bitnami/nginx
Then I customized:
replica count
service type
resource limits
using:
--set
and also by creating a:
custom-values.yaml
file.
This made configuration management much cleaner compared to editing multiple YAML files manually.
Upgrade and Rollback
Next, I learned how Helm upgrades applications.
I upgraded nginx replicas from:
3 → 5
using:
helm upgrade
Then I checked release history using:
helm history
Finally, I tested rollback using:
helm rollback
Helm restored the previous working version automatically.
This felt similar to Kubernetes rollout undo, but for the complete application stack.
Creating My Own Helm Chart
Finally, I created my own Helm chart using:
helm create my-app
This automatically generated:
Chart.yaml
values.yaml
templates/
I also explored Helm template syntax like:
{{ .Values.replicaCount }}
and:
{{ .Chart.Name }}
Then I customized the chart and deployed it successfully.
This helped me understand how reusable Kubernetes application templates are created.
What I Learned Today
Today I learned:
Helm basics
Charts
Releases
Repositories
Bitnami charts
Helm values
helm install
helm upgrade
helm rollback
Helm templating
Custom Helm charts
Final Thoughts
Today helped me understand how Kubernetes applications are managed efficiently in real production environments.
Instead of writing dozens of YAML files manually, Helm makes deployment and configuration much simpler.
Creating and customizing my own Helm chart was one of the most interesting Kubernetes experiences so far
