Skip to content

Commit 90e1768

Browse files
mlavaccalmilanjustindaviespmalek
authored
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>
1 parent 9fc69a7 commit 90e1768

28 files changed

+446
-745
lines changed

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: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Install {{ site.operator_product_name }}
3+
description: "Deploy the {{ site.operator_product_name }}"
4+
content_type: how_to
5+
6+
permalink: /operator/get-started/gateway-api/install/
7+
series:
8+
id: operator-get-started-gateway-api
9+
position: 1
10+
11+
breadcrumbs:
12+
- /operator/
13+
- index: operator
14+
group: Gateway Deployment
15+
- index: operator
16+
group: Gateway Deployment
17+
section: "Get Started"
18+
19+
products:
20+
- operator
21+
22+
works_on:
23+
- konnect
24+
- on-prem
25+
26+
entities: []
27+
28+
tldr:
29+
q: How do I manage a {{ site.base_gateway }} through the {{ site.operator_product_name }}?
30+
a: Update the Helm repository and use Helm to install {{ site.operator_product_name }}.
31+
32+
prereqs:
33+
skip_product: true
34+
35+
tags:
36+
- install
37+
- helm
38+
---
39+
40+
## Install CRDs
41+
42+
{{ site.operator_product_name }} will automatically install the Cluster Resource Definitions as part of the initial deployment. If you are upgrading the CRDs as part of an existing {{ site.operator_product_name }} installation, you should deploy them manually:
43+
44+
```shell
45+
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v{{ site.gwapi_version }}/standard-install.yaml --server-side
46+
```
47+
48+
49+
## Install {{ site.operator_product_name }}
50+
51+
{% include prereqs/products/operator.md raw=true v_maj=2 %}
52+
53+
{% include k8s/cert-manager.md raw=true %}
54+
55+
## Validate
56+
57+
Wait for {{ site.operator_product_name }} to be ready
58+
59+
{% include prereqs/products/operator-validate-deployment.md %}
60+
61+
Once the `kong-operator-kong-operator-controller-manager` deployment is ready, you can deploy a `Gateway` and a `GatewayClass` that references the `GatewayConfiguration` holding the {{ site.konnect_short_name }} parameters.

app/_how-tos/operator-konnect-hybrid-gw.md renamed to app/_how-tos/operator-get-started-gateway-api-2-create-gateway.md

Lines changed: 53 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
---
2-
title: Provision a Hybrid Gateway
3-
description: "Provision a Hybrid Gateway in {{site.konnect_short_name}} using the Gateway API CRDs."
2+
title: Provision a Gateway
3+
description: "Provision a Hybrid Gateway in {{site.konnect_short_name}} using the Gateway API."
44
content_type: how_to
5-
permalink: /operator/konnect/crd/gateway/hybrid
5+
6+
permalink: /operator/get-started/gateway-api/deploy-gateway/
7+
series:
8+
id: operator-get-started-gateway-api
9+
position: 2
10+
611
breadcrumbs:
712
- /operator/
813
- index: operator
@@ -18,6 +23,7 @@ products:
1823

1924
works_on:
2025
- konnect
26+
- on-prem
2127

2228
search_aliases:
2329
- kgo gateway
@@ -29,6 +35,7 @@ tldr:
2935
a: Create a `GatewayConfiguration` resource that includes your {{site.konnect_short_name}} authentication and data plane options. Then create a `GatewayClass` resource that references the `GatewayConfiguration`, and a `Gateway` resource that references the `GatewayClass`.
3036

3137
prereqs:
38+
skip_product: false
3239
operator:
3340
konnect:
3441
auth: true
@@ -37,16 +44,17 @@ prereqs:
3744

3845
## Create a `GatewayConfiguration` resource
3946

47+
{: data-deployment-topology="konnect" }
4048
Use the `GatewayConfiguration` resource to configure a `GatewayClass` for Hybrid Gateways. `GatewayConfiguration` is for Hybrid Gateways when field `spec.konnect.authRef` is set.
4149

4250
First, let's create a `GatewayConfiguration` resource to specify our Hybrid Gateway parameters. Set `spec.konnect.authRef.name` to the name of the `KonnectAPIAuthConfiguration` resource we created in the [prerequisites](#create-a-konnectapiauthconfiguration-resource) and specify your data plane configuration:
4351

4452
<!-- vale off -->
4553
{% konnect_crd %}
4654
kind: GatewayConfiguration
47-
apiVersion: gateway-operator.konghq.com/v2beta1
55+
apiVersion: gateway-operator.konghq.com/{{ site.operator_gatewayconfiguration_api_version }}
4856
metadata:
49-
name: hybrid-configuration
57+
name: kong-configuration
5058
namespace: kong
5159
spec:
5260
konnect:
@@ -66,47 +74,74 @@ spec:
6674
Next, configure a `GatewayClass` resource to use the `GatewayConfiguration` we just created:
6775

6876
<!-- vale off -->
69-
{% konnect_crd %}
70-
kind: GatewayClass
77+
{% on_prem_crd %}
78+
kind: GatewayConfiguration
79+
apiVersion: gateway-operator.konghq.com/{{ site.operator_gatewayconfiguration_api_version }}
80+
metadata:
81+
name: kong-configuration
82+
namespace: kong
83+
spec:
84+
dataPlaneOptions:
85+
deployment:
86+
podTemplateSpec:
87+
spec:
88+
containers:
89+
- name: proxy
90+
image: kong/kong-gateway:3.12
91+
{% endon_prem_crd %}
92+
<!-- vale on -->
93+
94+
## Create a `GatewayClass`
95+
96+
Next configure respective `GatewayClass` to use the above `GatewayConfiguration`.
97+
98+
```bash
99+
echo 'kind: GatewayClass
71100
apiVersion: gateway.networking.k8s.io/v1
72101
metadata:
73-
name: hybrid-class
102+
name: kong
74103
spec:
75104
controllerName: konghq.com/gateway-operator
76105
parametersRef:
77106
group: gateway-operator.konghq.com
78107
kind: GatewayConfiguration
79-
name: hybrid-configuration
108+
name: kong-configuration
80109
namespace: kong
81-
{% endkonnect_crd %}
82-
<!-- vale on -->
110+
' | kubectl apply -f -
111+
```
83112

84113
## Create a `Gateway` Resource
85114

86115
Finally, create a `Gateway` resource that references the `GatewayClass` we just created:
87116

88-
<!-- vale off -->
89-
{% konnect_crd %}
117+
```bash
118+
echo '
90119
kind: Gateway
91120
apiVersion: gateway.networking.k8s.io/v1
92121
metadata:
93-
name: hybrid-gateway
122+
name: kong
94123
namespace: kong
95124
spec:
96-
gatewayClassName: hybrid-class
125+
gatewayClassName: kong
97126
listeners:
98127
- name: http
99128
protocol: HTTP
100129
port: 80
101-
{% endkonnect_crd %}
102-
<!-- vale on -->
130+
' | kubectl apply -f -
131+
```
103132

104133
{{site.operator_product_name}} automatically creates the `DataPlane` and `KonnectGatewayControlPlane` resources.
105134

106135
## Validation
107136

108137
{% validation kubernetes-resource %}
109138
kind: Gateway
110-
name: hybrid-gateway
139+
name: kong
140+
namespace: kong
111141
{% endvalidation %}
112142

143+
The `DataPlane`, `KonnectExtension`, and `KonnectGatewayControlPlane` resources are created automatically by {{site.operator_product_name}}.
144+
{: data-deployment-topology="konnect" }
145+
146+
The `DataPlane` and `ControlPlane` resources are created automatically by {{site.operator_product_name}}.
147+
{: data-deployment-topology="on-prem" }
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
title: Configure route and service
3+
description: "Configure a {{ site.base_gateway }} Service and Route using {{ site.operator_product_name }}."
4+
content_type: how_to
5+
6+
permalink: /operator/get-started/gateway-api/create-route/
7+
8+
series:
9+
id: operator-get-started-gateway-api
10+
position: 3
11+
12+
breadcrumbs:
13+
- /operator/
14+
- index: operator
15+
group: Gateway Deployment
16+
- index: operator
17+
group: Gateway Deployment
18+
section: "Get Started"
19+
20+
products:
21+
- operator
22+
23+
works_on:
24+
- konnect
25+
- on-prem
26+
27+
prereqs:
28+
skip_product: true
29+
30+
tldr:
31+
q: How can I create a Route with {{ site.operator_product_name }}?
32+
a: Create a Gateway API `HTTPRoute` object.
33+
next_steps:
34+
- text: Learn about Custom resource definitions (CRDs)
35+
url: /operator/reference/custom-resources/
36+
---
37+
38+
## Create a Backend Service
39+
40+
In order to route a request using {{ site.base_gateway }} we need a Service running in our cluster. Install an `echo` Service using the following command:
41+
42+
```bash
43+
kubectl apply -f {{site.links.web}}/manifests/kic/echo-service.yaml -n kong
44+
```
45+
46+
## Create an HTTPRoute
47+
48+
Create an `HTTPRoute` to send any requests that start with `/echo` to the echo Service.
49+
50+
```yaml
51+
echo '
52+
kind: HTTPRoute
53+
apiVersion: gateway.networking.k8s.io/v1
54+
metadata:
55+
name: echo
56+
namespace: kong
57+
spec:
58+
parentRefs:
59+
- group: gateway.networking.k8s.io
60+
kind: Gateway
61+
name: kong
62+
rules:
63+
- matches:
64+
- path:
65+
type: PathPrefix
66+
value: /echo
67+
backendRefs:
68+
- name: echo
69+
port: 1027
70+
' | kubectl apply -f -
71+
```
72+
73+
The results should look like this:
74+
75+
```text
76+
httproute.gateway.networking.k8s.io/echo created
77+
```
78+
79+
## Test your Backend
80+
81+
Run `kubectl get gateway kong -n default` to get the IP address for the gateway and set that as the value for the variable `PROXY_IP`.
82+
83+
```bash
84+
export PROXY_IP=$(kubectl get gateway kong -n kong -o jsonpath='{.status.addresses[0].value}')
85+
```
86+
87+
Test your Service:
88+
{% validation request-check %}
89+
url: /echo
90+
status_code: 200
91+
on_prem_url: $PROXY_IP
92+
konnect_url: $PROXY_IP
93+
display_headers: true
94+
{% endvalidation %}
95+
96+
You should see the following message:
97+
98+
```text
99+
Welcome, you are connected to node king.
100+
Running on Pod echo-965f7cf84-rm7wq.
101+
In namespace default.
102+
With IP address 192.168.194.10.
103+
```

0 commit comments

Comments
 (0)