78
votes

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?

9
In Error : client represents helm CLI version and server represents tiller version, and you are using two different versions. I'll suggest you to use helm3 from which tiller is removed and handled it in helm CLI.Mayur

9 Answers

83
votes

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

86
votes

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.

30
votes

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

10
votes

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
7
votes

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
    
1
votes

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
1
votes

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

1
votes

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.

0
votes

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