Helm – The Kubernetes package manager hands-on course

Master Helm charts, templates, functions, repos, plugins and advance your Kubernetes DevOps career!

Helm is a tool used to package Kubernetes manifest files that are used to install a cloud native application. Deployments, Services, Ingresses, ConfigMaps, etc. are all packed into a Helm chart. Using this Helm chart, you can deploy the app to a Kubernetes cluster the same way you use apt-get in Ubuntu, or brew on a macOS.

What you’ll learn

  • Helm deployment on Kubernetes using minikube.
  • Using Helm repositories to automate popular application deployments.
  • Creating your own Helm charts and repositories.
  • Learn how to safely rollback failed deployments using Helm.
  • Integrate Helm with popular CI/CD tools like Jenkins, Github actions, and Bitbucket pipelines.
  • Develop powerful Helm templates using the Go template engine.
  • Use Helm plugins to automate complex tasks.
  • Build your own Helm plugins for your very specific needs.

Course Content

  • Introduction –> 2 lectures • 6min.
  • Exploring Helm’s Nginx Chart –> 4 lectures • 19min.
  • Helm: Testing the waters –> 4 lectures • 18min.
  • Helm chart creation 101 –> 3 lectures • 15min.
  • Helm templates development –> 7 lectures • 58min.
  • Helm: The full thrust –> 5 lectures • 38min.
  • Extending Helm –> 4 lectures • 30min.

Helm - The Kubernetes package manager hands-on course

Requirements

  • Administrative access to a Kubernetes cluster (we use minikube in the labs).
  • Basic knowledge of Kubernetes and kubectl commands.
  • Familiarity with Linux and the shell.
  • Familiarity with Docker basic commands.
  • Basic understanding of the YAML format.
  • Watch the course content on a laptop and practice the commands with me.

Helm is a tool used to package Kubernetes manifest files that are used to install a cloud native application. Deployments, Services, Ingresses, ConfigMaps, etc. are all packed into a Helm chart. Using this Helm chart, you can deploy the app to a Kubernetes cluster the same way you use apt-get in Ubuntu, or brew on a macOS.

After completing this course, you will have a working knowledge of Helm. You’ll be able not only to use ready-made Helm Charts to automate day-to-day deployments, but you’ll also automate the most complex Kubernetes deployments and contribute them to the community.

I’ve designed this course to focus on the important parts of Helm. I did my best not to bother you with boring material that you’d seldom use in your day-to-day life as a Helm and Kubernetes engineer. Instead, I give you the core stuff of the tool together with some tips and tricks that will let you code Helm charts like a pro in no time!

To get the most out of this course, I highly encourage you to open your laptop and do the labs that I explain in the class. There’s nothing better than getting your hands dirty learning a new tool or technology. That way, by the end of this course, you’ll find yourself already developing, applying, maintaining, and even sharing your very own Helm charts.

The best way to learn any tool is by using it! In this course, we’ll work together to deploy ready-made Helm charts to Kubernetes using Helm. After mastering that, we’ll start analyzing Helm chart bit by bit. Along the way, you’ll learn the following:

  • Understand why we need a package manager for Kubernetes
  • Deploying Helm to minikube (local Kubernetes cluster)
  • Understanding Helm repositories
  • Adding one or more Helm repositories to your system
  • Searching the Helm repository for your desired Chart
  • Using Helm to deploy ready-made Charts from popular repositories
  • Inspecting a Helm Chart deployment
  • Upgrading a Helm deployment and viewing its history
  • Customizing the Helm Chart to your own needs by modifying the values file
  • How (and when) to create your own Helm Charts
  • Understanding Helm Templates
  • Testing your Helm templates without applying them using the dry-run flag.
  • Revisiting Helm history by upgrading and rolling back package deployments
  • Using Helm functions (include, indent, nindent, toYaml, b64enc, and more)
  • Decision making using conditional and logical statements (IF, NOT, AND, OR)
  • Loop through simple and complex objects using the “range” keyword
  • Deep diving into Helm variables
  • Debugging your Helm charts
  • Creating your own Helm repositories and pushing Charts
  • Deploying even more complex Kubernetes environments using Helm Chart dependencies
  • Learning about popular community-based Helm projects like Chartmuseum
  • Extending Helm by building your own repositories
  • Exploring different Helm plugins to automate repetitive tasks and store charts in the cloud
  • Build your own Helm plugins and use custom commands and protocols
  • Configure Helm to create your own specific boilerplate charts using Helm starters