Upgrading Kong Gateway with Kong Ingress Controller
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).
Learn to upgrade Kong Gateway when running with Kong Ingress Controller.
To see the available Kong Gateway images, refer to 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:3.3 controller: kong/kubernetes-ingress-controller:3.3.1
To understand what 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. Refer to Upgrade Kong Gateway 3.x.x to learn more about upgrade paths between different versions of Kong Gateway.
Upgrade Kong Gateway using Helm
-
Edit or create a
values.yaml
file so that it contains agateway.image.tag
entry. Set this value to the version of Kong Gateway to be installed.gateway: image: tag: 3.8.1
-
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
tohelm upgrade
to ensure that the command only returns when the rollout finishes successfully. -
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.8.1