Helm & Kubernetes | Create Helm Charts

Ajay Singh Chouhan
2 min readDec 28, 2021

What is Helm

In short, Helm is a package manager for Kubernetes that allows developers and operators to more easily package, configure, and deploy applications and services onto Kubernetes clusters.

Helm has the opportunity to set variables for Kubernetes, which you can then assign to your different Kubernetes Objects

Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.

Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.

Nginx Example

$ helm create HELM-CHART-NAME

This creates a new Helm Chart in the root of your Project. If you open the folder, you will see that it contains a few subdirectories and yaml files

  1. The first of which is the charts dir. You don’t have to pay attention to it at the moment.
  2. The second one is the .helmignore file. It has similar properties as the .gitignore file for git. You can configure, which files won’t be added to your helm hart when packaging.
  3. The Chart.yaml file contains some informations about the chart itself and the application versions. You can change them after every change.
  4. The values.yaml file contains all the values needed for the files in the templates directory.
  5. The templates directory contains every file that gets executed by Helm. Some files are there by default and in most situations you can ignore them. They help you create an Ingress or generate the console output if a deployment was successful.

Install your first chart

$ helm install nginx-app nginx-chart

Package your charts

if you not only want to deploy your charts locally, you have to package them and push them to an artifactory. It is important that you have added all the files you don’t wanna have packaged to the .helmignore file. If this is already the case, just run:

$ helm package nginx-chart — version=1.0.0

Push your charts

For pushing our charts, we can use curl. It is the simplest way in my opinion.

$ curl -u username:password -T nginx-chart-1.0.0.tgz \
https://YOUR-HELM-CHART-REPO/nginx-chart-1.0.0.tgz

--

--