How to Manage Helm Charts

Last updated
December 15, 2023
Cortney Nickerson
Developer Advocate
Monokle

Table of Contents

Get started with Monokle today

Try Monokle Desktop Today

If you’ve found this page, you’re probably just getting started in the wonderful world of Kubernetes - WELCOME! This is an amazing community you’ve found yourself in; and Monokle, your favorite platform for navigating high quality Kubernetes configurations, is here to help answer all your K8s questions.

Today, we’re going to talk about Helm Charts, and how this tool helps you manage your Kubernetes resources. 

So, What is a Helm Chart?

In short, Helm is a package manager that assists you in  defining, installing and upgrading Kubernetes applications. Helm packages your applications into “Helm Charts”,  which contain all the resources you need to deploy and configure your applications  in Kubernetes. Helm Charts can easily be shared and reused across teams while being installed from a repository or hand-tailored for specific needs.  

Before we start making our own Helm charts, head over here to see how Monokle provides built-in support for Helm, which helps you debug your charts before you deploy them to your cluster. 

How to Create a Helm Chart

We start where it’s easiest: using the Helm “create” command. This generates a basic chart that you can manipulate and customize for your specific needs. For this command, the name of your chart is the single argument which creates a directory with that name. The files in this directory are: 

 Chart.yaml  which contains your chart’s meta-data 

values.yaml which holds your chart’s configurable parameters and default values. 

Once created, you can start adding Helm templates to your templates directory to configure what Helm will generate from your newly created chart!

How to Package a Helm Chart

You can put the tape away, we’re not shipping the package out, yet! 

To package a Helm chart, use the package command. This creates a.tgz file that contains the chart and its dependencies. The command then takes a single argument, charts (get it?) a path to the directory and then makes the package in its current directory. Afterwards, you can install and distribute by using Helm’s install command!  

Awesome! 

Now that it’s packed and ready to distribute, we need to learn how to share our brilliance with the team! 

How to Share a Helm Chart

To share a Helm chart with others, just publish it to a Helm repository. You can do this by using a tool like ChartMuseum, or publishing to either a public or private repository. Just use the Helm push command and upload it to the repository of your choice, then share the repository URL and call it a day! 

Helm Chart Dependencies

Helm charts get lonely on their own. To resolve this, they can have dependencies on other charts that are managed using the requirements.yaml file. Helm automatically installs these dependencies and provides easy ways to update them using the “dependency update” command. Remember to keep track of any dependencies and updates to keep things compatible and avoid any unnecessary loneliness for your Helm charts.

How to Preview Resources Generated by Helm

It’s good to get a full picture of what’s needed before any installation. To preview resources generated by a Helm chart, use the template command. This will generate the YAML files for any Kubernetes resources created by the chart and outputs to the terminal. This can help you ensure that resources are correct BEFORE installing the chart. Just navigate to the directory containing the chart and then run helm template to output generated YAML files to the terminal. 

If you need help getting started, try out the resources in the Emissary Ingress Charts Folder

Want more details on how to create a Helm Chart Template? Check out this step-by-step tutorial on Helm Chart Templates

##Ready to get started? Download Monokle, today.

##Want to know more about Helm and quality deployments? Check out the articles listed below:

About Monokle

Monokle helps you achieve high-quality Kubernetes deployments throughout the entire application lifecycle—from code to cluster. It enables your team to define Kubernetes configuration policies to ensure consistent, secure, and compliant application deployments every time. In addition to policy enforcement, Monokle’s ecosystem of tools make your team’s daily YAML configuration workflows easier. Get started with Monokle for free.