paint-brush
Helm — Everything You Need to Know Part IIby@asadfaizi
145 reads

Helm — Everything You Need to Know Part II

by Asad FaiziSeptember 24th, 2021
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In this second part of this tutorial, we will learn about Helm versions (v2 vs v3), most common commands, and most importantly, we are going to see a practical example of how to use it. The current version of Helm is Helm3, and the most common command is [Helm install] This is used to install new charts from a chart repository. The basic syntax to install a chart is: 'Helm create' This creates a new chart structure with the given name.

People Mentioned

Mention Thumbnail
featured image - Helm — Everything You Need to Know Part II
Asad Faizi HackerNoon profile picture


If you are new to Helm, you should absolutely go through the first part of this tutorial, “Everything you need to know about Helm – Part I.” In Part I, we introduced Helm, and we went through its installation steps.


In this second part, we are going to learn about Helm versions (v2 vs. v3), most common commands, and most importantly, we are going to see a practical example of how to use it.


Helm Versions


The current version of Helm is Helm3. This was not simply a run-of-the-mill version upgrade – Helm3 introduced major internal differences regarding Helm’s internal workings and how Kubernetes packages were managed.


The biggest change from the previous version (Helm2) was the removal of Tiller, the server component. The reasons for this are explained in the Helm FAQ docs, in the section named ‘Removal of Tiller.’


Some other significant changes in Helm3 are below. Again, they are explained in detail in the FAQ documentation:


  • Improved upgrade strategy
  • Release names now restricted to the namespace
  • ‘Secrets’ used as the default storage driver
  • Ability to validate chart values with JSON
  • Consolidation of requirements.yaml into chart.yaml
  • Automatic creation of namespaces

Helm Commands


Let’s now take a look at the most common Helm commands and their usage. The full Helm command list is too long to list here, but you can and should go through it: Helm install: this is the most common command used for installing new charts. The basic syntax to install a chart from a repo is:


 helm install <name> <chart> [flags]


For example, to install nginx v1.16:


helm install mynginx-116 /myrepos/nginx-v116


When you use this chart reference with a repo prefix (./myrepos/nginx/v116’),

Helm will look in the local configuration for a chart repo named “myrepos’,

and then look for a chart named ‘nginx’ in that repository.


You can also download directly from an absolute URL:


helm install mynginx-116
https://nginx.org/download/nginx-1.16.1.tar.gz


You may also need to check your list of repos to make sure the repo you want to install from is part of your list. Use this command:


helm repo list [flags]


And if the repo you want is not in your list, you can add it with:


helm repo add [repo-name] [URL] [flags]


Example:


helm repo add nginx-v116 https://nginx.org/download/nginx-1.16.1.tar.gz


If you need to update your repos:


helm repo update [flags]


You should also familiarize yourself with the Helm create command. This creates a new chart structure (the directories and files we listed above) with the given name. The basic syntax is:


helm create NAME [flags] 


And if you want to display a chart’s contents:


helm show all chart [chart-name] 


If you need to roll back to a previous release:


helm rollback <RELEASE> [REVISION] [flags]


To uninstall a specific release:


helm uninstall RELEASE_NAME [flags]


Note: You can use the ‘–dry-run’ flag to see which releases will be uninstalled without actually uninstalling them.


Sample Installation Using Helm


Let’s now go through a sample installation and deployment of Nginx using Helm, so you can get an idea of how all these commands are used. We will use Ubuntu for this exercise and assume you already have Kubernetes. If not, first read this article.

Navigate to the directory where you installed Helm:


cd/path/to/helm


First, we want to confirm if our repo list contains ‘nginx’:


helm search repo nginx


Depending on the results (check against the nginx source), you may want to add the latest repo:


helm repo add nginx-stable https://helm.nginx.com/stable


And then it’s always a good idea to update your repo list after adding or deleting repos:


helm repo update


Next, install the nginx chart (package):


helm install my-release nginx-stable/nginx-ingress


Or if nginx is already installed and you only need to upgrade the version:


helm upgrade my-release nginx-stable/nginx-ingress


And finally, if you ever need to uninstall this nginx version:


helm uninstall my-release 


Useful Resources to Learn Helm


Probably the most important resource to start Helm is the official documentation. As it’s described by the creators and maintainers of Helm, Helm has a lot of documentation. A high-level overview of how it’s organized will help you know where to look for certain things:

Tutorials take you by the hand through a series of steps to create your first Helm chart. Start here if you’re new to Helm.

Topic guides discuss key topics and concepts at a fairly high level and provide useful background information and explanation.

Community Guides discuss topics centered around Helm’s community. Start here if you want to learn more about the development process of Helm itself and how you can contribute.

How-to guides are recipes. They guide you through the steps involved in addressing key problems and use-cases. They are more advanced than tutorials and assume some knowledge of how Helm works.


Conclusion


You hopefully now have a pretty good idea of Helm – what it does, why we use it, and where it fits into the Kubernetes ecosystem (think of Helm as the ‘apt’ or ‘rpm’ equivalent for Kubernetes). And you also have a good idea of some Helm sample commands and how to install and deploy a simple app using Helm.


Also Published At: https://cloudplex.io/tutorial/everything-you-need-to-know-about-helm-part-ii/


Asad Faizi

Founder CEO

CloudPlex.io, Inc

[email protected]