20077f1029
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>
35 lines
740 B
YAML
35 lines
740 B
YAML
---
|
|
apiVersion: gateway.networking.k8s.io/v1
|
|
kind: TLSRoute
|
|
metadata:
|
|
name: haproxy
|
|
namespace: haproxy
|
|
labels:
|
|
app: haproxy
|
|
spec:
|
|
hostnames:
|
|
- sonarr.main.unkin.net
|
|
- radarr.main.unkin.net
|
|
- lidarr.main.unkin.net
|
|
- readarr.main.unkin.net
|
|
- prowlarr.main.unkin.net
|
|
- nzbget.main.unkin.net
|
|
- jellyfin.main.unkin.net
|
|
- fafflix.unkin.net
|
|
- git.unkin.net
|
|
- grafana.unkin.net
|
|
- dashboard.ceph.unkin.net
|
|
- auth.unkin.net
|
|
parentRefs:
|
|
- group: gateway.networking.k8s.io
|
|
kind: Gateway
|
|
name: haproxy
|
|
sectionName: https-passthrough
|
|
rules:
|
|
- backendRefs:
|
|
- group: ""
|
|
kind: Service
|
|
name: haproxy
|
|
port: 443
|
|
weight: 1
|