feat(stalwart): deploy Stalwart mail server with CNPG and S3
- stalwart namespace with Deployment + HPA (2-6 replicas) - CNPG PostgreSQL cluster (3 instances, 20Gi cephrbd-fast-delete) with PgBouncer pooler - S3/Ceph-RGW for blob storage (stalwart-maildata bucket, lz4 compressed) - Secrets from Vault: postgres-credentials, s3-credentials, stalwart-admin - TLS cert via cert-manager (vault-issuer) for mail.main.unkin.net - SMTP relay on port 25 (internal ClusterIP, trusted pod CIDRs) - Submission on port 587, IMAP 143/993, HTTPS 443 via LoadBalancer - HTTP port 8080 for Traefik reverse proxy (web admin at mail.k8s.syd1.au.unkin.net) - Outbound mail routed through postfix.mailgateway.svc.cluster.local:25 - Spam filtering offloaded to postfix/rspamd (disabled internally)
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
# TLS cert for stalwart's own HTTPS/IMAPS/STARTTLS listeners (mail.main.unkin.net)
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: stalwart-tls
|
||||
namespace: stalwart
|
||||
spec:
|
||||
secretName: stalwart-tls
|
||||
issuerRef:
|
||||
name: vault-issuer
|
||||
kind: ClusterIssuer
|
||||
commonName: mail.main.unkin.net
|
||||
dnsNames:
|
||||
- mail.main.unkin.net
|
||||
privateKey:
|
||||
size: 4096
|
||||
algorithm: RSA
|
||||
---
|
||||
# TLS cert for Traefik Gateway (internal k8s admin URL)
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: stalwart-gateway-tls
|
||||
namespace: stalwart
|
||||
spec:
|
||||
secretName: stalwart-gateway-tls
|
||||
issuerRef:
|
||||
name: vault-issuer
|
||||
kind: ClusterIssuer
|
||||
commonName: mail.k8s.syd1.au.unkin.net
|
||||
dnsNames:
|
||||
- mail.k8s.syd1.au.unkin.net
|
||||
privateKey:
|
||||
size: 4096
|
||||
algorithm: RSA
|
||||
Reference in New Issue
Block a user