Helm charts for beginners

Packagecloud supports Helm charts now - making it super-easy for you to manage Helm charts and other packages in a single unified repository. Here’s a quick look at what Helm charts are, for the absolute beginner.

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. Helm is an open-source package manager for the Kubernetes container orchestration system.

Deis Labs created Helm as a solution for categorizing Kubernetes Yaml files in 2015. Helm was accepted to the Cloud Native Computing Foundation (CNCF) a year later, and is a CNCF graduated project. If you want to read more about the history of Helm, check this link out.

Helm installs charts into Kubernetes, creating a new release for each installation. Helm defines a chart as a Helm package that contains information sufficient for installing a set of Kubernetes resources into a Kubernetes cluster. Charts contain a Chart.yaml file as well as templates, default values (values.yaml), and dependencies. Charts are developed in a well-defined directory structure, and then packaged into an archive format called a chart archive. You search Helm chart repositories, to find new charts.

It is fairly easy to start using Helm charts. All you will need is a Kubernetes cluster, with a a local configured copy of kubectl. You also want to know the security configurations you want to apply to your installation. Your version of Kubernetes has to be supported by Helm, and you can read more about supported versions here. For the latest release of Helm, it is recommended you use the latest stable release of Kubernetes.

Installing Helm

You can install Helm from the source, or from pre-built binary releases. You can also install Helm using package mangers like Homebrew (for Mac OS), Chocolatey (Windows), Apt (Debian and Ubuntu), dnf/yum(Fedora), pkg (FreeBSD) and so on.

Helm chart repositories

The next logical step, once you have installed Helm, may be to add a chart repository. You can find a host of chart repositories in  Artifact Hub, including official Helm repos, and those from verified publishers. Some of the categories available include databases, integration and delivery, machine learning, security, and web applications. Artifact Hub also hosts other goodies, like container images, or Helm plugins, you may want to take for a spin.

Helm commands

Common actions for Helm include:

            - helm search: search for charts

            - helm pull: download a chart to your local directory to view

            - helm install: upload the chart to Kubernetes

            - helm list: list releases of charts

You can find a list of environment variables and the full list of available Helm commands here.

Three Helm chart to-dos

            - Use Helm Lint often - The helm lint command lets you examine a chart for possible issues. It takes a path to a chart and runs a series of tests to verify that the chart is well-formed.

            - Use labels and annotations  - An item of metadata should be a label under the following conditions, according to Helm documentation -  is used by Kubernetes to identify this resource, and is useful to expose to operators for the purpose of querying the system. Helm recommends using helm.sh/chart: NAME-VERSION as a label, so that operators can conveniently find all instances of a particular chart to use. Helm hooks are always annotations.

            - Follow conventions - Stick with a consistent format for chart names, version numbers, names and structures of templates, white space usage, comments. You can find a list of Helm recommended general conventions here.

Troubleshooting

Helm Docs provides a link with answers to several common troubleshooting issues. Stack Overflow may also be a helpful place to look for answers.

Happy charting!

Hungry for more knowledge?

Related posts