Set DataPlane Image

Uses: Kong Gateway Operator
Related Documentation
TL;DR

Use PodTemplateSpec to customize the container spec and specify an image name for the proxy container.

Prerequisites

If you don’t have a Konnect account, you can get started quickly with our onboarding wizard.

  1. The following Konnect items are required to complete this tutorial:
    • Personal access token (PAT): Create a new personal access token by opening the Konnect PAT page and selecting Generate Token.
  2. Set the personal access token as an environment variable:

    export KONNECT_TOKEN='YOUR KONNECT TOKEN'
    
  1. Add the Kong Helm charts:

    helm repo add kong https://charts.konghq.com
    helm repo update
    
  2. Create a kong namespace:

    kubectl create namespace kong --dry-run=client -o yaml | kubectl apply -f -
    
  3. Install Kong Ingress Controller using Helm:

    helm upgrade --install kgo kong/gateway-operator -n kong-system --create-namespace  \
      --set image.tag=1.5 \
      --set kubernetes-configuration-crds.enabled=true \
      --set env.ENABLE_CONTROLLER_KONNECT=true
    

Deploy a DataPlane

The DataPlane image can be specified by providing a custom image value for the proxy container. This value is provided in the PodTemplateSpec field in either the DataPlane or the GatewayConfiguration resource.

The following example uses the DataPlane resource, but you can also configure your GatewayConfiguration resource as needed. For more information see the PodTemplateSpec page.

echo '
apiVersion: gateway-operator.konghq.com/v1beta1
kind: DataPlane
metadata:
  name: dataplane-example
  namespace: kong
spec:
  deployment:
    podTemplateSpec:
      spec:
        containers:
        - name: proxy
          image: kong/kong-gateway:3.9
' | kubectl apply -f -

Validation

To validate that the correct image was used, fetch the pod created by Kong Gateway Operator and check the .spec.containers[].image value:

NAME=$(kubectl get -o yaml -n kong pod | yq '.items[].metadata.name | select(contains("dataplane-example"))')
kubectl get -o yaml -n kong pod $NAME \
  | yq '.spec.containers[] | select(.name == "proxy") | .image'

You should see the value kong/kong-gateway: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!