Files
argocd-apps/apps/base/mail/httproute.yaml
T
unkin-agent 82b86072ee Deploy Stalwart into the mail namespace (#539)
Stalwart is the mailbox server for the mail migration and runs multi-node from the start, so it needs a coordinator and a shared in-memory store.

- run Stalwart as a 3-replica StatefulSet with a headless Service, topology spread and a PDB
- add the `mail-valkey` ValkeyCluster as in-memory store and coordinator
- keep data in CNPG Postgres and blobs in cephrgw S3
- converge settings from plan.ndjson in a PostSync Job, then roll the StatefulSet
- add a global `spam-to-junk` Sieve script filing rspamd-tagged mail into Junk and stopping
- exempt LMTP from the inbound throttles, as all inbound mail comes from the smarthost
- label pods as smarthost clients and move the client LoadBalancer to 198.18.200.18

Reviewed-on: #539
Co-authored-by: unkin-agent <unkin-agent@unkin.net>
Co-committed-by: unkin-agent <unkin-agent@unkin.net>
2026-10-13 20:58:08 +11:00

50 lines
1016 B
YAML

---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: stalwart-external-http-redirect
namespace: mail
spec:
hostnames:
- mail.unkin.net
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: stalwart-external
sectionName: http
rules:
- filters:
- type: RequestRedirect
requestRedirect:
scheme: https
statusCode: 301
matches:
- path:
type: PathPrefix
value: /
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: stalwart-external
namespace: mail
spec:
hostnames:
- mail.unkin.net
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: stalwart-external
sectionName: https
rules:
- backendRefs:
- group: ""
kind: Service
name: stalwart
port: 8080
weight: 1
matches:
- path:
type: PathPrefix
value: /