Incompatible Helm client & server versions

3 minutes read

Did you ever experience incompatible helm versions / errors like the one below?

Error: incompatible versions client[v2.15.1] server[v2.14.3]

The reason for those error messages is: Helm until version 2 consists of two components: a client and a server component. The client component is a cli interface, the server component Tiller runs as a Kubernetes deployment.

$ kubectl describe service tiller-deploy -n kube-system 
Name:              tiller-deploy
Namespace:         kube-system
Labels:            app=helm
                   name=tiller
Annotations:       <none>
Selector:          app=helm,name=tiller
Type:              ClusterIP
...

Tiller is gone in Helm 3

Probably, Helm version 3 will not cause those errors anymore because Tiller is gone:

However, in case your Helm setup is not upgraded to version 3 yet, you still may experience those error messages.

Work around incompatible client & server versions

I found it most convenient to adapt the local cli component version of helm to the server component version to workaround the errors. This is because changing the tiller version in production may cause side effects.

$ ./get_helm.sh -v [desired version, probably the server one]
$ ./get_helm.sh -v v2.14.3 # a specific example

This one liner above sets the helm local component version to the desired one, in my case the server version in the error message at the top.

How to get get_helm.sh?

Follow the Helm install from-script instructions:

$ curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Further reading

Lothar Schulz

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.