Helm: Incompatible versions between client and server

KubernetesKubernetes Helm

Kubernetes Problem Overview


After I have run helm list I got following error:

> Error: incompatible versions client[v2.9.0] server[v2.8.2]

I did a helm init to install the compatible tiller version "Warning: Tiller is already installed in the cluster. (Use --client-only to suppress this message, or --upgrade to upgrade Tiller to the current version.)".

Any pointers?

Kubernetes Solutions


Solution 1 - Kubernetes

Like the OP, I had this error:

$ helm list
Error: incompatible versions client[v2.10.0] server[v2.9.1]

Updating the server wasn't an option for me so I needed to brew install a previous version of the client. I hadn't previously installed client[v2.9.1] (or any previous client version) and thus couldn't just brew switch kubernetes-helm 2.9.1. I ended up having to follow the steps in this SO answer: https://stackoverflow.com/a/17757092/2356383

Which basically says

Now that I had the url for the correct kubernetes-helm.rb file, I ran the following:

$ brew unlink kubernetes-helm
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/78d64252f30a12b6f4b3ce29686ab5e262eea812/Formula/kubernetes-helm.rb
$ brew switch kubernetes-helm 2.9.1

Hope this helps someone.

Solution 2 - Kubernetes

To upgrade your tiller version to the same version of the client, just run helm init --upgrade

NOTE: If you're trying to downgrade the server version to match your local client version, run the following instead:

helm init --upgrade --force-upgrade

Solution 3 - Kubernetes

Another alternative, if changing the server version is not an option, is to use the helm installer script

The script lets you chose a specific version like so ./get_helm.sh -v v2.13.1

Solution 4 - Kubernetes

Another approach to using different versions through Docker.

https://hub.docker.com/r/alpine/helm

Example: list helm packages installed

docker run -it --rm \
    -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1 \
    list

This is a long command; but it can be shortened with an alias

alias helm_2_9_1="docker run -ti --rm \
    -v $(pwd):/apps -v ~/.kube/config:/root/.kube/config \
    -v ~/.helm:/root/.helm alpine/helm:2.9.1"

And then the command is

helm_2_9_1 list

Solution 5 - Kubernetes

This answer is for who want to choose(downgrade) helm client version, and the brew install is not work.You can just manually install the binary file from here.

example:

  1. you can unlink the current helm

    brew unlink kubernetes-helm
    
  2. choose and download the helm version you want in github helm------v2.8.2

  3. unzip the file and put the helm unix executable binary file into /usr/local/bin directory

go to the directory you just downloaded

    cd /Users/your_name/Downloads

unzip the file

    gunzip -c helm-v2.8.2-darwin-amd64.tar.gz | tar xopf -

copy to the bin directory

    cp darwin-amd64/helm /usr/local/bin

4. now you will see the right version of helm you want

    helm version

Solution 6 - Kubernetes

For those having installed their helm client with snap, to downgrade/upgrade it to a specific version you can simply:

  • Uninstall it: snap remove helm
  • Check the available versions: snap info helm
  • Install the one you want: snap install helm --channel=X.X/stable --classic

Solution 7 - Kubernetes

This probably isn't the most advanced answer... but my team runs kubernetes clusters that already have tiller installed. While setting up a new laptop, I wanted my helm to match the tiller version, so I found it like this:

TILLER_POD=`kubectl get pods -n kube-system | grep tiller | awk '{print $1}'`
kubectl exec -n kube-system $TILLER_POD -- /tiller -version

Then I just used the normal helm install instructions from that release number (being on Linux, its basically just curl and unzip to /usr/local/bin).

Solution 8 - Kubernetes

If you are windows user and installed helm through choco, firstly go its folder (mine is C:\ProgramData\chocolatey) and delete helm.exe from bin folder.

Then, corresponding heml.exe file should be downloaded. By using the above comments, decide the location where you will download exe from. For instance, I used that path: https://get.helm.sh/helm-v2.14.3-windows-amd64.tar.gz

Finally extract the helm.exe from tar and move into choco bin folder. Of course, you can directly add this exe into the path.

Solution 9 - Kubernetes

I experienced same issue, but in my case I wanna only to upgrade Tiller to specific version (because helm client is running remotely).

So, error was:

Error: UPGRADE FAILED: incompatible versions client[v2.11.0] server[v2.9.1]

Accordingly to documentation I've run:

$ kubectl --namespace=kube-system set image deployments/tiller-deploy tiller=gcr.io/kubernetes-helm/tiller:v2.11.0

deployment.extensions/tiller-deploy image updated

Documentation reference:

https://helm.sh/docs/install/#upgrading-tiller

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAviView Question on Stackoverflow
Solution 1 - KubernetesahauratView Answer on Stackoverflow
Solution 2 - KubernetesIgnacio MillánView Answer on Stackoverflow
Solution 3 - KubernetesZuabiView Answer on Stackoverflow
Solution 4 - KubernetesScott BoringView Answer on Stackoverflow
Solution 5 - KubernetesJ.CView Answer on Stackoverflow
Solution 6 - KubernetesV. DéhayeView Answer on Stackoverflow
Solution 7 - KubernetesJohn HumphreysView Answer on Stackoverflow
Solution 8 - KubernetesUtku A.View Answer on Stackoverflow
Solution 9 - KubernetesOleg MykolaichenkoView Answer on Stackoverflow