Quick upgrade
Quickly upgrade your Gloo Gateway Enterprise or Gloo Gateway Open Source installation to the latest version of 1.20 in testing or sandbox environments.
Step 1: Prepare to upgrade
Before you begin, follow the Prepare to upgrade guide to complete these preparatory steps:
- Review important changes made to Gloo Gateway in version 1.20, including CRD, Helm, CLI, and feature changes.
- Upgrade your current version to the latest patch.
- Upgrade any dependencies to the required supported versions.
- Consider other steps to prepare for upgrading.
- Review frequently-asked questions about the upgrade process.
Step 2: Upgrade glooctl
Follow the steps in Update glooctl CLI version to update glooctl to the version you want to upgrade to.
Step 3: Apply minor version-specific changes
Each minor version might add custom resource definitions (CRDs) or otherwise have changes that Helm upgrades cannot handle seamlessly. For these changes, you must make any necessary adjustments before you upgrade.
-
Update the Gloo Gateway Helm repositories.
helm repo update -
Set the version to upgrade Gloo Gateway to in an environment variable, such as the latest patch version for open source (
1.20.0) or enterprise (1.20.0).export NEW_VERSION=<version> -
Check the CRD changes to see which CRDs are new, deprecated, or removed in version 1.20.
- Delete any removed CRDs.
- Apply the new and updated CRDs.
helm pull gloo/gloo --version $NEW_VERSION --untar kubectl apply -f gloo/crdshelm pull glooe/gloo-ee --version $NEW_VERSION --untar kubectl apply -f gloo-ee/charts/gloo/crds # If Gloo Federation is enabled kubectl apply -f gloo-ee/charts/gloo-fed/crds - Verify that the deployed CRDs use the version that you want to upgrade to.
glooctl check-crds
-
Check the Feature changes to see whether there are breaking changes you must address in your resources before you upgrade to 1.20.
- If you are using
AuthPluginin your Helm values file, you must remove it before upgrading. If you need to configure your own auth service, check out Custom Auth server.
- If you are using
-
Check the Helm changes to see whether there are new, deprecated, or removed Helm settings you might address before you upgrade to 1.20, such as the following.
- Now,
discovery.enabled(orgloo.discovery.enabledin Gloo Gateway Enterprise) defaults tofalse. To keep using discovery to create Upstreams from your Kubernetes services, set totrue.
- Get the Helm values file for your current installation.
helm get values -n gloo-system gloo gloo/gloo > values.yaml open values.yamlhelm get values -n gloo-system gloo glooe/gloo-ee > values.yaml open values.yaml - Edit the Helm values file or prepare the
--setflags to make any changes that you want. If you do not want to use certain settings, comment them out.
- Now,
Step 4: Upgrade Gloo Gateway
Upgrade your Gloo Gateway installation. The following example upgrade commands assume that Gloo Gateway is installed with Helm, the Helm release exists in the gloo-system namespace of a Kubernetes cluster that uses the Kubernetes load balancer, and that the Kubernetes context is set to the cluster.
-
Upgrade the Helm release. Include your installation values in a Helm values file (such as
-f values.yaml) or in--setflags.helm upgrade -n gloo-system gloo gloo/gloo \ -f values.yaml \ --version=$NEW_VERSIONNote that you must set your license key by using the
--set-string license_key=$LICENSE_KEYflag or including thelicense_key: $LICENSE_KEYsetting in your values file. If you do not have a license key, request a Gloo Gateway Enterprise trial.helm upgrade -n gloo-system gloo glooe/gloo-ee \ -f values.yaml \ --version=$NEW_VERSION \ --set license_key=$LICENSE_KEY -
Verify that Gloo Gateway runs the upgraded version.
kubectl -n gloo-system get pod -l gloo=gloo -ojsonpath='{.items[0].spec.containers[0].image}'Example output:
quay.io/solo-io/gloo:1.20.0 -
Verify that all server components run the upgraded version.
glooctl version -
Check that your Gloo Gateway components are OK. If a problem is reported by
glooctl check, Gloo Gateway might not work properly or Envoy might not get the updated configuration.glooctl checkExample output:
Checking Deployments... OK Checking Pods... OK Checking Upstreams... OK Checking UpstreamGroups... OK Checking Secrets... OK Checking VirtualServices... OK Checking Gateways... OK Checking Proxies... OK No problems detected. -
Now that your upgrade is complete, you can enable any other new features in version 1.20 that you want to use.