Manage multiple istioctl

After downloading and installing the latest trusted versions of Tetrate Istio Distro and Istio. We recommend always using getmesh to invoke istioctl. Tetrate Istio Distro eases switching between multiple versions of istioctl, and does version compatibility and configuration checks to ensure that only certified Istio is deployed.

Refer to Istio documentation for the latest istioctl commands and options.

Real-life requirements very often dictate the use of a different version of istioctl (than the latest version) or leveraging multiple versions of istioctl due custom configuration. The steps to achieve that are explained below.

List the currently downloaded versions of Istio through Tetrate Istio Distro using the show command:

getmesh show

Example output would be

1.7.6-distro-v0
1.8.1-distro-v0
1.8.2-distro-v0 (Active)

If the required version of Istio is not yet downloaded, the operator can first query the list of trusted Istio versions through the list command:

getmesh list

Example output would be:

 ISTIO VERSION   FLAVOR  FLAVOR VERSION   K8S VERSIONS  
    *1.8.2       tetrate       0         1.16,1.17,1.18  
     1.8.1       tetrate       1         1.16,1.17,1.18  
     1.7.6       tetratefips   2         1.16,1.17,1.18  
     1.7.5       tetratefips   3         1.16,1.17,1.18  
     1.7.4       tetrate       0         1.16,1.17,1.18  

Below is an example of obtaining version 1.8.1 of Istio by leveraging the fetch command:

getmesh fetch --version 1.8.1 --flavor tetrate --flavor-version 0 

In the example above, Flavor tetrate maps to upstream Istio with the addition of possible patches and Flavor tetratefips is a FIPS-compliant version of the Flavor tetrate.

Use the show command getmesh show to cross check if the Istio version is downloaded and the output will list all versions and mark the active one:

$ getmesh show
1.7.4-distro-v0
1.7.6-distro-v0
1.8.1-distro-v0 (Active)
1.8.2-distro-v0

To switch to a different version of istioctl, run the switch command for example:

getmesh switch --version 1.8.1 --flavor tetrate --flavor-version=0

Output would be something similar to:

istioctl switched to 1.8.1-tetrate-v0 now