Quick installation

Install the latest version of meshctl. Make sure to add meshctl to your PATH (see macOS or Linux for specific instructions).

  • Linux and macOS:
      curl -sL https://run.solo.io/meshctl/install | sh
      
  • Windows is not currently supported.

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 downloads from https://storage.googleapis.com/meshctl/v2.3.24/meshctl-darwin-amd64.

  1. From the Changelog, find the release version that you want to install.

  2. Install the meshctl CLI, setting the Gloo Mesh Gatewayversion to install.

      curl -sL https://run.solo.io/meshctl/install | GLOO_MESH_VERSION=v2.3.24 sh -
      
  3. Add meshctl on 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 macOS or Linux.

      export PATH=$HOME/.gloo-mesh/bin:$PATH
    echo $PATH
      

    Example output:

      /Users/<name>/.gloo-mesh/bin:/usr/local/bin
      
  4. Verify that you can run meshctl commands and that the client version matches the version you installed.

      meshctl version
      

    Example output:

      {
    "client": {
      "version": "2.3.24"
    },
      

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 Gatewayversions match.

Uninstall the CLI

To uninstall meshctl, you can delete the executable file from your system, such as on macOS in the following example.

  rm ~/.gloo-mesh/bin/meshctl
  

Skew policy

Use the same version of the meshctl CLI as the Gloo Mesh Gatewayversion that you installed in your clusters.

  • Slight skews within minor versions typically work, such as meshctl 2.5.1 and Gloo Mesh Gateway2.5.0.
  • 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.

Reference documentation

For more information about each meshctl command, see the CLI documentation or run the help flag for a command.

  meshctl --help
  

Other command line tools

As you use Gloo, you might need the following common cluster management command line tools on your local system.

CLI toolDescription
Cloud provider CLIThe CLI to interact with your preferred cloud provider, such as aws or gcloud. You might also have local cluster testing tools such as kind or k3d. gcloud.
istioctlThe Istio command line tool. The guides in this documentation use Istio version 1.18.7-patch3. To check your installed version, run istioctl version.
helmThe Kubernetes package manager, to customize multiple settings in a Gloo Mesh Gateway installation.
jqParse JSON output, such as from logs, to get values that you can use in subsequent commands, environment variables, or other contexts.
kubectlThe Kubernetes command line tool. Download the kubectl version that is within one minor version of the Kubernetes clusters you plan to use with Gloo.
openssl

The openssl version must be at least 1.1.

  1. Check your openssl version. If you see LibreSSL in the output, continue to the next step.
      openssl version
      
  2. Install the OpenSSL version (not LibreSSL). For example, you might use Homebrew.
      brew install openssl
      
  3. Review the output of the OpenSSL installation for the path of the binary file. You can choose to export the binary to your path, or call the entire path whenever the following steps use an openssl command.
    • For example, openssl might be installed along the following path: /usr/local/opt/openssl@3/bin/
    • To run commands, you can append the path so that your terminal uses this installed version of OpenSSL, and not the default LibreSSL. /usr/local/opt/openssl@3/bin/openssl req -new -newkey rsa:4096 -x509 -sha256 -days 3650...