cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit b70624b54df6367e554f7b02ce58c18c28c75d63
parent a45fe38e091d3d0d746dc391d119c5da92f757b0
Author: MTRNord <MTRNord@users.noreply.github.com>
Date:   Fri,  8 Aug 2025 12:09:51 +0200

Proxy protocol maybe?

Diffstat:
Mapps/talos_cluster/envoy-gateway/gateway_settings.yaml | 16+++++++++++++---
Mapps/talos_cluster/mailserver/release.yaml | 35++++++++++++++++-------------------
Minfrastructure_talos/configs/cnpg-cluster.yaml | 41++++++++++++++++++++---------------------
3 files changed, 49 insertions(+), 43 deletions(-)

diff --git a/apps/talos_cluster/envoy-gateway/gateway_settings.yaml b/apps/talos_cluster/envoy-gateway/gateway_settings.yaml @@ -385,16 +385,26 @@ spec: apiVersion: gateway.envoyproxy.io/v1alpha1 kind: ClientTrafficPolicy metadata: - name: enable-proxy-protocol-policy + name: email-policy namespace: envoy-gateway spec: targetRefs: - group: gateway.networking.k8s.io kind: Gateway - name: envoy-gateway + name: email-gateway + # WARNING: Cilium 1.17+ only supports the correct ipMode magic for this to work. Hence it currently fails + enableProxyProtocol: true +--- +apiVersion: gateway.envoyproxy.io/v1alpha1 +kind: ClientTrafficPolicy +metadata: + name: enable-proxy-protocol-policy + namespace: envoy-gateway +spec: + targetRefs: - group: gateway.networking.k8s.io kind: Gateway - name: email-gateway + name: envoy-gateway # WARNING: Cilium 1.17+ only supports the correct ipMode magic for this to work. Hence it currently fails enableProxyProtocol: true # Alternative to enableProxyProtocol: true diff --git a/apps/talos_cluster/mailserver/release.yaml b/apps/talos_cluster/mailserver/release.yaml @@ -225,8 +225,7 @@ spec: dovecot.cf: create: true path: dovecot.cf - data: - "{{- if .Values.proxyProtocol.enabled }}\n haproxy_trusted_networks = {{ .Values.proxyProtocol.trustedNetworks + data: "{{- if .Values.proxyProtocol.enabled }}\n haproxy_trusted_networks = {{ .Values.proxyProtocol.trustedNetworks }}\n\n {{- if and (.Values.deployment.env.ENABLE_IMAP) (not .Values.deployment.env.SMTP_ONLY) }}\n service imap-login {\n inet_listener imap {\n port = 143\n }\n\n inet_listener imaps {\n \ port = 993\n ssl = yes\n }\n\n inet_listener imap_proxy {\n haproxy @@ -275,8 +274,7 @@ spec: user-patches.sh: create: true path: user-patches.sh - data: - "#!/bin/bash\n\n{{- if .Values.proxyProtocol.enabled }}\n# Make sure to keep this file in sync with + data: "#!/bin/bash\n\n{{- if .Values.proxyProtocol.enabled }}\n# Make sure to keep this file in sync with https://github.com/docker-mailserver/docker-mailserver/blob/master/target/postfix/master.cf!\ncat <<EOS >> /etc/postfix/master.cf\n\n# Submission with proxy\n10587 inet n - n - - \ smtpd\n -o syslog_name=postfix/submission\n -o smtpd_tls_security_level=encrypt\n -o smtpd_sasl_auth_enable=yes\n @@ -307,8 +305,8 @@ spec: sectionName: smtp rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 25 + - name: mailserver-docker-mailserver + port: 25 --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute @@ -324,8 +322,8 @@ spec: sectionName: submissions rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 465 + - name: mailserver-docker-mailserver + port: 465 --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute @@ -341,8 +339,8 @@ spec: sectionName: submission rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 587 + - name: mailserver-docker-mailserver + port: 587 --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute @@ -358,8 +356,8 @@ spec: sectionName: imap rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 143 + - name: mailserver-docker-mailserver + port: 143 --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute @@ -375,9 +373,8 @@ spec: sectionName: imaps rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 993 - + - name: mailserver-docker-mailserver + port: 993 --- apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy @@ -417,8 +414,8 @@ spec: - rspamd.midnightthoughts.space rules: - backendRefs: - - name: mailserver-docker-mailserver - port: 11334 + - name: mailserver-docker-mailserver + port: 11334 timeouts: - request: 240s - backendRequest: 0s + request: 240s + backendRequest: 0s diff --git a/infrastructure_talos/configs/cnpg-cluster.yaml b/infrastructure_talos/configs/cnpg-cluster.yaml @@ -1,4 +1,3 @@ ---- apiVersion: barmancloud.cnpg.io/v1 kind: ObjectStore metadata: @@ -113,7 +112,7 @@ spec: - name: barman-cloud.cloudnative-pg.io isWALArchiver: true parameters: - barmanObjectName: hetzner-base-backup + barmanObjectName: hetzner-base-backup managed: roles: - name: freshrss @@ -121,116 +120,116 @@ spec: login: true superuser: false passwordSecret: - name: freshrss + name: freshrss - name: meowlnir ensure: present login: true comment: Read Only Access for synapse required but RW to meowlnir db superuser: false passwordSecret: - name: meowlnir + name: meowlnir - name: connectivity-tester-stage ensure: present login: true superuser: false passwordSecret: - name: connectivity-tester-stage + name: connectivity-tester-stage - name: connectivity-tester ensure: present login: true superuser: false passwordSecret: - name: connectivity-tester + name: connectivity-tester - name: draupnir_synapse ensure: present login: true superuser: false passwordSecret: - name: draupnir-synapse + name: draupnir-synapse - name: authentik ensure: present login: true superuser: false passwordSecret: - name: authentik + name: authentik - name: ejabberd ensure: present login: true superuser: false passwordSecret: - name: ejabberd + name: ejabberd - name: vaultwarden ensure: present login: true superuser: false passwordSecret: - name: vaultwarden + name: vaultwarden - name: mastodon ensure: present login: true superuser: false passwordSecret: - name: mastodon + name: mastodon - name: openproject ensure: present login: true superuser: false passwordSecret: - name: openproject + name: openproject - name: plausible ensure: present login: true superuser: false passwordSecret: - name: plausible + name: plausible - name: coder ensure: present login: true superuser: false passwordSecret: - name: coder + name: coder - name: matrix_auth ensure: present login: true superuser: false passwordSecret: - name: matrix-auth + name: matrix-auth - name: cachet ensure: present login: true superuser: false passwordSecret: - name: cachet + name: cachet - name: docuseal ensure: present login: true superuser: false passwordSecret: - name: docuseal + name: docuseal - name: bugzilla ensure: present login: true superuser: false passwordSecret: - name: bugzilla + name: bugzilla - name: rundeck ensure: present login: true superuser: false passwordSecret: - name: rundeck + name: rundeck - name: plane ensure: present login: true superuser: false passwordSecret: - name: plane + name: plane - name: gotosocial ensure: present login: true superuser: false passwordSecret: - name: gotosocial + name: gotosocial storage: storageClass: hcloud-volumes size: 15Gi