Preparation
Installing Gloo Edge 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 Edge.
Utilities List
Below is a list of all the required components and common utilities for use with Gloo Edge as you work through the concepts and guides.
- kubectl - Command line utility for Kubernetes
- glooctl - Command line utility for Gloo Edge
- jq - Utility for manipulating JSON
- git - Utility for working with a versioned source control system
- curl - Utility for transferring data to/from a server, especially with HTTP/S
- helm - Utility for managing charts and deploying applications on Kubernetes
- openssl - Cryptography toolkit for working with SSL and TLS
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 Edge command line tool (CLI)
You can install the Gloo Edge command line, glooctl
, to help install, configure, and debug Gloo Edge. Depending on your operating system, you have several installation options.
-
macOS: You can use the Homebrew package manager.
brew install glooctl
-
Most platforms: You can use the following installation script, which requires Python to execute properly.
curl -sL https://run.solo.io/gloo/install | sh export PATH=$HOME/.gloo/bin:$PATH
-
Windows: You can use the following installation script, which requires OpenSSL to execute properly.
(New-Object System.Net.WebClient).DownloadString("https://run.solo.io/gloo/windows/install") | iex $env:Path += ";$env:userprofile/.gloo/bin/"
-
Direct download: You can download
glooctl
directly via the GitHub releases page.- In your browser, navigate to the Gloo project releases.
- Choose the version to upgrade
glooctl
to. For Gloo Edge Enterprise, use the Gloo Edge OSS version that corresponds to the Gloo Edge Enterprise version you want to upgrade to. To find the OSS version that corresponds to each Gloo Edge Enterprise release, see the Gloo Edge Enterprise changelogs. - Click the version of
glooctl
that you want to install. - In the Assets, download the
glooctl
package that matches your operating system, and follow your operating system procedures for replacing your existingglooctl
binary file with the upgraded version. - After downloading, rename the executable to
glooctl
and add it to your system’sPATH
.
Update glooctl CLI version
When it’s time to upgrade Gloo Edge, 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 Edge across clusters that you manage from the same workstation. For more options, run glooctl upgrade --help
.
-
Set the version to upgrade
glooctl
to in an environment variable. Include the patch version. For Gloo Edge Enterprise, specify the Gloo Edge OSS version that corresponds to the Gloo Edge Enterprise version you want to upgrade to. To find the OSS version that corresponds to each Gloo Edge Enterprise release, see the Gloo Edge Enterprise changelogs.export GLOOCTL_VERSION=<version>
-
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 Edge is not installed yet.
glooctl version
Licensing
You must provide the license key during the installation process.
- Contact an account representative to get a Gloo Edge 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.
- Decide how you want to provide your license keys during installation.
- Provide license key directly: When you install Gloo Edge, 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 yourglooctl 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 Edge.
- 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
- When you install Gloo Edge, 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 setcreate_license_secret
tofalse
. - glooctl: In your
glooctl install
command, include the--set gloo.license_secret_name=<license>
and--set create_license_secret=false
flags.
- Helm: In your Helm values file, provide the secret name as the value for the
- Create a secret with your license key in the
- Provide license key directly: When you install Gloo Edge, you can provide the license key string directly as the value for the
Deployment Requirements
There are a number of options when it comes to installing Gloo Edge. The requirements for each deployment model are described below.
Kubernetes Deployments
Not sure how you will deploy Gloo Edge? This section is for you. Gloo Edge deploys as a set of containers, and is usually deployed on a Kubernetes cluster. In order to install Gloo Edge, 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 Edge components locally and store the configuration and secrets data in the Gloo Edge 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 Edge 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 Edge. Once Gloo Edge is installed, Traffic Management is likely your go-to destination. Otherwise, here are some common paths to learning.