1.5.0+ Upgrade Notice

This guide is a work in progress. We will be adding new content while working towards the 1.5.0 stable release.

In this guide we will describe the necessary steps to upgrade your Gloo or Gloo Enterprise deployments to their 1.5 versions using Helm

The guide assumes that you are running Gloo 1.3.0+ or Gloo Enterprise Gloo 1.3.0+. If you need to upgrade from earlier versions, you should consider an intermediate upgrade to the 1.3 versions. In this case, please refer to the 1.3.0 upgrade guide

This upgrade guide also assumes that was gloo installed via helm or with glooctl version 1.2.0+ (i.e., gloo is a helm release named “gloo”, which you can confirm exists by running helm ls --all-namespaces).

Also, please make sure to check out our general configuration recommendations to avoid downtime during upgrades.

Upgrade prerequisites

You will need to have the following command line utilities installed:

Upgrade steps

In Gloo 1.5.0-beta8 and Gloo Enterprise 1.5.0-beta3 we introduced a new RateLimitConfig custom resource definition (CRD). The new RateLimitConfig CRD will be automatically applied to your cluster when performing a helm install operation. However, it will not be applied when performing an upgrade. This is a deliberate design choice on part of the Helm maintainers, given the risk associated with changing CRDs. Given this limitation, we need to apply the new CRD to the cluster before running helm upgrade.

Installing the new RateLimitConfig CRD

You can add the new CRD to your cluster in two ways. The first is to simply supply a URL that points to the CRD template in the public gloo GitHub repository to kubectl apply:

kubectl apply -f https://raw.githubusercontent.com/solo-io/gloo/v1.5.0-beta8/install/helm/gloo/crds/ratelimit_config.yaml

The second option involves using in the template that is shipped in the Gloo and Gloo enterprise charts.

helm repo update
helm pull gloo/gloo --version 1.5.0-beta8 --untar
kubectl apply -f gloo/crds/ratelimit_config.yaml
helm repo update
helm fetch gloo/gloo --version 1.5.0-beta8 --untar
kubectl apply -f gloo/crds/ratelimit_config.yaml
helm repo update
helm pull glooe/gloo-ee --version 1.5.0-beta3 --untar
kubectl apply -f gloo-ee/charts/gloo/crds/ratelimit_config.yaml
helm repo update
helm fetch glooe/gloo-ee --version 1.5.0-beta3 --untar
kubectl apply -f gloo-ee/charts/gloo/crds/ratelimit_config.yaml

You can verify that the new CRD has been successfully applied by running the following command:

kubectl get crds ratelimitconfigs.ratelimit.solo.io

Upgrading the Gloo deployment

Now that we have installed the new CRD to cluster, you can upgrade your Gloo deployment.

helm upgrade gloo gloo/gloo --namespace gloo-system --version 1.5.0-beta8
helm upgrade gloo glooe/gloo-ee --namespace gloo-system --version 1.5.0-beta3 --set license_key=YOUR_LICENSE_KEY

Verify upgrade

To verify that your upgrade was successful, let’s first check the version:

glooctl version

You should see the expected version for all the server components (1.5.0-beta8 for Gloo components, 1.5.0-beta3 for Gloo Enterprise ones).

Let’s also check that your Gloo installation is healthy by running:

glooctl check

If everything went well, you should see the following output:

Checking deployments... OK
Checking pods... OK
Checking upstreams... OK
Checking upstream groups... OK
Checking auth configs... OK
Checking rate limit configs... OK
Checking secrets... OK
Checking virtual services... OK
Checking gateways... OK
Checking proxies... OK
Checking rate limit server... OK
No problems detected.