gateway: add the Envoy GatewayClass and Gateway

Envoy runs as a DaemonSet on host ports 10080 and 10443 for now, so it can be tested next to ingress-nginx, which keeps 80 and 443. The Gateway has a plain HTTP listener and no routes yet.
This commit is contained in:
Ruben Hensen committed 2026-10-23 17:27:02 +02:00
1 parent a20808b752
commit 7475199ca5
4 files changed
+81

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: gateway-folder
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/rubenhensen/k8scd.git
targetRevision: HEAD
path: gateway
destination:
server: https://kubernetes.default.svc
namespace: envoy-gateway-system
syncPolicy:
syncOptions:
- ServerSideApply=true
automated:
prune: true
selfHeal: true
+32
View File
@@ -0,0 +1,32 @@
# How Envoy Gateway runs the proxy: a DaemonSet that takes the node's ports
# directly, the way the microk8s ingress-nginx addon does. Gateway listeners
# below 1024 run on port + 10000 inside the container (80 becomes 10080).
#
# While ingress-nginx still owns 80 and 443, the host ports are 10080 and
# 10443 so both can be tested side by side.
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: hostport
namespace: envoy-gateway-system
spec:
provider:
type: Kubernetes
kubernetes:
# No cloud load balancer here; a LoadBalancer Service would stay pending.
envoyService:
type: ClusterIP
envoyDaemonSet:
patch:
type: StrategicMerge
value:
spec:
template:
spec:
containers:
- name: envoy
ports:
- containerPort: 10080
hostPort: 10080
- containerPort: 10443
hostPort: 10443
+16
View File
@@ -0,0 +1,16 @@
# The single entry point for all HTTP(S) traffic. Each app adds an HTTPS
# listener for its hostname here and an HTTPRoute in its own namespace.
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: homelab
namespace: envoy-gateway-system
spec:
gatewayClassName: envoy
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: All
+11
View File
@@ -0,0 +1,11 @@
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: envoy
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: hostport
namespace: envoy-gateway-system