cluster

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

commit a8a743659883c8113fedd99ff4fbd1e19c7494d1
parent 9fd08d87ecf5d9e7438a81f493204175f22aaac3
Author: MTRNord <MTRNord@users.noreply.github.com>
Date:   Fri,  8 Aug 2025 12:18:25 +0200

Proxy protocol maybe?

Diffstat:
Mapps/talos_cluster/mailserver/release.yaml | 80++-----------------------------------------------------------------------------
1 file changed, 2 insertions(+), 78 deletions(-)

diff --git a/apps/talos_cluster/mailserver/release.yaml b/apps/talos_cluster/mailserver/release.yaml @@ -214,84 +214,8 @@ spec: enabled: true secret: rspamd.midnightthoughts.space-tls proxyProtocol: - enabled: false - trustedNetworks: 10.0.0.0/16 - configMaps: - custom-commands.conf: - create: true - path: rspamd/custom-commands.conf - data: | - set-option-for-controller password "$2$q19y9w4kqeh1568zhy1ipszk6zx5usid$n3giktipbsr7pbef9b6n566jk4ggd147qrrhg5xtmauh6w4yoj5y" - dovecot.cf: - create: true - path: dovecot.cf - 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 - = yes\n port = 10143\n ssl = no\n }\n\n inet_listener imaps_proxy {\n haproxy - = yes\n port = 10993\n ssl = yes\n }\n } \n {{- end -}}\n\n {{- if and (.Values.deployment.env.ENABLE_POP3) - (not .Values.deployment.env.SMTP_ONLY) }}\n service pop3-login {\n inet_listener pop3 {\n port - = 110\n }\n\n inet_listener pop3s {\n port = 995\n ssl = yes\n }\n\n - \ inet_listener pop3_proxy {\n haproxy = yes\n port = 10110\n ssl = no\n - \ }\n\n inet_listener pop3s_proxy {\n haproxy = yes\n port = 10995\n ssl - = yes\n } \n }\n {{- end -}}\n{{- end -}}\n" - fts-xapian-plugin.conf: - create: true - path: /etc/dovecot/conf.d/10-plugin.conf - data: | - {{- if .Values.dovecot.fullTextSearch.enabled }} - mail_plugins = $mail_plugins fts fts_xapian - - plugin { - fts_decoder = decode2text - } - - plugin { - fts = xapian - fts_xapian = partial=3 full=20 verbose={{ .Values.dovecot.fullTextSearch.verbose }} - - fts_autoindex = yes - fts_enforced = yes - - # Index attachements - fts_decoder = decode2text - } - - service indexer-worker { - # limit size of indexer-worker RAM usage, ex: 512MB, 1GB, 2GB - vsz_limit = {{ .Values.dovecot.fullTextSearch.resources.memory }} - } - - service decode2text { - executable = script /usr/lib/dovecot/decode2text.sh - user = dovecot - unix_listener decode2text { - mode = 0666 - } - } - {{- end -}} - 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 - 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 - \ -o smtpd_sasl_type=dovecot\n -o smtpd_reject_unlisted_recipient=no\n -o smtpd_sasl_authenticated_header=yes\n - \ -o smtpd_client_restrictions=permit_sasl_authenticated,reject\n -o smtpd_relay_restrictions=permit_sasl_authenticated,reject\n - \ -o smtpd_sender_restrictions=\\$mua_sender_restrictions\n -o smtpd_discard_ehlo_keywords=\n -o milter_macro_daemon_name=ORIGINATING\n - \ -o cleanup_service_name=sender-cleanup\n -o smtpd_upstream_proxy_protocol=haproxy \n\n# Submissions - with proxy\n10465 inet n - n - - smtpd\n -o syslog_name=postfix/submissions\n - \ -o smtpd_tls_wrappermode=yes\n -o smtpd_sasl_auth_enable=yes\n -o smtpd_sasl_type=dovecot\n -o smtpd_reject_unlisted_recipient=no\n - \ -o smtpd_sasl_authenticated_header=yes\n -o smtpd_client_restrictions=permit_sasl_authenticated,reject\n - \ -o smtpd_relay_restrictions=permit_sasl_authenticated,reject\n -o smtpd_sender_restrictions=\\$mua_sender_restrictions\n - \ -o smtpd_discard_ehlo_keywords=\n -o milter_macro_daemon_name=ORIGINATING\n -o cleanup_service_name=sender-cleanup\n - \ -o smtpd_upstream_proxy_protocol=haproxy\n\n# Smtp with proxy\n12525 inet n - n - - \ 1 postscreen\n -o syslog_name=postfix/smtp-proxy\n -o postscreen_upstream_proxy_protocol=haproxy\n - \ -o postscreen_cache_map=btree:$data_directory/postscreen_10025_cache\nEOS\n{{- end }}\n" + enabled: true + trustedNetworks: "10.0.0.0/8 192.168.0.0/16 172.16.0.0/12" --- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute