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 lesson, I'm going to review some of the more important benefits that are provided by Helm. By the end of this lesson, you should have a clear understanding why Helm is used to perform cluster deployments.
Starting with complexity, Helm manages and abstracts away complexity. When it comes to deploying a cloud-native application composed of multiple resources, Helm can literally deploy it with a single command. Not only that, but the same chart can be deployed multiple times in different environments with different input values that help you to customize the overall behavior of the application.
Helm provides you with the ability to upgrade existing releases. When you do so, the history of change is tracked for you, which if required, allows you to rollback to previous versions. Helm makes it super easy to package, distribute, and download charts. As a chart developer, once you've completed your chart build, you simply package it by running the command helm package, providing it with a chart name. This results in an archive file or chart package which you then typically host within a chart repository.
Other users can then add your repository to their own Helm setup and then, search for and install your chart into their own cluster. As mentioned earlier, Helm maintains a revision history for each chart release. This enables you to perform rollbacks to any previous version. When it comes to building your own charts, Helm also provides a simple to use chart scaffolding command, which when invoked, will generate a skeleton chart for you.
The skeleton chart comes complete with the required directory structure and examples of all required files. As a chart developer, you can use this as your starting point and begin customizing it to suit your needs, et cetera.
Okay, that completes this lesson. In this lesson, I dived deeper into the benefits that Helm provides you. Go ahead and close this lesson now, and I'll see you shortly in the next one.
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.