Terminate haproxy edge TLS at Traefik to fix coalesced-connection 404s
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: BackendTLSPolicy
|
||||
metadata:
|
||||
name: haproxy
|
||||
namespace: haproxy
|
||||
labels:
|
||||
app: haproxy
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: ""
|
||||
kind: Service
|
||||
name: haproxy
|
||||
validation:
|
||||
wellKnownCACertificates: System
|
||||
hostname: git.unkin.net
|
||||
@@ -1,10 +1,8 @@
|
||||
---
|
||||
# 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.
|
||||
# 198.18.199.0. Traefik terminates TLS so HTTP/2 connections coalesced from
|
||||
# other *.unkin.net hosts still route by Host; the hop to haproxy is re-encrypted via
|
||||
# BackendTLSPolicy. Routes carry the explicit hostname list.
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: Gateway
|
||||
metadata:
|
||||
@@ -21,11 +19,21 @@ spec:
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Same
|
||||
- name: https-passthrough
|
||||
- name: https
|
||||
port: 443
|
||||
protocol: TLS
|
||||
protocol: HTTPS
|
||||
tls:
|
||||
mode: Passthrough
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: wildcard-unkin-net-tls
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: wildcard-main-unkin-net-tls
|
||||
- group: ""
|
||||
kind: Secret
|
||||
name: wildcard-ceph-unkin-net-tls
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Same
|
||||
|
||||
@@ -34,3 +34,36 @@ spec:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
---
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
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
|
||||
- dashboard.ceph.unkin.net
|
||||
- auth.unkin.net
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: haproxy
|
||||
sectionName: https
|
||||
rules:
|
||||
- backendRefs:
|
||||
- group: ""
|
||||
kind: Service
|
||||
name: haproxy
|
||||
port: 443
|
||||
weight: 1
|
||||
|
||||
@@ -8,7 +8,7 @@ resources:
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
- gateway.yaml
|
||||
- tlsroute.yaml
|
||||
- backendtlspolicy.yaml
|
||||
- httproute.yaml
|
||||
- pdb.yaml
|
||||
- vpa.yaml
|
||||
|
||||
@@ -6,7 +6,7 @@ metadata:
|
||||
namespace: haproxy
|
||||
spec:
|
||||
type: ClusterIP
|
||||
# Reached only by the external Traefik's TLS-passthrough TLSRoute, so the
|
||||
# Reached only by the external Traefik (re-encrypted HTTPRoute), so the
|
||||
# peer address here is a Traefik pod, not the client. sessionAffinity is
|
||||
# deliberately absent: keyed on ClientIP it would pin whole Traefik pods,
|
||||
# not clients. Backend persistence rests on the per-backend SRVNAME cookie.
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
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
|
||||
- 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
|
||||
Reference in New Issue
Block a user