It looks like it is not so hard to have Tillerless Helm. So let me go to more details.
Parst of the Kubernetes series
- Part1a: Install K8S with ansible
- Part1b: Install K8S with kubeadm
- Part1c: Install K8S with containerd and kubeadm
- Part1d: Install K8S with kubeadm in HA mode
- Part2: Intall metal-lb with K8S
- Part2: Intall metal-lb with BGP
- Part3: Install Nginx ingress to K8S
- Part4: Install cert-manager to K8S
- Part5a: Use local persisten volume with K8S
- Part5b: Use ceph persisten volume with K8S
- Part5c: Use ceph CSI persisten volume with K8S
- Part5d: Use Project Longhorn as persisten volume with K8S
- Part5e: Use OpenEBS as persisten volume with K8S
- Part5f: vSphere persistent storage for K8S
- Part6a: Install k8s with IPVS mode
- Part6b: Install k8s with IPVS mode
- Part7: Use Helm with K8S
- Part8: Tillerless helm2 install
- Part9: Kubernetes Dashboard SSO
- Part10: Kuberos for K8S
- Part11: Gangway for K8S
- Part12: Velero Backup for K8S
Since Helm v2, helm got a server part called The Tiller Server which is interacts with the helm client, and the Kubernetes API server. By default helm init installs a Tiller deployment to Kubernetes clusters and communicates via gRPC.
The community voted that Helm v3 should be Tillerless. If we can run tiller localli we can achieve the same goal.
There is a helm plugin for this same purpose.
$ helm plugin install https://github.com/rimusz/helm-tiller Installed plugin: tiller
Use this plugin locally
helm tiller start
It will start the tiller locally and kube-system namespace will be used to store helm releases but you can change the name of the namespace if you want:
helm tiller start my-team-namespace # stop tiller helm tiller stop
How to use this plugin in CI/CD pipelines
helm tiller start-ci export HELM_HOST=localhost:44134
Then your helm will know where to connect to Tiller and you do not need to make any changes in your CI pipelines.