Day 37 of 90 Days of DevOps Challenge: Helm & Helm Charts

Vaishnavi DVaishnavi D
3 min read

On Day 36, I implemented Horizontal Pod Autoscaling (HPA) in Kubernetes, an important automation technique that scales pods based on CPU usage. It helped me understand Kubernetes observability and scalability using the Metrics Server.

Continuing my #90DaysOfDevOps journey, Day 37 is focused on simplifying Kubernetes deployments using Helm, a powerful package manager that helps developers and DevOps engineers define, install, and manage applications more efficiently.

What is Helm?

Helm is a Kubernetes package manager, often called the “apt” or “yum” of Kubernetes.
It helps you deploy complex applications on Kubernetes in a simple, consistent, and repeatable manner using Helm Charts.

In simple words, Helm lets you package Kubernetes manifests, use variables for customization, and install or upgrade them easily using simple commands.

What is a Helm Chart?

A Helm Chart is a collection of files that define a Kubernetes application, including deployments, services, ingress, config maps, and more, bundled in a versioned, reusable format.

Each chart contains:

my-chart/
├── Chart.yaml        # Metadata about the chart
├── values.yaml       # Default configuration values
├── templates/        # Kubernetes manifests (templated)
│   ├── deployment.yaml
│   ├── service.yaml
│   └── _helpers.tpl

With Helm Charts, you can:

  • Deploy an application with a single command

  • Customize it for different environments like dev, staging, and prod

  • Maintain versions, rollbacks, and upgrades easily

Why Use Helm?

  • Package Management
    Easily bundle Kubernetes objects into reusable charts for apps like MySQL, WordPress, etc.

  • Configuration Simplification
    Use values.yaml to manage configurations instead of hardcoding across multiple files.

  • Easy Rollbacks
    Revert to previous working versions quickly if a deployment fails.

  • Reusability
    Share and reuse Helm charts across teams and environments for consistent deployments.

  • Automation Friendly
    Seamlessly integrate Helm commands into CI/CD pipelines for automated deployments and updates.

  • Chart Repositories
    Pull charts from public or private repositories, making it easy to access and share applications.

  • Consistency Across Environments
    Ensure identical deployment structure across dev, staging, and production for reduced errors.

Real-World Use Cases

  • Install Prometheus and Grafana for monitoring

  • Deploy WordPress with MySQL in seconds

  • Build custom Helm Charts for internal microservices

  • Automate multi-service deployments using a single chart

Installing Helm

Here’s how you can install Helm and use it to deploy the metrics-server using a Helm chart.

Step 1: Install Helm

curl -fsSl -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm

This script will download and install Helm 3. Once installed, you can confirm the version using:

helm version

Step 2: Check if Metrics Server Is Installed

Make sure your Kubernetes cluster already has the metrics server running (we installed it manually earlier).

kubectl top pods
kubectl top nodes

If these commands return metrics (CPU, memory usage), it means the metrics server is working.

Step 3: Installing Metrics Server via Helm

  1. Check existing Helm repos
helm repo ls
  1. Add the metrics-server Helm repo
helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
  1. Install the chart
helm upgrade --install metrics-server metrics-server/metrics-server

This command installs the metrics-server chart if it’s not already installed or upgrades it if it is.

Final Thoughts

Today, I explored Helm and Helm Charts, powerful tools that bring structure, reusability, and automation to Kubernetes deployments. Helm simplifies application management by enabling version-controlled, repeatable deployments and seamless integration into CI/CD pipelines. It significantly reduces the complexity of managing Kubernetes manifests while promoting consistency across environments.

As I continue my journey through the #90DaysOfDevOps challenge, Helm will become a core component in automating deployments, minimizing manual configuration, and maintaining scalable, production-ready infrastructure.

0
Subscribe to my newsletter

Read articles from Vaishnavi D directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vaishnavi D
Vaishnavi D