Skip to content

Commit 7df9853

Browse files
committed
Add envoy deployment and initial API HTTPRoute example
1 parent bafa066 commit 7df9853

4 files changed

Lines changed: 119 additions & 0 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
kind: HTTPRoute
3+
metadata:
4+
name: quackstack
5+
namespace: apis
6+
spec:
7+
parentRefs:
8+
- name: envoy-gateway
9+
namespace: envoy-gateway
10+
hostnames:
11+
- quackstack.pythondiscord.com
12+
rules:
13+
- backendRefs:
14+
- name: quackstack
15+
weight: 1
16+
port: 80
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Gateway
2+
3+
We use Envoy Gateway as our Kubernetes Gateway API implementation (the successor to the deprecated Kubernetes Ingress API).
4+
5+
## Installation
6+
7+
Taken from https://gateway.envoyproxy.io/docs/tasks/quickstart/
8+
9+
```bash
10+
$ helm install envoy-gateway oci://docker.io/envoyproxy/gateway-helm --version v1.7.1 -n envoy-gateway --create-namespace -f values.yaml
11+
```
12+
13+
Wait for the `envoy-gateway` deployment to be ready:
14+
15+
```bash
16+
$ kubectl wait --timeout=5m -n envoy-gateway deployment/envoy-gateway --for=condition=Available
17+
```
18+
19+
Find the external IP address of the Envoy Gateway:
20+
21+
```bash
22+
$ export GATEWAY_HOST=$(kubectl get gateway/envoy-gateway -o jsonpath='{.status.addresses[0].value}')
23+
```
24+
25+
## Maintenance
26+
27+
You can install the `egctl` tool following instructions [here](https://gateway.envoyproxy.io/docs/install/install-egctl/) to manage the Envoy Gateway deployment.
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
apiVersion: gateway.networking.k8s.io/v1
2+
kind: GatewayClass
3+
metadata:
4+
name: envoy-gateway
5+
namespace: envoy-gateway
6+
spec:
7+
controllerName: gateway.envoyproxy.io/gatewayclass-controller
8+
---
9+
apiVersion: gateway.networking.k8s.io/v1
10+
kind: Gateway
11+
metadata:
12+
name: envoy-gateway
13+
namespace: envoy-gateway
14+
spec:
15+
gatewayClassName: envoy-gateway
16+
listeners:
17+
- name: http
18+
protocol: HTTP
19+
port: 80
20+
allowedRoutes:
21+
namespaces:
22+
from: All
23+
24+
- name: https-pythondiscord-root
25+
protocol: HTTPS
26+
port: 443
27+
hostname: "pythondiscord.com"
28+
tls:
29+
mode: Terminate
30+
certificateRefs:
31+
- name: pythondiscord.com-tls
32+
kind: Secret
33+
allowedRoutes:
34+
namespaces:
35+
from: All
36+
37+
- name: https-pythondiscord-wildcard
38+
protocol: HTTPS
39+
port: 443
40+
hostname: "*.pythondiscord.com"
41+
tls:
42+
mode: Terminate
43+
certificateRefs:
44+
- name: pythondiscord.com-tls
45+
kind: Secret
46+
allowedRoutes:
47+
namespaces:
48+
from: All
49+
50+
- name: https-pydis-wtf-root
51+
protocol: HTTPS
52+
port: 443
53+
hostname: "pydis.wtf"
54+
tls:
55+
mode: Terminate
56+
certificateRefs:
57+
- name: pydis.wtf-tls
58+
kind: Secret
59+
allowedRoutes:
60+
namespaces:
61+
from: All
62+
63+
- name: https-pydis-wtf-wildcard
64+
protocol: HTTPS
65+
port: 443
66+
hostname: "*.pydis.wtf"
67+
tls:
68+
mode: Terminate
69+
certificateRefs:
70+
- name: pydis.wtf-tls
71+
kind: Secret
72+
allowedRoutes:
73+
namespaces:
74+
from: All
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
deployment:
2+
replicas: 2

0 commit comments

Comments
 (0)