Introduction to Helm 3 the Package Manager for Kubernetes

Introduction to Helm 3 the Package Manager for Kubernetes

Helm is the package manager for Kubernetes (like yum, apt and home brew ) that allows easily package, configure, and deploy applications onto Kubernetes clusters.

Helm charts are packages (like debs and rpms) It contains pre-configured kubernetes resources such as ConfigMaps, Deployments ,StatefulSet manifests, PersistentVolumes and editable settings for them.

Why do we need Helm?

Managing repeating Kubernetes manifest or copying from one to another, editing hardcode values and validating syntax, sharing across env like Dev, QA, Production etc. is hard.

source code management
Charts describe even the most complex apps, provide repeatable application installation, and serve as a single point of authority.
Connect Environments
Take the pain out of updates with in-place upgrades and custom hooks
Connect Environments
Charts are easy to version, share, and host on public or private servers.
source code management
Use helm rollback to roll back to an older version of a release with ease.

New Architecture of Helm 3

There are 3 important concepts for Helm

The chart is a bundle of information necessary to create an instance of a Kubernetes application.
The config contains config info to create a releasable object.
A release is a running instance of a chart, combined with a specific config.

COMPONENTS - The Helm SDK is implemented into two parts using golang

The Helm Client is a command-line client for end users. The client is responsible for

  • Local chart development
  • Managing repositories
  • Managing releases
  • Interfacing with the Helm library
  • Sending charts to be installed
  • Requesting upgrades or uninstalling of existing releases

The Helm Library provides the logic for executing Helm operations. It interfaces with the Kubernetes API server and provides the following capability:

  • Combining a chart and configuration to build a release
  • Installing charts into Kubernetes and providing the subsequent release object
  • Upgrading and uninstalling charts by interacting with Kubernetes

Install Helm 3

you can install and use Helm for your choice of operation system, it comes for linux, macOs and Windows

Linux - Run the client installer script that Helm provides:
$ curl >
$ chmod 700
$ ./

macOS - Use Home brew to install:
$ brew install helm

Windows - Use Chocolatey to install:
$ choco install kubernetes-helm

$ helm version
version.BuildInfo{Version:"v3.1.1", GitCommit:"afe70585407b420d0097d07b21c47dc511525ac8", GitTreeState:"clean", GoVersion:"go1.13.8"}

Helm chart directory structure looks like as follows

Chart.yaml keeps information about metadata of your current chart, version number and chart dependencies.

values.yaml values file contains a collection of key values that represent configuration settings for a chart.


Files under templates directory  are treated as dynamic  YAML files, these are implemented using the go template lang. you can have more detaile on Sprig Function Documentation

YAML templates prevents config duplication and allows you to install same charts in dev, staging or production environment.

Installing a Chart

1. From a Chart Directory 
$ helm install myapp ./mychart

2. From a remote chart repo     
$ helm install myapp myrepo/mychart

Using custom values

1. Using a values file 
$ helm install myapp ./mychart -f my-values.yaml

2. Using a key value pair 
$ helm install myapp ./mychart --set image.tag=master

3. Advanced use 
     $ helm install myapp ./mychart \
        -f qa.yaml  \
        -f staging.yaml


More Info:

Read Doc:


HelmHub :

Enjoyed this article? Share it.

Shyam Mohan

DevOps Engineer

Shyam Mohan is a DevOps Engineer and he has 15+ years of experience in the areas of Software Development, Devops, CI/CD, Kubernetes, and he also guides companies to adopt CI/CD pipelines which will help them to automate their workflow.

Upcoming Webinar

How to secure Kubernetes and secrets management- Part 2.

29th October,2022

11:30 AM IST

Register Now

Want to setup CI/CD in a more complex app?

Request a Demo


Ready to get started?

FREE Forever CI/CD...

Signup Here