Move the haproxy edge behind the external Traefik (#492)
The haproxy edge holds its own DMZ VIP, a second public entry point alongside traefik-external that must be firewalled and DNS'd separately. Traefik can front it with TLS passthrough, leaving haproxy's certs and backends untouched. - Add a `traefik-external` Gateway: HTTP :80 plus Passthrough TLS :443. - TLSRoute the 12 `fe_https.map` hostnames to haproxy:443; HTTPRoute 301s :80. - Make the Service ClusterIP on 443 only, releasing 198.18.199.1. - Drop `fe_http`, `be_letsencrypt` and `fe_http.map`; certs are DNS-01 only. Client IP now reads as a Traefik pod — the Gateway provider cannot emit PROXY protocol to a TLSRoute backend. `sessionAffinity` goes too (it would pin Traefik pods, not clients); SRVNAME cookies keep persistence. Reviewed-on: #492 Co-authored-by: unkin-agent <unkin-agent@unkin.net> Co-committed-by: unkin-agent <unkin-agent@unkin.net>
This commit was merged in pull request #492.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
---
|
||||
# External (DMZ) front for the haproxy edge on the traefik-external LB VIP
|
||||
# 198.18.199.0. The :443 listener is TLS Passthrough: haproxy owns the three
|
||||
# wildcard certs and terminates behind Traefik, so there are no certificateRefs
|
||||
# here. Listener hostnames are deliberately unset and the routes carry the
|
||||
# explicit hostname list instead; allowedRoutes Same keeps other namespaces off
|
||||
# these listeners.
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: Gateway
|
||||
metadata:
|
||||
name: haproxy
|
||||
namespace: haproxy
|
||||
labels:
|
||||
traefik.io/instance: external
|
||||
spec:
|
||||
gatewayClassName: traefik-external
|
||||
listeners:
|
||||
- name: http
|
||||
port: 80
|
||||
protocol: HTTP
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Same
|
||||
- name: https-passthrough
|
||||
port: 443
|
||||
protocol: TLS
|
||||
tls:
|
||||
mode: Passthrough
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Same
|
||||
Reference in New Issue
Block a user