Avi
Avi

Reputation: 1633

Helm: Incompatible versions between client and server

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?

Upvotes: 82

Views: 57874

Answers (9)

J.C
J.C

Reputation: 263

This answer is for someone who wants to choose (downgrade) helm client version, and brew install does 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
    
  1. Now you will see the right version of helm you want

     helm version
    

Upvotes: 9

Ignacio Millán
Ignacio Millán

Reputation: 8026

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

Upvotes: 85

Utku A.
Utku A.

Reputation: 858

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.

Upvotes: 1

Zuabi
Zuabi

Reputation: 1162

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

Upvotes: 32

ahaurat
ahaurat

Reputation: 4245

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.

Upvotes: 87

John Humphreys
John Humphreys

Reputation: 39294

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

Upvotes: 1

V. Déhaye
V. Déhaye

Reputation: 505

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

Upvotes: 1

Oleg  Mykolaichenko
Oleg Mykolaichenko

Reputation: 627

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

Upvotes: 0

Scott Boring
Scott Boring

Reputation: 2781

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

Upvotes: 10

Related Questions