Introduction to Helm
Features of Helm
Helm is a package manager for Kubernetes, used to simplify and enhance the deployment experience for deploying resources into a Kubernetes cluster.
This training course explores Helm 3, which is the latest version of Helm building upon the successes of Helm 2. During this course, you'll learn the fundamentals of working with Helm3, its features, and the key differences between Helm 3 and Helm 2.
Several hands-on demonstrations are provided within this course, which will allow you to observe how to install and set up Helm, and also how to use Helm to perform various Chart cluster management related tasks. You'll also see how to create and host your very own Helm Chart. All of the coding assets which are used and demonstrated can be found within the CloudAcademy GitHub repositories for this course — they can be found in the links under the Resources section below. You’re encouraged to clone these repositories and perform the same helm commands against your own Kubernetes cluster.
If you have any feedback about this course, please contact us at firstname.lastname@example.org.
By completing this course, you will learn:
- What Helm is and how to install it
- Helm charts, templates, releases, revisions, and repositories
- How to deploy, upgrade and rollback Helm charts
- How to create and host your own Helm charts
The intended audience for this course includes:
- Anyone interested in learning about Helm and its fundamentals
- Software Engineers interested in learning how to configure and deploy Helm charts into a Kubernetes cluster
- DevOps and SRE practitioners interested in understanding how to install, manage and maintain Helm-deployed infrastructure
To get the most out of this course, you should have:
- A basic understanding of Kubernetes
- Experience with deploying Kubernetes resources such as pods, deployments, services, etc.
- A basic understanding of software development and the software development lifecycle
If you’re completely new to Kubernetes, please consider taking our dedicated Introduction to Kubernetes learning path.
Welcome back. In this demonstration, I'm going to quickly show you how to install and set up the Helm 3 client. This demonstration will be performed on MacOS, however, similar instructions can be used on other operating systems. Right, let's begin. For starters, I'll need to locate and download the latest version of the Helm 3 client binary. To do so, I'll navigate to the Helm website located at helm.sh. I'll then click on the Get Started link in the top right-hand corner.
I'll then click on the Installing Helm link found here in the left-hand side menu. I'll install the client using a binary release, therefore, under the Binary Releases heading, I'll click on the desired version link. This bounces us over to GitHub and into the Helm Releases page. Now, I want to download the latest 3.x version, therefore, I'll scroll down until I find the latest version 3 release. Here we can see that the latest 3.x version is 3.2.4. From here, I'll simply copy the download link for MacOS, and then jump over into my terminal.
Here we can see that I'm in the demo-helm directory. I'll perform a quick directory listing to confirm that this directory is empty, which it is.
Next, I'll use the curl command to download the Helm 3 client binary, providing it with the download URL I previously copied. Performing another directory listing, we can see that our downloaded release archive is available.
Let's now uncompress it by running the command tar -xvf and the name of the archive. I'll use the tree command to display the resulting directory structure, and here we can see our helm 3.2.4 client binary.
Finally, I'll copy this into a directory that is configured on my systems PATH. In this case, I'll copy it into the /usr/local/bin/directory. I'll need to use sudo to elevate the permissions since this directory is protected.
Okay, if I now run the command, which helm, we can see that the helm executable has been found in the directory I stored it in, and that we are now ready to use it.
Next, I'll invoke the command from the current directory and query its version information, and indeed we can see that it is the expected 3.2.4 release, a perfect result.
Now, before I finish, let's set up auto-completion for the helm executable. This will make life far easier when it comes to learning and using the helm client. To do so, I'll run the following command, to persist the helm auto completion to my systems bash profile. This will ensure that anytime I restart or relaunch a terminal, the helm completion command is automatically rerun, thereby always enabling auto completion for the helm command.
If I now cat out the contents of my systems bash profile, I should see a new entry for helm completion at the bottom which I can confirm, perfect. Finally, if I now reload my updated bash profile within the current terminal shell using the source command, I should have helm auto completion available.
Let's try it out now. Clearing the current terminal first, I'll now type in helm and then perform a double tab key press to call up the auto completion, and perfect, here we can see all of the helm sub commands, confirming that auto completion is indeed enabled and working.
Okay, that completes this demonstration. We now have our local Helm 3 client installed with auto completion enabled. When it comes to working with Helm 3, this is the only installable requirement. There are no installable actions required within the cluster, it's just super easy and fast to get up and running with Helm 3.
Jeremy is the DevOps Content Lead at Cloud Academy where he specializes in developing technical training documentation for DevOps.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 20+ years. In recent times, Jeremy has been focused on DevOps, Cloud, Security, and Machine Learning.
Jeremy holds professional certifications for both the AWS and GCP cloud platforms.