Gloo Gateway Federation

Gloo Gateway Federation allows users to manage the configuration for all of their Gloo Gateway instances from one place, no matter what platform they run on. In addition Gloo Gateway Federation elevates Gloo Gateway’s powerful routing features beyond the environment they live in, allowing users to create all new global routing features between different Gloo Gateway instances. Gloo Gateway Federation enables consistent configuration, service failover, unified debugging, and automated Gloo Gateway discovery across all of your Gloo Gateway instances.

Gloo Gateway Federation is installed using the glooctl command line tool or a Helm chart. The following document will take you through the process of performing the installation of Gloo Gateway Federation, verifying the components, and removing Gloo Gateway Federation if necessary.

Prerequisites

Gloo Gateway Federation is an enterprise feature of Gloo Gateway. You will need at least one instance of Gloo Gateway Enterprise running on a Kubernetes cluster to follow the installation guide. Full details on setting up your Kubernetes cluster are available here and installing Gloo Gateway Enterprise here.

You should also have glooctl and kubectl installed. The glooctl version should be the most recent release, as the federation features were added in version 1.5.

You also need a license key to install Gloo Gateway Federation. To request a license, contact Sales.

Installation

Gloo Gateway Federation is installed in an admin cluster, which may or may not include Gloo Gateway instances. You can perform the installation using glooctl or helm.

Install using glooctl

The glooctl tool uses Helm in the background to perform the deployment of Gloo Gateway Federation. By default, the deployment will create the gloo-system namespace and instantiate the Gloo Gateway Federation components in that namespace. You can override the default settings by specify the --values argument and providing a yaml file with the necessary values.

Gloo Gateway Federation is installed alongside Gloo Enterprise automatically. With your kubectl context set to the admin cluster, run the following command:

glooctl install gateway enterprise --license-key <LICENSE_KEY>

The --with-gloo-fed=false flag can be used to install only Gloo Enterprise without Gloo Gateway Federation.

Make sure to change the placeholder <LICENSE_KEY> to the license key you have procured for Gloo Gateway Enterprise.

The installation will create the necessary Kubernetes components for running Gloo Gateway Federation.

Install using Helm

You can also install Gloo Gateway Federation by using Helm directly. The default values of the chart can be overridden by using the --set argument.

With your kubectl context set to the admin cluster, run the following commands:

# Add the gloo-fed helm repo
helm repo add gloo-fed https://storage.googleapis.com/gloo-fed-helm

# Update your repos 
helm repo update

# Install using helm
helm install -n gloo-system --create-namespace gloo-fed gloo-fed/gloo-fed --set license_key=<LICENSE_KEY>

Make sure to change the placeholder <LICENSE_KEY> to the license key you have procured for Gloo Gateway Federation.

The installation will create the necessary Kubernetes components for running Gloo Gateway Federation.

Verification

Once the deployment is complete, you can validate the installation by checking on the status of a few components. The following command will show you the status of the deployment itself:

kubectl -n gloo-system rollout status deployment gloo-fed

You should see output similar to the following:

deployment "gloo-fed" successfully rolled out

You can also view the resources in the gloo-system namespace by running:

kubectl get all -n gloo-system

You should see output similar to the following, with all pods running successfully.

NAME                                    READY   STATUS              RESTARTS   AGE
pod/gloo-fed-956f66f75-mwk24            1/1     Running             0          11h
pod/gloo-fed-console-78f6f4f696-hckw8   3/3     Running             0          11h

NAME                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                       AGE
service/gloo-fed-console   ClusterIP   10.109.209.107   <none>        10101/TCP,8090/TCP,8081/TCP   11h

NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/gloo-fed           1/1     1            1           11h
deployment.apps/gloo-fed-console   1/1     1            1           11h

NAME                                          DESIRED   CURRENT   READY   AGE
replicaset.apps/gloo-fed-956f66f75            1         1         1       11h
replicaset.apps/gloo-fed-console-78f6f4f696   1         1         1       11h

There are also a number of Custom Resource Definitions that can be viewed by running:

kubectl get crds -l app=gloo-fed

You should see the following list:

NAME                                               CREATED AT
failoverschemes.fed.solo.io                        2021-06-18T17:18:42Z
federatedauthconfigs.fed.enterprise.gloo.solo.io   2021-06-18T17:18:42Z
federatedgateways.fed.gateway.solo.io              2021-06-18T17:18:42Z
federatedratelimitconfigs.fed.ratelimit.solo.io    2021-06-18T17:18:42Z
federatedroutetables.fed.gateway.solo.io           2021-06-18T17:18:42Z
federatedsettings.fed.gloo.solo.io                 2021-06-18T17:18:42Z
federatedupstreamgroups.fed.gloo.solo.io           2021-06-18T17:18:42Z
federatedupstreams.fed.gloo.solo.io                2021-06-18T17:18:42Z
federatedvirtualservices.fed.gateway.solo.io       2021-06-18T17:18:42Z
glooinstances.fed.solo.io                          2021-06-18T17:18:42Z
multiclusterrolebindings.multicluster.solo.io      2021-06-18T17:18:42Z
multiclusterroles.multicluster.solo.io             2021-06-18T17:18:42Z

Your instance of Gloo Gateway Federation has now been successfully deployed. The next step is to register clusters with Gloo Gateway Federation.

Uninstall

To uninstall Gloo Gateway Enterprise, Federation and all related components, simply run the following.

glooctl uninstall --all

Next Steps

As a next step, we recommend registering the Kubernetes clusters running Gloo Gateway instances with Gloo Gateway Federation. Then you can move onto creating federated configurations or service failover. You can also read more about Gloo Gateway Federation in the concepts area of the docs.

As you continue to use Gloo Gateway, remember to periodically upgrade your installation, CRDs, and glooctl CLI to get the latest features and security updates.