Upgrading Kong Gateway using Helm

Related Documentation
Tags

Every Kong Ingress Controller deployment consists of two components that can be upgraded independently (learn more in deployment methods).

  • Kong Ingress Controller (a Control Plane),
  • Kong Gateway (a Data Plane).

To see the available Kong Gateway images, see kong/kong-gateway on Docker Hub:

Prerequisites

  • Kong Ingress Controller installed using the kong/ingress Helm chart
  • Enure your Helm charts repository is up-to-date by running helm repo update
  • yq installed (for YAML processing)
  • Check the version of Kong Gateway and Kong Ingress Controller you’re currently running:

     helm get values --all kong -n kong  | yq '{
       "gateway": .gateway.image.repository + ":" + .gateway.image.tag,
       "controller": .controller.ingressController.image.repository + ":" + .controller.ingressController.image.tag
     }'
    

    As an output, you should get the versions of Kong Gateway and Kong Ingress Controller deployed in your cluster, for example:

     gateway: kong/kong-gateway:3.10
     controller: kong/kubernetes-ingress-controller:3.4
    

    To understand which version of Kong Gateway is compatible with your version of Kong Ingress Controller, refer to the compatibility matrix.

Upgrading Kong Gateway in DB mode

There may be database migrations to run when running Kong Gateway in DB-backed mode. See Upgrade Kong Gateway 3.x.x to learn more about upgrade paths between different versions of Kong Gateway.

Upgrade Kong Gateway using Helm

  1. Edit or create a values.yaml file so that it contains a gateway.image.tag entry. Set this value to the version of Kong Gateway to be installed.

     gateway:
       image:
         tag: "3.10"
    
  2. Run helm upgrade with the --values flag.

     helm upgrade -n kong kong kong/ingress --values values.yaml --wait
    

    The result should look like this:

     Release "kong" has been upgraded. Happy Helming!
     NAME: kong
     LAST DEPLOYED: Fri Nov  3 15:27:49 2023
     NAMESPACE: kong
     STATUS: deployed
     REVISION: 5
     TEST SUITE: None
    

    Pass --wait to helm upgrade to ensure that the command only returns when the rollout finishes successfully.

  3. Verify the upgrade by checking the version of Kong Gateway Deployment running in your cluster.

     kubectl get deploy kong-gateway -n kong -ojsonpath='{.spec.template.spec.containers[0].image}'
    

    You should see the new version of Kong Gateway:

     kong:3.10
    
Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!
OSZAR »