You should already be familiar with containers and Docker specifically, how to use docker hub, and spin up containers.

Helm is the package manager for Kubernetes, so you will have wanted to have used Kubernetes a little also, and understand how services and ingress controllers work. How pods are deployed, as that is what Helm pretty much does, helm manages Kubernetes deployments.

All the configuration files and manifests for helm are written in Yaml, so you’ll want to be familiar with Yaml, and how it is constructed.

What is Package management

These are some package management systems for operating systems:

Yum - Redhat Apt - debian / ubuntu Brew - OSx Chocolatey - Windows

These package management solutions provide: - Automated installation - Version control - Automatic updates - Dependency Management - Automated removal

Package management in kubernetes

Deployed kubenernetes packages

Tiller interfaces with the kubernetes api, and what makes the helm charts work.

Example helm install

List the helm charts that are installed:

helm ls

Search for helm chart

helm search wordpress

Install the wordpress helm chart

helm install stable/wordpress

View the helm chart again

helm ls

Remove a helm installation

helm delete <HELM_INSTALL_NAME>

View the installed helm charts again

helm ls

Install specific version of a helm chart

helm install stable/wordpress --version 5.0.1

Upgrade the 5.0.1 installation to the latest

helm upgrade <HELM_INSTALL_NAME> stable/wordpress

Now we can see that the REVISION is on 2, as we have the initial deployment and the upgrade that we just performed, we can also see that the app version is now at the latest version

helm ls

Dependency management

If I want to view the dependencies I can download the chart by using helm fetch

helm fetch stable/wordpress

This has downloaded the chart in the form of a tar file (wordpress-5.1.3.tgz)

But we can actually fetch the chart untarred with –untar command

helm fetch --untar stable/wordpress

Now if we look in the wordpress directory, and look at requirements.yaml, we can see that there is a dependency on mariadb. We can see that there is a version, a repository location for it to download that helm chart.

Helm automatically puts these charts in /charts directory

We can view the dependency list by running the following:

helm dep list