Difficulty: Intermediate
Estimated Time: 25 minutes

Introduction to Helm

This scenario teaches you how to use most of the features in Helm, a package manager for Kubernetes. Helm simplifies discovering and deploying services to a Kubernetes cluster.

Helm is the best way to find, share, and use software built for Kubernetes.

In the following steps you will learn:

  • how to install and uninstall applications,
  • what a chart provides,
  • how to list public charts,
  • how to list and add more repositories,
  • how to create your own chart,
  • how to update a chart.

More details can be found on their website.

You have learned the majority of the features of Helm. The harder part is creating charts with various dependencies and deployed to a variety of Kubernetes targets with varying contexts. Hopefully, though, you should have the fundamentals to get started.

More details can be found in the Helm documentation.

There are a few more important features that this scenario did not cover. Helm charts are testable with the test command. Helm charts can be packaged, versioned and deployed to a chart archive/registry. The Helm tool has a community of plugins to extend its functionality.

Lessons Learned

With these steps you have learned:

  • How to install and uninstall applications,
  • What a chart provides,
  • How to list public charts,
  • How to list and add more repositories,
  • How to create your own chart,
  • How to update a chart.

References


For a deeper understanding of these topics and more join me, Jonathan Johnson, for a transcendent experience on the No Fluff Just Stuff Software Symposium Tour.

Helm Package Manager

Step 1 of 9

Install Helm

Helm is a cluster administration tool that manages charts on Kubernetes.

Helm relies on a packaging format called charts. Charts define a composition of related Kubernetes resources and values that make up a deployment solution. Charts are source code that can be packaged, versioned, and maintained in version control. Inside the chart are Kubernetes YAML files along with a templating language to allow contextual values to be injected into the YAMLs.

Helm also helps you manage the complexities of dependency management. Charts can include dependencies to other charts. Charts compliment your infrastructure as code processes. Use Helm effectively with a mature container versioning pipeline.

The Helm CLI tool deploys charts to Kubernetes. A server side component can accept the chart and submit the YAML declarations to Kubernetes. The chart is a deployable unit that can be inspected, listed, updated and removed.

This tutorial covers version 2.x of Helm with the server side component called Tiller. In the upcoming version 3.x the Tiller component has been removed.

Interact with Helm start with a command-line tool (CLI). Helm can be downloaded from https://github.com/kubernetes/helm/releases

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh chmod 700 get_helm.sh ./get_helm.sh

Once installed locally a server side component needs to be started called Tiller. The init command starts Tiller and it will be available in a moment.

helm init

kubectl get pods -n kube-system | grep tiller

Helm has a working set of public repositories. More on this later, but for now the repo cache can be updated.

helm repo update

At this point Helm should be healthy.

helm version --short

The current local state of Helm is kept in your environment in the home location.

ls $(helm home)

The Helm init command defaults to discovering the host already set in ~/.kube/config. There is a way to change or override the host, but that's beyond the scope of this scenario.

The next step gets right to it by installing a pre-made chart.