Project: Gloo (Orchestration & Management / API Gateway)
File: upgrade_steps.md

title: Quick upgrade weight: 20 description: Quickly upgrade Gloo Edge in testing or sandbox environments. Quickly upgrade your Gloo Edge Enterprise or Gloo Edge Open Source installation to the latest version of {{< readfile file="static/content/versiongeosslatest_minor.md" markdown="true">}} in testing or sandbox environments. Before you begin, follow the guide to complete these preparatory steps: Review important changes made to Gloo Edge in version {{< readfile file="static/content/versiongeosslatest_minor.md" markdown="true">}}, 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. Follow the steps in to update `glooctl` to the version you want to upgrade to. 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 Edge Helm repositories. ```sh helm repo update ``` Set the version to upgrade Gloo Edge to in an environment variable, such as the latest patch version for open source (`{{< readfile file="static/content/versiongeosslatest.md" markdown="true">}}`) or enterprise (`{{< readfile file="static/content/versiongeelatest.md" markdown="true">}}`). ```sh export NEW_VERSION=<version> ``` Check the to see which CRDs are new, deprecated, or removed in version {{< readfile file="static/content/versiongeosslatest_minor.md" markdown="true">}}. Delete any removed CRDs. <!--If applicable, add commands to kubectl delete the removed CRDs--> Apply the new and updated CRDs. {{< tabs >}} {{% tab name="Open Source" %}} ```sh helm pull gloo/gloo --version $NEW_VERSION --untar kubectl apply -f gloo/crds ``` {{% /tab %}} {{% tab name="Enterprise" %}} ```sh helm pull glooe/gloo-ee --version $NEW_VERSION --untar kubectl apply -f gloo-ee/charts/gloo/crds kubectl apply -f gloo-ee/charts/gloo-fed/crds ``` {{% /tab %}} {{< /tabs >}} Verify that the deployed CRDs use the version that you want to upgrade to. ``` glooctl check-crds ``` Check the to see whether there are breaking changes you must address in your resources before you upgrade to {{< readfile file="static/content/versiongeosslatest_minor.md" markdown="true">}}. <!--If applicable, add steps to walk users though updating crs for any breaking changes--> Check the to see whether there are new, deprecated, or removed Helm settings you might address before you upgrade to {{< readfile file="static/content/versiongeosslatest_minor.md"

Get the Helm values file for your current installation. {{< tabs >}} {{% tab name="Open Source" %}} ```sh helm get values -n gloo-system gloo gloo/gloo > values.yaml open values.yaml ``` {{% /tab %}} {{% tab name="Enterprise" %}} ```sh helm get values -n gloo-system gloo glooe/gloo-ee > values.yaml open values.yaml ``` {{% /tab %}} {{< /tabs >}} 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. Upgrade your Gloo Edge installation. The following example upgrade commands assume that Gloo Edge 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. {{< tabs >}} {{% tab name="Open Source" %}} ```shell script helm upgrade -n gloo-system gloo gloo/gloo \ -f values.yaml \ --version=$NEW_VERSION ``` {{% /tab %}} {{% tab name="Enterprise" %}} Note that you must set your license key by using the `--set-string licensekey=$LICENSEKEY` flag or including the `licensekey: $LICENSEKEY` setting in your values file. If you do not have a license key, . ```shell script helm upgrade -n gloo-system gloo glooe/gloo-ee \ -f values.yaml \ --version=$NEW_VERSION \ --set licensekey=$LICENSEKEY ``` {{% /tab %}} {{< /tabs >}} Verify that Gloo Edge runs the upgraded version. ```shell script kubectl -n gloo-system get pod -l gloo=gloo -ojsonpath='{.items[0].spec.containers[0].image}' ``` Example output: ``` quay.io/solo-io/gloo:{{< readfile file="static/content/versiongeosslatest.md" markdown="true">}} ``` Verify that all server components run the upgraded version. ```shell script glooctl version ``` Check that your Gloo Edge components are OK. If a problem is reported by `glooctl check`, Gloo Edge might not work properly or Envoy might not get the updated configuration. ```bash glooctl check ``` Example output: ```bash Checking deployments... OK Checking pods... OK Checking upstreams... OK Checking upstream groups... OK Checking secrets... OK Checking virtual services... OK Checking gateways... OK Checking proxies... OK No problems detected. ``` Now that your upgrade is complete, you can enable any other in version {{< readfile file="static/content/versiongeosslatest_minor.md" markdown="true">}} that you want to use.