What is helm ?

somashekhar kanade
2 min readMay 3, 2022

Helm is a package manager for Kubernetes. Helm is the K8s equivalent of yum or apt.

What is package manager ?

Package managers automate the process of installing, configuring, upgrading, and removing programs/apps.

Helm deploys charts, which are packaged application. It is a collection of all your versioned, pre-configured application resources which can be deployed as one unit. You can then deploy another version of the chart with a different set of configuration

Why helm ?

Writing and maintaining Kubernetes YAML manifests for all the required Kubernetes objects can be a time consuming and tedious task :(

For the simplest of deployments, you would need at least 3 YAML manifests with duplicated and hardcoded values. Helm simplifies this process and creates a single package that can be advertised to your cluster.

Helm components and terminology

Source: https://banzaicloud.com/
  • Helm: A command-line interface (CLI) that installs charts into Kubernetes, creating a release for each installation.
  • Chart: An application package that contains templates for a set of resources that are necessary to run the application. A template uses variables that are substituted with values when the manifest is created. The chart includes a values file that describes how to configure the resources.
  • Repository: Storage for Helm charts.
  • Release: An instance of a chart that is running in a Kubernetes cluster. You can install the same chart multiple times to create multiple releases.

How to install/deploy application using helm chart

The Helm install command deploys an application.

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install nginx-release bitnami/nginx

above will install nginx in your cluster with the default values provided by bitnami
If those values are to be overwritten
1. Use set flag ( — set key=value)

helm install nginx-release --set imagePullPolicy=Always bitnami/nginx

2. Pass with -f values.yaml

helm install nginx-release -f values.yaml bitnami/nginx

How to test a chart before deploying to cluster ?

  1. Use — dry-run flag
helm install nginx-release bitnami/nginx --dry-run

How to list all helm charts ?

helm list 

How to uninstall helm chart ?

helm uninstall nginx-release

This should be good point to start with helm for creating packages for kubernetes
Please feel free to reach out for any queries

--

--