Upgrade
Upgrade the control plane and any gateway proxies that run in your cluster.
You can use this guide to upgrade the version of your Gloo Gateway components, or to apply changes to the components’ configuration settings.
Prepare to upgrade
Before you upgrade Gloo Gateway, review the following information.
Review the kgateway release notes for any breaking changes or new features that you need to be aware of.
Check the supported version compatibility matrix. If the version of Gloo Gateway that you are upgrading to requires a different version of Kubernetes, the Kubernetes Gateway API, or Istio, upgrade those technologies accordingly.
Upgrade
Set the version to upgrade Gloo Gateway in an environment variable, such as the latest patch version (
2.0.1) .export NEW_VERSION=2.0.1Apply the Gloo Gateway CRDs for the upgrade version by using Helm.
Optional: To check the CRDs locally, download the CRDs to a
helmdirectory.helm template --version $NEW_VERSION gloo-gateway-crds oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway-crds --output-dir ./helmUpgrade the CRDs in your cluster:
helm upgrade -i --namespace gloo-system --version $NEW_VERSION gloo-gateway-crds oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway-crds
Make any changes to your Helm values.
Get the Helm values file for your current version.
helm get values gloo-gateway -n gloo-system -o yaml > values.yaml open values.yamlCompare your current Helm chart values with the version that you want to upgrade to.
Show all values:
helm show values oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway --version $NEW_VERSIONGet a file with all values: You can get a
gloo-gateway/values.yamlfile for the upgrade version by pulling and inspecting the Helm chart locally.helm pull oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway --version $NEW_VERSION tar -xvf gloo-gateway-$NEW_VERSION.tgz open gloo-gateway/values.yaml
Make any changes that you want by editing your
values.yamlHelm values file or preparing the--setflags. For development v2.0.0-main builds, include thecontroller.image.pullPolicy=Alwayssetting or refer to the exact image digest to avoid using cached images.
Upgrade the kgateway Helm installation.
- Make sure to include your Helm values when you upgrade either as a configuration file or with
--setflags. Otherwise, any previous custom values that you set might be overwritten. - When using the development build v2.0.0-main, add the
--set controller.image.pullPolicy=Alwaysoption to ensure you get the latest image. Alternatively, you can specify the exact image digest.
helm upgrade -i -n gloo-system gloo-gateway oci://us-docker.pkg.dev/solo-public/gloo-gateway/charts/gloo-gateway \ -f values.yaml \ --version $NEW_VERSION- Make sure to include your Helm values when you upgrade either as a configuration file or with
Verify that Gloo Gateway runs the upgraded version.
kubectl -n gloo-system get pod -l app.kubernetes.io/name=gloo-gateway -o jsonpath='{.items[0].spec.containers[0].image}'Example output:
us-docker.pkg.dev/solo-public/gloo-gateway/gloo-gateway:2.0.1Confirm that the Gloo Gateway control plane is up and running.
kubectl get pods -n gloo-system