Merge remote-tracking branch 'origin/main' into benvin/mail-sieve-reconcile
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
|
||||
@@ -34,6 +34,9 @@ spec:
|
||||
- --file
|
||||
- /plan/plan.ndjson
|
||||
env:
|
||||
# the cli caches the server schema under $HOME/.cache
|
||||
- name: HOME
|
||||
value: /tmp
|
||||
- name: STALWART_URL
|
||||
value: http://stalwart.mail.svc:8080
|
||||
- name: STALWART_USER
|
||||
@@ -63,6 +66,8 @@ spec:
|
||||
- name: plan
|
||||
mountPath: /plan
|
||||
readOnly: true
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
containers:
|
||||
- name: restart
|
||||
image: registry.k8s.io/kubectl:v1.33.13
|
||||
@@ -71,6 +76,9 @@ spec:
|
||||
- restart
|
||||
- statefulset/stalwart
|
||||
- --namespace=mail
|
||||
env:
|
||||
- name: HOME
|
||||
value: /tmp
|
||||
securityContext:
|
||||
runAsUser: 65532
|
||||
runAsGroup: 65532
|
||||
@@ -86,6 +94,9 @@ spec:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 32Mi
|
||||
volumeMounts:
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
volumes:
|
||||
- name: plan
|
||||
configMap:
|
||||
@@ -93,3 +104,5 @@ spec:
|
||||
items:
|
||||
- key: plan.ndjson
|
||||
path: plan.ndjson
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
|
||||
Reference in New Issue
Block a user