Install the meshctl CLI
Use the Gloo Mesh command line interface (CLI) tool,
meshctl, to set up Gloo Mesh, register clusters, describe your Gloo Mesh resources, and more.
Install the latest version of
meshctl. Make sure to add
meshctl to your PATH (see Windows, macOS, or Linux for specific instructions).
- Linux and macOS:
curl -sL https://run.solo.io/meshctl/install | sh
- Windows: Download the latest stable release from https://storage.googleapis.com/meshctl/v2.0.0-rc1/meshctl-windows-amd64.exe.
Install a specific version of the CLI
You can pass a variable on the command line to download a specific version of
meshctl. The installation script uses the version and automatically detects your operating system to download the binary files from a public Google storage bucket,
https://storage.googleapis.com/meshctl/. For example, if you install the latest version on a macOS workstation, the binary file is downloaded from
From the Changelog, find the release version that you want to install.
meshctlCLI, setting the Gloo Mesh version to install.
curl -sL https://run.solo.io/meshctl/install | GLOO_MESH_VERSION=v2.0.0-rc1 sh -
meshctlon your PATH system variable for global access on the command line. The steps vary depending on your operating system. The following example is for macOS. For more information, see Windows, macOS, or Linux.
export PATH=$HOME/.gloo-mesh/bin:$PATH echo $PATH
Verify that you can run
On macOS, you might see the following warning:
“meshctl” cannot be opened because it is from an unidentified developer. In the Finder app, navigate to the
~/.gloo-mesh/binmeshctl executable file, right-click the file, click Open, and confirm that you want to open the file. For more information, try searching the warning and following a guide.
Good job! You now have the version of
meshctl that you want installed. Next, install Gloo Mesh in your clusters.
Do you have multiple cluster environments that require different versions of Gloo Mesh, Istio, and Kubernetes? Consider downloading each
kubectl version binary file to a separate directory. Then, you can set up an alias in your local command line interface profile to point to the binary file directory that matches the version of the cluster environment that you want to work with.
Upgrade the CLI
To upgrade, re-install the CLI. You can install the latest or a specific version. Make sure that your
meshctl and Gloo Mesh versions match.
meshctl CLI does not upgrade the Gloo Mesh version that you run in your clusters.
Uninstall the CLI
meshctl, you can delete the executable file from your system, such as on macOS in the following example.
Use the same version of the
meshctl CLI as the Gloo Mesh version that is installed in your clusters.
- Slight skews within minor versions typically work, such as
meshctl1.0.7 and Gloo Mesh 1.0.10.
- Compatibility across beta versions is not guaranteed, even within minor version skews.
- To resolve bugs in
meshctl, you might have to upgrade the entire CLI to a specific or latest version.
When you run certain
meshctl commands (like
meshctl check or
meshctl debug report), the commands attempt to read a configuration file located inside the home directory (e.g.
$HOME/.gloo-mesh/meshctl-config.yaml on Linux). This configuration file contains information about your management and workload clusters. For example, if
cluster-1 serves as the management cluster and both
cluster-2 are registered as workload clusters,
meshctl-config.yaml might look like the following:
apiVersion: v1 clusters: cluster-1: # data plane cluster kubeConfig: <home_directory>/.kube/config kubeContext: kind-cluster-1 namespace: gloo-mesh cluster-2: # data plane cluster kubeConfig: <home_directory>/.kube/config kubeContext: kind-cluster-2 namespace: gloo-mesh managementPlane: # management cluster kubeConfig: <home_directory>/.kube/config kubeContext: kind-cluster-1 namespace: gloo-mesh
meshctl commands (like
meshctl install) will make changes to the configuration automatically. You can also configure the
meshctl-config.yaml file by using the following command, which opens an
meshctl cluster configure
You can configure this file non-interactively by using the
meshctl cluster configure --disable-prompt --cluster-name managementPlane --kubeconfig <home_directory>/.kube/config --kubecontext kind-cluster-1
Additionally, you can override the default config file location when you run
meshctl commands (for either writing or reading the config file) with the
--config flag. For example,
meshctl install --config /path/to/file/meshctl-config.yaml [remaining arguments...]
For more information about each
meshctl command, see the CLI documentation or run the help flag for a command.
meshctl cluster --help