What makes up helm?


helm is actually the client of the application, when you are running helm commands your are using the helm client.


Tiller is the server that you are interacting with when you use the helm client.

To view the tiller server we can run the following kubectl command

kubectl get pods --all-namespaces | grep tiller

We can see that we have a pod on our kubernetes cluster called tiller, that is the tiller server.

The helm client

  • Interacts with the Tiller server
  • Manages charts
  • Creates new charts
  • Packages charts into archives
  • Interacts with chart repositories
  • Installs and uninstalls charts
  • Manages chart release cycle

The tiller server

  • Interacts with the Kubernetes API
  • Manages releases
  • Listens for requests from the helm client
  • Combines a chart and a config into a release
  • Installs charts and tracks the release
  • Upgrades and uninstalls charts

If we run the helm home command, it will show us where helm is installed on our local machine.

helm home

It has 4 directories by default: cache, plugins, repository and starters.

In the repository folder there is a repositories.yaml, this is where helm is looking to get charts from.


Tiller is installed in the container, not on our local machine.