Difficulty: intermediate
Estimated Time: 30-45 minutes

BoxBoat Logo

Helm bills itself as the package manager for Kubernetes. It is a tool from the kubernetes community for templatizing and sharing deployment for Kubernetes. These deployments are called charts. Charts can easily be built and shared, and a curated catalog of stable and incubating charts is maintained by Helm.

Helm can be used to:

  • Find and use popular software packaged as Helm charts to run in Kubernetes
  • Share your own applications as Helm charts
  • Create reproducible builds of your Kubernetes applications
  • Intelligently manage your Kubernetes manifest files
  • Manage releases of Helm packages

    source: https://github.com/helm/helm

In this lab we will explore the following:

Installing Helm

Helm is quick and easy to install!

Deploying a community chart

Helm can install a lot of pre-made software quickly. We'll take a closer look at installing a community package.

Modifying a chart

Learn how to modify an existing chart to suit your needs.

Creating our own Helm chart

An introduction on where to begin when creating our own charts.

Upgrading a chart

How to deploy changes to a chart you've already installed.

Helm operations

The basics of how to view and manage charts that are installed

We're completed Kubernetes Fundamentals II, you now have all of the basic building blocks to configure and deploy applications with Kubernetes!

Helm Lab

Step 1 of 6

Installing Helm

Helm comes in 2 parts: The Helm CLI which runs on client machines, and the Tiller application which runs in the Kubernetes cluster.

Upon initialization, Helm deploys leverages the kubeconfig on the machine to communicate with a Kubernetes cluster and deploy the Tiller application to that cluster. Tiller is used to translate charts in to Kubernetes resources, and maintains information about applications deployed through Helm.

Installing Helm

Helm comes pre-installed on these instances, otherwise it could be installed using:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash

Initialize Helm:

helm init

Helm automatically used the current Kubernetes context for initialization. By default Helm deploys Tiller to the kube-system namespace. We can see it here:

FIX: The current version of helm installed on the lab environment requires some additional permissions, run the following: kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'; helm init --client-only

kubectl get pods -n kube-system

The Helm executable comes with built-in help. Over the course of this lab, we will be looking at a number of these topics:

helm --help

Helm website: https://helm.sh/