Skip to content

Commit 5cdafd5

Browse files
lmilanprogrammer04pmalekrandmonkeyjustindavies
authored
Release: KO 2.1.0 (#4104)
* feat(ko): document Hybrid Gateway (#3318) * ko: describe how cross namespace references work (#3775) * ko: add information about cross namespace Secret reference from KongCertificate and KongCACertificate (#3937) * ko: add information about cross namespace Secret reference from KongCertificate and KongCACertificate * Apply suggestions from code review Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/operator/konnect/cross-namespace-references.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> --------- Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * ko: add information about cross namespace KongPlugin reference from KongPluginBinding (#3981) * ko: add information about cross namespace KongPlugin reference from KongPluginBinding * Update app/operator/konnect/cross-namespace-references.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> --------- Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * ko: add information about cross namespace from KongRoute to KongService (#3998) * ko: custom CA for ControlPLane DataPlane communication (#4017) * ko: custom CA for ControlPLane DataPlane communication * Update app/_includes/k8s/ca-cert.md Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> --------- Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> * operator: Add how-to doc for gateway entity adoption (#3584) * feat(ko): document Hybrid Gateway (#3318) * add how-to doc for gateway entity adoption * add section for adopting CGW entities * Add index of entity adoption page * Updates after review and testing * Update operator-konnect-adopt-gateway-entities.md * Update operator-konnect-adopt-gateway-entities.md --------- Co-authored-by: Jakub Warczarek <jakub.warczarek@konghq.com> Co-authored-by: Lucie Milan <lucie.milan@konghq.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * feat: Rework Operator landing page (#3389) * feat: rework operator landing page Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * fix: redirects Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * Update operator-get-started-konnect-crds-3-controlplane.md * Update _redirects * fixes Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * address comments Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * simplify installation Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * chore: factorize gwapy_version Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * chore: update KO version to v2.1.0-beta.0 Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * Update jekyll.yml Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * PReview install changes * nits on the homepage * Clear up on prem / konnect * closure * fixes * Update operator.yaml * Update operator-get-started-gateway-api-1-install.md * Update operator-konnect-hybrid-dataplane.md --------- Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> Co-authored-by: Lucie Milan <lucie.milan@konghq.com> Co-authored-by: Justin Davies <justin.davies@konghq.com> Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Feat(operator): 2.1 PM docs (#4081) * PM led KO 2.1 docs * Fix links and testing artefacts * fix frontmatter * move and rename files * tag files to review * secrets * fixes * Update kongpluginbinding.md * Update operator.md * Update secrets.md * Update operator-dataplane-cert-manager.md * Update operator-dataplane-handle-ingress.md * Update operator-dataplane-manage-consumers.md * Update operator-konnect-static-naming.md * Update operator-konnect-static-naming.md * use include * Update operator-dataplane-traffic-splitting.md * Update operator-dataplane-traffic-splitting.md * remove duplicate page * Update operator-konnect-static-naming.md * Update operator-dataplane-cert-manager.md * Update operator-dataplane-cert-manager.md * fixes * Update operator-dataplane-manage-consumers.md * fixes * include * Update operator-dataplane-configure-plugins-for-httproute.md * Update echo-service-route.md * Update operator-dataplane-configure-plugins-for-httproute.md * Update operator-dataplane-preserve-client-ip.md * Update operator-dataplane-preserve-client-ip.md * Update operator-dataplane-tls-termination.md * Create cross-namespace-ref.md * Delete operator-konnect-resource-references.md * Create operator-konnect-auth-cross-namespace-reference.md * secret reference * Update operator.yaml * Update operator-konnect-secret-cross-namespace-reference.md * Create operator-monitoring-prometheus-direct-scraping.md * direct scraping * enriched metrics * remove how-to * Update operator.yaml * Update operator.yml * Update app/_how-tos/operator-konnect-static-naming.md Co-authored-by: Angel <Guaris@users.noreply.github.com> --------- Co-authored-by: Justin Davies <justin.davies@konghq.com> Co-authored-by: Angel <Guaris@users.noreply.github.com> * feat(ko): document Hybrid Gateway (#3318) * ko: describe how cross namespace references work (#3775) * ko: add information about cross namespace Secret reference from KongCertificate and KongCACertificate (#3937) * ko: add information about cross namespace Secret reference from KongCertificate and KongCACertificate * Apply suggestions from code review Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/operator/konnect/cross-namespace-references.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> --------- Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * ko: add information about cross namespace KongPlugin reference from KongPluginBinding (#3981) * ko: add information about cross namespace KongPlugin reference from KongPluginBinding * Update app/operator/konnect/cross-namespace-references.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> --------- Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * ko: add information about cross namespace from KongRoute to KongService (#3998) * ko: custom CA for ControlPLane DataPlane communication (#4017) * ko: custom CA for ControlPLane DataPlane communication * Update app/_includes/k8s/ca-cert.md Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> --------- Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> * operator: Add how-to doc for gateway entity adoption (#3584) * feat(ko): document Hybrid Gateway (#3318) * add how-to doc for gateway entity adoption * add section for adopting CGW entities * Add index of entity adoption page * Updates after review and testing * Update operator-konnect-adopt-gateway-entities.md * Update operator-konnect-adopt-gateway-entities.md --------- Co-authored-by: Jakub Warczarek <jakub.warczarek@konghq.com> Co-authored-by: Lucie Milan <lucie.milan@konghq.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Apply suggestion from @lmilan Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * feat: Rework Operator landing page (#3389) * feat: rework operator landing page Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * fix: redirects Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * Update operator-get-started-konnect-crds-3-controlplane.md * Update _redirects * fixes Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * address comments Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * simplify installation Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * chore: factorize gwapy_version Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * chore: update KO version to v2.1.0-beta.0 Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> * Update jekyll.yml Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_indices/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_landing_pages/operator.yaml Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * PReview install changes * nits on the homepage * Clear up on prem / konnect * closure * fixes * Update operator.yaml * Update operator-get-started-gateway-api-1-install.md * Update operator-konnect-hybrid-dataplane.md --------- Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> Co-authored-by: Lucie Milan <lucie.milan@konghq.com> Co-authored-by: Justin Davies <justin.davies@konghq.com> Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Feat(operator): 2.1 PM docs (#4081) * PM led KO 2.1 docs * Fix links and testing artefacts * fix frontmatter * move and rename files * tag files to review * secrets * fixes * Update kongpluginbinding.md * Update operator.md * Update secrets.md * Update operator-dataplane-cert-manager.md * Update operator-dataplane-handle-ingress.md * Update operator-dataplane-manage-consumers.md * Update operator-konnect-static-naming.md * Update operator-konnect-static-naming.md * use include * Update operator-dataplane-traffic-splitting.md * Update operator-dataplane-traffic-splitting.md * remove duplicate page * Update operator-konnect-static-naming.md * Update operator-dataplane-cert-manager.md * Update operator-dataplane-cert-manager.md * fixes * Update operator-dataplane-manage-consumers.md * fixes * include * Update operator-dataplane-configure-plugins-for-httproute.md * Update echo-service-route.md * Update operator-dataplane-configure-plugins-for-httproute.md * Update operator-dataplane-preserve-client-ip.md * Update operator-dataplane-preserve-client-ip.md * Update operator-dataplane-tls-termination.md * Create cross-namespace-ref.md * Delete operator-konnect-resource-references.md * Create operator-konnect-auth-cross-namespace-reference.md * secret reference * Update operator.yaml * Update operator-konnect-secret-cross-namespace-reference.md * Create operator-monitoring-prometheus-direct-scraping.md * direct scraping * enriched metrics * remove how-to * Update operator.yaml * Update operator.yml * Update app/_how-tos/operator-konnect-static-naming.md Co-authored-by: Angel <Guaris@users.noreply.github.com> --------- Co-authored-by: Justin Davies <justin.davies@konghq.com> Co-authored-by: Angel <Guaris@users.noreply.github.com> * Update operator.md * Update operator-konnect-control-plane.md * Update operator-konnect-getstarted-dataplane.md * Update operator-get-started-konnect-crds-3-controlplane.md * fixes * Fix submodule * update links * Update disaster-recovery.md * fix links * Update gateway-api.md * Apply suggestions from code review Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com> * Modify KO prereq so license only displays for on prem Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com> * Fixes to installation for 2.1 release * Fix spelling mistakes * fix vale * Update app/_how-tos/operator-get-started-gateway-api-1-install.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-1-install.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-1-install.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-konnect-crds-4-service-route.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-1-install.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-1-install.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-2-create-gateway.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-2-create-gateway.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-3-create-route.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> * Update app/_how-tos/operator-get-started-gateway-api-3-create-route.md Co-authored-by: Lucie Milan <32450552+lmilan@users.noreply.github.com> --------- Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com> Signed-off-by: Diana <75819066+cloudjumpercat@users.noreply.github.com> Co-authored-by: Jakub Warczarek <jakub.warczarek@konghq.com> Co-authored-by: Patryk Małek <pmalek@users.noreply.github.com> Co-authored-by: Tao Yi <tao.yi@konghq.com> Co-authored-by: Justin Davies <justin.davies@konghq.com> Co-authored-by: Mattia Lavacca <lavacca.mattia@gmail.com> Co-authored-by: Angel <Guaris@users.noreply.github.com> Co-authored-by: Diana <75819066+cloudjumpercat@users.noreply.github.com>
1 parent 8ae4233 commit 5cdafd5

File tree

62 files changed

+3199
-730
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+3199
-730
lines changed

app/_data/products/operator.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ name: Kong Operator
22
icon: /_assets/icons/products/operator.svg
33

44
releases:
5+
- release: "2.1.0"
6+
releaseDate: "2026-02-05"
7+
endOfLifeDate: "2027-02-05"
8+
latest: true
59
- release: "2.0.5"
610
releaseDate: "2025-10-17"
711
endOfLifeDate: "2026-10-17"
8-
latest: true
912
- release: "2.0.4"
1013
releaseDate: "2025-10-07"
1114
endOfLifeDate: "2026-10-07"
@@ -26,4 +29,4 @@ releases:
2629
endOfLifeDate: "2025-11-28"
2730
- release: "1.3"
2831
releaseDate: "2024-06-24"
29-
endOfLifeDate: "2025-06-24"
32+
endOfLifeDate: "2025-06-24"

app/_data/series.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@ kic-get-started:
44
plugin-dev-get-started:
55
title: Get started with custom plugin development
66
url: /custom-plugins/get-started/set-up-plugin-project/
7-
operator-konnectcrds-get-started:
8-
title: Get Started with the Kong Gateway Operator
9-
url: /index/operator/#get-started
10-
operator-get-started-hybrid:
11-
title: Deploy Hybrid DataPlanes with {{ site.operator_product_name }}
12-
url: /operator/dataplanes/get-started/hybrid/install/
13-
operator-get-started-kic:
14-
title: Deploy self-managed Control Plane with {{ site.operator_product_name }}
15-
url: /operator/dataplanes/get-started/kic/install/
167
gateway-k8s-on-prem-install:
178
title: Install {{ site.base_gateway }} on-prem on Kubernetes
189
breadcrumb_title: On-Prem Kubernetes
1910
url: /gateway/install/kubernetes/on-prem/
11+
operator-get-started-gateway-api:
12+
title: Get started with {{ site.operator_product_name }} and Gateway API
13+
url: /operator/get-started/gateway-api/install/
14+
operator-get-started-konnect-crds:
15+
title: Get started with {{ site.operator_product_name }} and Konnect CRDs
16+
url: /operator/get-started/konnect-crds/install/
2017
mcp-traffic:
2118
title: Secure, govern and observe MCP traffic with Kong AI Gateway
2219
url: /mcp/secure-mcp-traffic/
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
---
2+
title: Automate TLS certificates with cert-manager
3+
description: "Learn how to use cert-manager to automatically provision and rotate TLS certificates for {{ site.operator_product_name }}."
4+
content_type: how_to
5+
6+
permalink: /operator/dataplanes/how-to/cert-manager/
7+
breadcrumbs:
8+
- /operator/
9+
- index: operator
10+
group: Gateway Deployment
11+
- index: operator
12+
group: Gateway Deployment
13+
section: "How-To"
14+
15+
products:
16+
- operator
17+
18+
prereqs:
19+
skip_product: true
20+
21+
works_on:
22+
- on-prem
23+
- konnect
24+
25+
tldr:
26+
q: How do I automate TLS certificates with {{ site.operator_product_name }}?
27+
a: Annotate your `Gateway` with `cert-manager.io/issuer` and reference the resulting `Secret` in your `Gateway` listeners.
28+
29+
---
30+
31+
Integrating {{ site.operator_product_name }} with [cert-manager](https://cert-manager.io/) allows you to automatically provision and rotate TLS certificates for your Gateway listeners. This integration follows the standard Kubernetes Gateway API pattern.
32+
33+
When you annotate a `Gateway` resource with a cert-manager issuer, cert-manager automatically creates a `Certificate` and a corresponding `Secret` containing the TLS key pair. The Operator then configures the managed Data Planes to use this secret for TLS termination.
34+
35+
{% include /k8s/kong-namespace.md %}
36+
37+
## Install {{site.operator_product_name}} with cert-manager enabled
38+
39+
1. Add the Kong Helm charts:
40+
41+
```sh
42+
helm repo add kong https://charts.konghq.com
43+
helm repo update
44+
```
45+
46+
1. Install [cert-manager](https://cert-manager.io/) on your cluster:
47+
48+
```sh
49+
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.2/cert-manager.yaml
50+
```
51+
52+
1. Install {{ site.operator_product_name }} using Helm:
53+
54+
```bash
55+
helm upgrade --install kong-operator kong/kong-operator -n kong-system \
56+
--create-namespace \
57+
--set image.tag={{ site.data.operator_latest.release }} \
58+
--set global.webhooks.options.certManager.enabled=true
59+
```
60+
{: data-deployment-topology="on-prem" }
61+
62+
63+
```bash
64+
helm upgrade --install kong-operator kong/kong-operator -n kong-system \
65+
--create-namespace \
66+
--set image.tag={{ site.data.operator_latest.release }} \
67+
--set global.webhooks.options.certManager.enabled=true \
68+
--set env.ENABLE_CONTROLLER_KONNECT=true
69+
```
70+
{: data-deployment-topology="konnect" }
71+
72+
## Create a cert-manager issuer
73+
74+
The cert-manager `Issuer` resource represents a certificate authority. For more information, see the [cert-manager documentation](https://cert-manager.io/docs/configuration/).
75+
76+
```yaml
77+
echo '
78+
apiVersion: cert-manager.io/v1
79+
kind: Issuer
80+
metadata:
81+
name: selfsigned-issuer
82+
namespace: kong
83+
spec:
84+
selfSigned: {}' | kubectl apply -f -
85+
```
86+
87+
{:.info}
88+
> In this example, we're using a simple self-signed issuer. In a production environment, you would typically use an ACME issuer like Let's Encrypt, or a CA issuer.
89+
90+
## Configure the Gateway with cert-manager
91+
92+
Create the following resources:
93+
94+
* A `GatewayConfiguration` and a `GatewayClass` to configure your gateway with the latest {{site.base_gateway}} version and {{site.operator_product_name}} as the controller.
95+
* A `Gateway` with the `cert-manager.io/issuer: "selfsigned-issuer"` annotation and the `tls.certificateRefs` pointing to the name of the Secret to provision.
96+
* A `Certificate` that references the cert-manager issuer and the provisioned Secret.
97+
98+
```sh
99+
echo '
100+
apiVersion: gateway-operator.konghq.com/v2beta1
101+
kind: GatewayConfiguration
102+
metadata:
103+
name: kong-gateway-configuration
104+
namespace: kong
105+
spec:
106+
dataPlaneOptions:
107+
deployment:
108+
podTemplateSpec:
109+
spec:
110+
containers:
111+
- image: kong/kong-gateway:{{ site.data.gateway_latest.release }}
112+
name: proxy
113+
---
114+
apiVersion: gateway.networking.k8s.io/v1
115+
kind: GatewayClass
116+
metadata:
117+
name: kong-cert-manager
118+
spec:
119+
controllerName: konghq.com/gateway-operator
120+
parametersRef:
121+
group: gateway-operator.konghq.com
122+
kind: GatewayConfiguration
123+
name: kong-gateway-configuration
124+
namespace: kong
125+
---
126+
apiVersion: gateway.networking.k8s.io/v1
127+
kind: Gateway
128+
metadata:
129+
name: kong-gateway
130+
namespace: kong
131+
annotations:
132+
cert-manager.io/issuer: "selfsigned-issuer"
133+
spec:
134+
gatewayClassName: kong-cert-manager
135+
listeners:
136+
- name: https
137+
port: 443
138+
protocol: HTTPS
139+
hostname: example.localdomain.dev
140+
tls:
141+
mode: Terminate
142+
certificateRefs:
143+
- group: ""
144+
kind: Secret
145+
name: example-tls-secret
146+
---
147+
apiVersion: cert-manager.io/v1
148+
kind: Certificate
149+
metadata:
150+
name: example-tls-certificate
151+
namespace: kong
152+
spec:
153+
secretName: example-tls-secret
154+
issuerRef:
155+
name: selfsigned-issuer
156+
kind: Issuer
157+
dnsNames:
158+
- example.localdomain.dev
159+
secretTemplate:
160+
labels:
161+
konghq.com/secret: "true"' | kubectl apply -f -
162+
```
163+
164+
## Create an echo Service
165+
166+
Run the following command to create a sample echo Service:
167+
168+
```bash
169+
kubectl apply -f https://developer.konghq.com/manifests/kic/echo-service.yaml -n kong
170+
```
171+
172+
## Create a Route
173+
174+
Deploy a sample `HTTPRoute` to verify that TLS termination is working:
175+
176+
```sh
177+
echo '
178+
apiVersion: gateway.networking.k8s.io/v1
179+
kind: HTTPRoute
180+
metadata:
181+
name: echo-route
182+
namespace: kong
183+
spec:
184+
parentRefs:
185+
- name: kong-gateway
186+
rules:
187+
- matches:
188+
- path:
189+
type: PathPrefix
190+
value: /echo
191+
backendRefs:
192+
- name: echo
193+
kind: Service
194+
port: 1027' | kubectl apply -f -
195+
```
196+
197+
## Validate
198+
199+
1. Check that cert-manager has created the `Certificate` resource and that the `Secret` has been provisioned:
200+
201+
```bash
202+
kubectl get certificate -n kong
203+
kubectl get secret example-tls-secret -n kong
204+
```
205+
206+
1. Get the Gateway's external IP:
207+
208+
```bash
209+
export PROXY_IP=$(kubectl get gateway kong-gateway -n kong -o jsonpath='{.status.addresses[0].value}')
210+
```
211+
212+
1. Test the connection:
213+
214+
```bash
215+
curl -ivk --resolve example.localdomain.dev:443:$PROXY_IP https://example.localdomain.dev/echo
216+
```
217+
218+
You should get TLS handshake and a 200 response.

0 commit comments

Comments
 (0)