Helm: Basics and Components

I'm a results-driven professional skilled in both DevOps and Web Development. Here's a snapshot of what I bring to the table:
💻 DevOps Expertise:
- AWS Certified Solutions Architect Associate: Proficient in deploying and managing applications in the cloud.
- Automation Enthusiast: Leveraging Python for task automation, enhancing development workflows.
🔧 Tools & Technologies:
- Ansible, Terraform, Docker, Prometheus, Kubernetes, Linux, Git, Github Actions, EC2, S3, VPC, R53 and other AWS services.
🌐 Web Development:
- Proficient in HTML, CSS, JavaScript, React, Redux-toolkit, Node.js, Express.js and Tailwind CSS.
- Specialized in building high-performance websites with Gatsby.js.
Let's connect to discuss how my DevOps skills and frontend expertise can contribute to your projects or team. Open to collaboration and always eager to learn!
Aside from my work, I've also contributed to open-source projects, like adding a feature for Focalboard Mattermost.
Kubernetes has become the standard for deploying and managing containerized applications. But managing raw YAML manifests for complex applications can quickly become overwhelming. This is where Helm comes in — often called the “package manager for Kubernetes.”
What is Helm?
Helm is an open-source tool that helps developers and operators:
Define Kubernetes applications as reusable templates.
Package applications into charts for easy distribution.
Install, upgrade, and rollback applications with a single command.
Manage configuration across environments (dev, staging, prod).
In short, Helm turns raw Kubernetes manifests into manageable, versioned packages.
Helm Basics
At its core, Helm works around three main concepts:
Charts – A Helm chart is a package of pre-configured Kubernetes resources. Think of it like a software package that can be installed, upgraded, or shared.
Releases – When you install a chart on a Kubernetes cluster, Helm creates a release. A release is a running instance of a chart with a specific configuration.
Repositories – Helm charts are stored and shared through repositories, similar to how code packages are stored in PyPI (for Python) or npm (for Node.js).
Components of Helm
Helm has several moving parts that work together to simplify Kubernetes application management:
1. Helm CLI
The command-line tool (
helm) is the main interface.You use it to install charts, upgrade applications, roll back to previous versions, or manage repositories.
Example:
helm install my-app bitnami/nginx
2. Charts
A chart is a directory structure that contains all the information required to run an application in Kubernetes.
Key files inside a chart:
Chart.yaml→ Metadata about the chart (name, version, description).values.yaml→ Default configuration values.templates/→ YAML templates for Kubernetes resources (e.g., Deployment, Service).charts/→ Subcharts (dependencies).
Charts make it easy to reuse and share Kubernetes configurations.
3. Releases
Every time you install a chart, Helm creates a release with a unique name.
Each release can be upgraded, rolled back, or deleted independently.
Example: You can install the same NGINX chart multiple times with different names (
nginx-dev,nginx-prod).
4. Repositories
A Helm repository is a collection of charts packaged and available for download.
The most popular one is Artifact Hub (https://artifacthub.io), which hosts thousands of community and vendor-maintained charts.
You can add repos using:
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update
5. Values
values.yamlfiles allow you to override default configurations when deploying a chart.Instead of editing templates directly, you pass your custom values:
helm install my-app bitnami/nginx -f custom-values.yamlThis makes it easy to manage different environments without duplicating templates.
6. Helm Library Charts (Optional)
Special charts designed as building blocks for other charts.
Useful for reusing common configurations across multiple applications.
Why Use Helm?
Reusability → Define Kubernetes resources once and reuse them across environments.
Simplicity → Install complex apps with one command.
Versioning & Rollback → Manage app versions and roll back easily if something breaks.
Consistency → Keep deployments consistent across clusters and teams.




