Preparation

Installing Gloo Gateway in your environment and walking through the step-by-step guides requires the installation of utilities on your local system and the selection of a deployment model. This document outlines the common utilities that you should have on your local system, and a brief discussion of deployment options for Gloo Gateway.


Utilities List

Below is a list of all the required components and common utilities for use with Gloo Gateway as you work through the concepts and guides.

You will also want some type of text editor that understands YAML. For real, there is going to be a lot of YAML and getting the spacing wrong is a huge pain. There are many great tools out there including, but not limited to Visual Studio Code, Sublime Text, and the venerable Vim.

glooctl

Install the Gloo Gateway command line tool (CLI)

You can install the Gloo Gateway command line, glooctl, to help install, configure, and debug Gloo Gateway. Depending on your operating system, you have several installation options.

Update glooctl CLI version

When it’s time to upgrade Gloo Gateway, make sure to update the glooctl version before upgrading.

You can use the glooctl upgrade command to upgrade or roll back the glooctl version. For example, you might change versions during an upgrade process, or when you have multiple versions of Gloo Gateway across clusters that you manage from the same workstation. For more options, run glooctl upgrade --help.

  1. Set the version to upgrade glooctl to in an environment variable. Include the patch version. For Gloo Gateway Enterprise, specify the Gloo Gateway OSS version that corresponds to the Gloo Gateway Enterprise version you want to upgrade to. To find the OSS version that corresponds to each Gloo Gateway Enterprise release, see the Gloo Gateway Enterprise changelogs.

    export GLOOCTL_VERSION=<version>
    
  2. Upgrade your version of glooctl.

    glooctl upgrade --release v${GLOOCTL_VERSION}
    

Verify the installation or update

Verify the glooctl CLI is installed and running the appropriate version. In the output, the Client is your local version. The Server is the version that runs in your cluster, and is undefined if Gloo Gateway is not installed yet.

glooctl version

Licensing

You must provide the license key during the installation process.

  1. Contact an account representative to get a Gloo Gateway license key.

    You can also request a trial license key instead. Note that each trial license key is typically valid for 30 days. When the license key expires, you can request a new license key by contacting your account representative or filling out this form. For more information, see Updating Enterprise Licenses.

  2. Decide how you want to provide your license keys during installation.
    • Provide license key directly: When you install Gloo Gateway, you can provide the license key string directly as the value for the license_key field in your Helm values file, or provide the --license-key flag in your glooctl install command. A Kubernetes secret is created for you to store the license key.
    • Provide license key in a secret: You can specify your license key by creating a secret before you install Gloo Gateway.
      1. Create a secret with your license key in the gloo-system namespace of your cluster.
        cat << EOF | kubectl apply -n gloo-system -f -
        apiVersion: v1
        kind: Secret
        type: Opaque
        metadata:
          name: license-key
          namespace: gloo-system
        data:
          license-key: ""
        EOF
        
      2. When you install Gloo Gateway, specify the secret name and disable default secret generation in your Helm values file or the glooctl install command.
        • Helm: In your Helm values file, provide the secret name as the value for the gloo.license_secret_name field, and set create_license_secret to false.
        • glooctl: In your glooctl install command, include the --set gloo.license_secret_name=<license> and --set create_license_secret=false flags.

Deployment Requirements

There are a number of options when it comes to installing Gloo Gateway. The requirements for each deployment model are described below.

Kubernetes Deployments

Not sure how you will deploy Gloo Gateway? This section is for you. Gloo Gateway deploys as a set of containers, and is usually deployed on a Kubernetes cluster. In order to install Gloo Gateway, you will need access to a Kubernetes deployment. That could be a local cluster using minikube or minishift. It could be a hosted cluster on one of the public clouds such as Google Kubernetes Engine, Elastic Kubernetes Service, or Azure Kubernetes Service. You could even host your own Kubernetes cluster in your datacenter!

As long as you can run kubectl and have cluster-admin permissions, you’re all set.

Docker Compose Deployments

A less common option is to use Docker Compose to deploy the Gloo Gateway components locally and store the configuration and secrets data in the Gloo Gateway containers. This will require that docker and docker-compose are installed on your local machine. Further instructions for setup can be found here.

Consul and Vault Deployments

Similar to the Docker Compose option, this option leverages HashiCorp Consul for configuration data and HashiCorp Vault for secrets data instead of storing the values directly in the Gloo Gateway containers. This will require that docker and docker-compose are installed locally. Further instructions for setup can be found here.

Nomad Deployments

Nomad is a workload scheduler that can be used in place of Docker Compose or Kubernetes. It integrates with Consul and Vault, using them to store configuration and secrets data. Using Nomad will require Levant to be installed locally, and access to a system running Docker, Consul, Vault, and Nomad. Further instructions for setup can be found here.


Where to Next?

The most common starting point is to install Gloo Gateway. Once Gloo Gateway is installed, Traffic Management is likely your go-to destination. Otherwise, here are some common paths to learning.