What makes up helm?
Client
helm is actually the client of the application, when you are running helm commands your are using the helm client.
Server
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
Tiller is installed in the container, not on our local machine.