Deploy a DataPlane

Uses: Kong Gateway Operator
TL;DR

Create a DataPlane object and use the KonnectExtension reference.

Prerequisites

This page is part of the Deploy Hybrid DataPlanes with Kong Gateway Operator series.

Complete the previous page, Install Kong Gateway Operator before completing this page.

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'
    
kubectl create namespace kong --dry-run=client -o yaml | kubectl apply -f -
echo '
kind: KonnectAPIAuthConfiguration
apiVersion: konnect.konghq.com/v1alpha1
metadata:
  name: konnect-api-auth
  namespace: kong
spec:
  type: token
  token: "'$KONNECT_TOKEN'"
  serverURL: us.api.konghq.com
' | kubectl apply -f -
echo '
kind: KonnectGatewayControlPlane
apiVersion: konnect.konghq.com/v1alpha1
metadata:
  name: gateway-control-plane
  namespace: kong
spec:
  name: gateway-control-plane
  konnect:
    authRef:
      name: konnect-api-auth
' | kubectl apply -f -
echo '
kind: KonnectExtension
apiVersion: konnect.konghq.com/v1alpha1
metadata:
  name: my-konnect-config
  namespace: kong
spec:
  clientAuth:
    certificateSecret:
      provisioning: Automatic
  konnect:
    controlPlane:
      ref:
        type: konnectNamespacedRef
        konnectNamespacedRef:
          name: gateway-control-plane' | kubectl apply -f -

Create the DataPlane

Configure a Kong DataPlane by using your KonnectExtension reference:

echo '
apiVersion: gateway-operator.konghq.com/v1beta1
kind: DataPlane
metadata:
  name: dataplane-example
  namespace: kong
spec:
  extensions:
  - kind: KonnectExtension
    name: my-konnect-config
    group: konnect.konghq.com
  deployment:
    podTemplateSpec:
      spec:
        containers:
        - name: proxy
          image: kong/kong-gateway:3.10
' | kubectl apply -f -

Check the Ready status

If the DataPlane has Ready condition set to True then you can visit Konnect and see the dataplane in the list of connected Data Planes for your Control Plane:

Check that Programmed is True on the dataplane-example resource:

You can verify the dataplane was reconciled successfully by checking its Ready condition.

kubectl get -n kong dataplane dataplane-example \
  -o=jsonpath='{.status.conditions[?(@.type=="Ready")]}' | jq

The output should look similar to this:

{
  "observedGeneration": 1,
  "reason": "Ready",
  "status": "True",
  "type": "Ready"
}
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!