Quick upgrade
Quickly upgrade your Gloo Gateway Enterprise or Gloo Gateway Open Source installation to the latest version of 1.17 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.17, 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.17.14
) or enterprise (1.17.4
).export NEW_VERSION=<version>
-
Check the CRD changes to see which CRDs are new, deprecated, or removed in version 1.17.
- Delete any removed CRDs.
- Apply the new and updated CRDs.
helm pull gloo/gloo --version $NEW_VERSION --untar kubectl apply -f gloo/crds
helm 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.17.
-
Check the Helm changes to see whether there are new, deprecated, or removed Helm settings you might address before you upgrade to 1.17.
- Get the Helm values file for your current installation.
helm get values -n gloo-system gloo gloo/gloo > values.yaml open values.yaml
helm get values -n gloo-system gloo glooe/gloo-ee > values.yaml open values.yaml
- Edit the Helm values file or prepare the
--set
flags to make any changes that you want. If you do not want to use certain settings, comment them out.
- Get the Helm values file for your current installation.
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--set
flags.helm upgrade -n gloo-system gloo gloo/gloo \ -f values.yaml \ --version=$NEW_VERSION
Note that you must set your license key by using the
--set-string license_key=$LICENSE_KEY
flag or including thelicense_key: $LICENSE_KEY
setting 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.17.14
-
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 check
Example 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.17 that you want to use.