Helm: Incompatible versions between client and server

6/5/2018

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?

-- Avi
kubernetes
kubernetes-helm

8 Answers

11/29/2019

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
-- V. Déhaye
Source: StackOverflow

8/29/2019

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

-- Oleg Mykolaichenko
Source: StackOverflow

11/14/2018

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.

-- ahaurat
Source: StackOverflow

6/5/2018

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

-- Ignacio Millán
Source: StackOverflow

6/5/2019

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

-- Zuabi
Source: StackOverflow

1/30/2019

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
-- Scott Boring
Source: StackOverflow

6/11/2019

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
-- J.C
Source: StackOverflow

1/15/2020

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).

-- John Humphreys - w00te
Source: StackOverflow