Chapter 3. Beyond the Basics with Helm

In the previous chapter, we looked at the most frequently used Helm commands. In this chapter we will explore other capabilities that the Helm tool provides. We will dive into commands that provide information about releases, that test installations, and that keep track of history. Finally, we will revisit installing and upgrading, this time covering advanced cases.

We will get started with some tools helpful for troubleshooting and debugging.

Templating and Dry Runs

When Helm installs a release, the program steps through several phases. It loads the chart, parses the values passed to the program, reads the chart metadata, and so on. Near the middle of the process, Helm compiles all of the templates in the chart (all in one pass), and then renders them by passing in the values (like we saw in the previous chapter). During this middle portion, it executes all of the template directives. Once the templates are rendered into YAML, Helm verifies the structure of the YAML by parsing it into Kubernetes objects. Finally, Helm serializes those objects and sends them to the Kubernetes API server.

Roughly, then, the process is:

  1. Load the entire chart, including its dependencies.

  2. Parse the values.

  3. Execute the templates, generating YAML.

  4. Parse the YAML into Kubernetes objects to verify the data.

  5. Send it to Kubernetes.

For example, let’s look at one of the commands we issued in the previous chapter:

$ helm install mysite bitnami/drupal --set ...

Get Learning Helm now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.