From 6c6c88a16ad38f4e79be4311da2653c88e4520d6 Mon Sep 17 00:00:00 2001 From: Jeffrey Smeets Date: Tue, 2 Jun 2026 22:28:39 +0200 Subject: [PATCH] Add Wings HTTPS proxy via Envoy Gateway --- envoy-gateway/kustomization.yaml | 7 ++++++ envoy-gateway/pelican/wings-certificate.yaml | 14 +++++++++++ .../pelican/wings-gateway-patch.yaml | 19 ++++++++++++++ pelican/wings-endpointslice.yaml | 18 +++++++++++++ pelican/wings-httproute.yaml | 25 +++++++++++++++++++ pelican/wings-svc.yaml | 11 ++++++++ 6 files changed, 94 insertions(+) create mode 100644 envoy-gateway/pelican/wings-certificate.yaml create mode 100644 envoy-gateway/pelican/wings-gateway-patch.yaml create mode 100644 pelican/wings-endpointslice.yaml create mode 100644 pelican/wings-httproute.yaml create mode 100644 pelican/wings-svc.yaml diff --git a/envoy-gateway/kustomization.yaml b/envoy-gateway/kustomization.yaml index 59fba79..09b1bee 100644 --- a/envoy-gateway/kustomization.yaml +++ b/envoy-gateway/kustomization.yaml @@ -47,6 +47,7 @@ resources: - searxng/certificate.yaml - affine/certificate.yaml - pelican/certificate.yaml + - pelican/wings-certificate.yaml patches: # Internal gateway patches @@ -296,6 +297,12 @@ patches: kind: Gateway name: gateway-internal path: pelican/gateway-patch.yaml + - target: + group: gateway.networking.k8s.io + version: v1 + kind: Gateway + name: gateway-internal + path: pelican/wings-gateway-patch.yaml # Public gateway patches - target: diff --git a/envoy-gateway/pelican/wings-certificate.yaml b/envoy-gateway/pelican/wings-certificate.yaml new file mode 100644 index 0000000..db2f270 --- /dev/null +++ b/envoy-gateway/pelican/wings-certificate.yaml @@ -0,0 +1,14 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: wings-tls + namespace: envoy-gateway +spec: + secretName: wings-tls + privateKey: + rotationPolicy: Always + issuerRef: + name: azure-dns + kind: ClusterIssuer + dnsNames: + - wings.jsme.be diff --git a/envoy-gateway/pelican/wings-gateway-patch.yaml b/envoy-gateway/pelican/wings-gateway-patch.yaml new file mode 100644 index 0000000..9f1ba64 --- /dev/null +++ b/envoy-gateway/pelican/wings-gateway-patch.yaml @@ -0,0 +1,19 @@ +- op: add + path: /spec/listeners/- + value: + name: wings + protocol: HTTPS + port: 443 + hostname: "wings.jsme.be" + allowedRoutes: + namespaces: + from: Selector + selector: + matchLabels: + kubernetes.io/metadata.name: pelican + tls: + mode: Terminate + certificateRefs: + - kind: Secret + name: wings-tls + namespace: envoy-gateway diff --git a/pelican/wings-endpointslice.yaml b/pelican/wings-endpointslice.yaml new file mode 100644 index 0000000..b378f0f --- /dev/null +++ b/pelican/wings-endpointslice.yaml @@ -0,0 +1,18 @@ +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice +metadata: + name: wings + namespace: pelican + labels: + kubernetes.io/service-name: wings +addressType: IPv4 +ports: + - port: 8080 + protocol: TCP +endpoints: + - addresses: + - "10.8.11.50" + conditions: + ready: true + serving: true + terminating: false diff --git a/pelican/wings-httproute.yaml b/pelican/wings-httproute.yaml new file mode 100644 index 0000000..8fd50c1 --- /dev/null +++ b/pelican/wings-httproute.yaml @@ -0,0 +1,25 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: wings-route + namespace: pelican +spec: + parentRefs: + - group: gateway.networking.k8s.io + kind: Gateway + name: gateway-internal + namespace: envoy-gateway + sectionName: wings + hostnames: + - "wings.jsme.be" + rules: + - matches: + - path: + type: PathPrefix + value: / + backendRefs: + - name: wings + port: 8080 + kind: Service + group: "" + weight: 1 diff --git a/pelican/wings-svc.yaml b/pelican/wings-svc.yaml new file mode 100644 index 0000000..9148f4c --- /dev/null +++ b/pelican/wings-svc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: wings + namespace: pelican +spec: + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + type: ClusterIP