mail-services/charts/mailu/templates/envvars-configmap.yaml
2025-05-11 02:04:51 +03:00

178 lines
7.7 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: {{ printf "%s-envvars" (include "mailu.fullname" .) }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
data:
ADMIN: {{ .Values.admin.enabled | quote }}
ANTIVIRUS_ACTION: {{ .Values.rspamd.antivirusAction | quote }}
AUTH_RATELIMIT_EXEMPTION_LENGTH: {{ .Values.limits.authRatelimit.exemptionLength | quote }}
AUTH_RATELIMIT_EXEMPTION: {{ .Values.limits.authRatelimit.exemption | quote }}
AUTH_RATELIMIT_IP_V4_MASK: {{ .Values.limits.authRatelimit.ipv4Mask | quote }}
AUTH_RATELIMIT_IP_V6_MASK: {{ .Values.limits.authRatelimit.ipv6Mask | quote }}
AUTH_RATELIMIT_IP: {{ .Values.limits.authRatelimit.ip | quote }}
AUTH_RATELIMIT_USER: {{ .Values.limits.authRatelimit.user | quote }}
AUTH_REQUIRE_TOKENS: {{ .Values.authRequireTokens | quote }}
BABEL_DEFAULT_LOCALE: "en"
BABEL_DEFAULT_TIMEZONE: "UTC"
BOOTSTRAP_SERVE_LOCAL: "true"
COMPRESSION_LEVEL: {{ .Values.dovecot.compressionLevel | quote }}
COMPRESSION: {{ .Values.dovecot.compression | quote }}
CREDENTIAL_ROUNDS: {{ .Values.credentialRounds | quote }}
DB_FLAVOR: {{ include "mailu.database.type" . }}
DB_HOST: {{ printf "%s:%s" (include "mailu.database.host" .) (include "mailu.database.port" .) | quote}}
DB_NAME: {{ include "mailu.database.name" . }}
# DB_PW => via secret
DB_USER: {{ include "mailu.database.username" . }}
DEBUG_ASSETS: ""
DEBUG: "false"
DEBUG_PROFILER: "false"
DEBUG_TB_INTERCEPT_REDIRECTS: "false"
DEFAULT_QUOTA: "1000000000"
DEFAULT_SPAM_THRESHOLD: "80"
DEFER_ON_TLS_ERROR: {{ .Values.tls.deferOnError | quote }}
DISABLE_STATISTICS: "false"
DKIM_PATH: "/dkim/{domain}.{selector}.key"
DKIM_SELECTOR: "dkim"
DMARC_RUA: {{ .Values.dmarc.rua | quote }}
DMARC_RUF: {{ .Values.dmarc.ruf | quote }}
DOMAIN_REGISTRATION: "false"
DOMAIN: {{ .Values.domain | quote }}
FETCHMAIL_DELAY: {{ .Values.fetchmail.delay | quote }}
FETCHMAIL_ENABLED: {{ .Values.fetchmail.enabled | quote }}
HOSTNAMES: {{ join "," .Values.hostnames }}
INBOUND_TLS_ENFORCE: {{ .Values.tls.inboundEnforce | quote }}
INSTANCE_ID_PATH: "/data/instance"
KUBERNETES_INGRESS: {{ .Values.ingress.enabled | quote }}
LETSENCRYPT_SHORTCHAIN: {{ .Values.letsencryptShortchain | quote }}
LOG_LEVEL: {{ .Values.logLevel | quote }}
LOGO_BACKGROUND: {{ .Values.customization.logoBackground | quote }}
LOGO_URL: {{ .Values.customization.logoUrl | quote }}
MAILU_HELM_CHART: "true"
# Temporary workaround for https://github.com/Mailu/helm-charts/issues/309 until MAILU_HELM_CHART is taken into consideration in Mailu
I_KNOW_MY_SETUP_DOESNT_FIT_REQUIREMENTS_AND_WONT_FILE_ISSUES_WITHOUT_PATCHES: "true"
MEMORY_SESSIONS: "false"
MESSAGE_RATELIMIT_EXEMPTION: {{ .Values.limits.messageRatelimit.exemption | quote }}
MESSAGE_RATELIMIT: {{ .Values.limits.messageRatelimit.value | quote }}
MESSAGE_SIZE_LIMIT: "{{ mul .Values.limits.messageSizeLimitInMegabytes (mul 1024 1024) }}"
OUTBOUND_TLS_LEVEL: {{ .Values.tls.outboundLevel | quote }}
PERMANENT_SESSION_LIFETIME: {{ .Values.permanentSessionLifetime | int64 | quote }}
PORTS: {{ include "mailu.enabledPorts" . }}
POSTMASTER: {{ .Values.postmaster | quote }}
PROXY_AUTH_CREATE: {{ .Values.proxyAuth.create | quote }}
PROXY_AUTH_HEADER: {{ .Values.proxyAuth.header | quote }}
PROXY_AUTH_WHITELIST: {{ .Values.proxyAuth.whitelist | quote }}
PROXY_PROTOCOL: {{ include "mailu.proxyProtocolPorts" . | quote }}
RATELIMIT_STORAGE_URL: {{ printf "redis://%s:%s/%s" (include "mailu.redis.serviceFqdn" .) (include "mailu.redis.port" .) (include "mailu.redis.db.rateLimit" .) }}
REAL_IP_FROM: {{ .Values.ingress.realIpFrom | quote }}
REAL_IP_HEADER: {{ .Values.ingress.realIpHeader | quote }}
RECAPTCHA_PRIVATE_KEY: ""
RECAPTCHA_PUBLIC_KEY: ""
RECIPIENT_DELIMITER: {{ .Values.recipientDelimiter | quote }}
REJECT_UNLISTED_RECIPIENT: "yes"
RELAYHOST: {{ .Values.externalRelay.host | quote }}
RELAYNETS: {{ (join "," .Values.externalRelay.networks) | quote }}
ROUNDCUBE_DB_FLAVOR: {{ include "mailu.database.type" . }}
# SECRET_KEY => via secret
SESSION_COOKIE_SECURE: {{ .Values.sessionCookieSecure | quote }}
# SESSION_KEY_BITS: 128 # TODO: Fix Mailu to parse int when from string
SESSION_TIMEOUT: {{ .Values.sessionTimeout | quote }}
SITENAME: {{ .Values.customization.siteName | quote }}
SQLALCHEMY_DATABASE_URI: "sqlite:////data/main.db"
SQLALCHEMY_TRACK_MODIFICATIONS: "false"
SQLITE_DATABASE_FILE: "data/main.db"
STATS_ENDPOINT: "19.{}.stats.mailu.io"
SUBNET6: {{ .Values.subnet6 | quote }}
SUBNET: {{ .Values.subnet | quote }}
TEMPLATES_AUTO_RELOAD: "true"
TLS_FLAVOR: {{ include "mailu.tlsFlavor" . }}
TLS_PERMISSIVE: "true"
TZ: {{ .Values.timezone | quote }}
WEB_ADMIN: {{ .Values.admin.uri | quote }}
WEBSITE: {{ .Values.customization.website | quote }}
WELCOME_BODY: {{ .Values.welcomeMessage.body | quote }}
WELCOME_SUBJECT: {{ .Values.welcomeMessage.subject | quote }}
WELCOME: {{ .Values.welcomeMessage.enabled | quote}}
WILDCARD_SENDERS: {{ .Values.wildcardSenders | join "," | quote }}
# Addresses
ADMIN_ADDRESS: {{ include "mailu.admin.serviceFqdn" . }}
ANTISPAM_ADDRESS: {{ include "mailu.rspamd.serviceFqdn" . }}
FRONT_ADDRESS: {{ include "mailu.front.serviceFqdn" . }}
IMAP_ADDRESS: {{ include "mailu.dovecot.serviceFqdn" . }}
REDIS_ADDRESS: {{ include "mailu.redis.serviceFqdn" . }}
SMTP_ADDRESS: {{ include "mailu.postfix.serviceFqdn" . }}
{{- if not (eq (include "mailu.database.type" .) "sqlite") }}
{{- if .Values.webmail.enabled }}
ROUNDCUBE_DB_USER: {{ include "mailu.database.roundcube.username" . }}
ROUNDCUBE_DB_NAME: {{ include "mailu.database.roundcube.name" . }}
ROUNDCUBE_DB_HOST: {{ printf "%s:%s" (include "mailu.database.host" .) (include "mailu.database.port" .) | quote}}
{{- end }}
{{- end }}
{{- if .Values.initialAccount.enabled }}
INITIAL_ADMIN_MODE: {{ .Values.initialAccount.mode | quote }}
INITIAL_ADMIN_ACCOUNT: {{ .Values.initialAccount.username | quote }}
INITIAL_ADMIN_DOMAIN: {{ .Values.initialAccount.domain | quote }}
{{- end }}
{{- if .Values.webmail.enabled }}
WEBMAIL: {{ .Values.webmail.type | quote }}
WEB_WEBMAIL: {{ .Values.webmail.uri | quote }}
WEBMAIL_ADDRESS: {{ include "mailu.webmail.serviceFqdn" . }}
WEBROOT_REDIRECT: {{ .Values.webmail.uri | quote }}
ROUNDCUBE_PLUGINS: {{ (join "," .Values.webmail.roundcubePlugins) | quote }}
{{- else }}
WEBMAIL: none
WEBMAIL_ADDRESS: localhost
WEB_WEBMAIL: /
WEBROOT_REDIRECT: /admin/
{{- end }}
{{- if .Values.webdav.enabled }}
WEBDAV: radicale
WEBDAV_ADDRESS: {{ include "mailu.webdav.serviceFqdn" . }}
{{- else }}
WEBDAV: none
WEBDAV_ADDRESS: localhost
{{- end }}
{{- if .Values.clamav.enabled }}
ANTIVIRUS: clamav
ANTIVIRUS_ADDRESS: {{ include "mailu.clamav.serviceFqdn" . }}
{{- else }}
ANTIVIRUS: none
ANTIVIRUS_ADDRESS: localhost
{{- end }}
{{- if .Values.oletools.enabled }}
OLETOOLS_ADDRESS: {{ include "mailu.oletools.serviceFqdn" . }}
SCAN_MACROS: "true"
{{- else }}
SCAN_MACROS: "false"
{{- end }}
{{- if .Values.tika.enabled }}
FULL_TEXT_SEARCH: {{ include "mailu.fullTextSearch" . }}
FULL_TEXT_SEARCH_ATTACHMENTS: "true"
FTS_ATTACHMENTS_ADDRESS: {{ include "mailu.tika.serviceFqdn" . }}
{{- else }}
FULL_TEXT_SEARCH_ATTACHMENTS: "false"
{{- end}}
{{- if .Values.api.enabled }}
API: "true"
WEB_API: {{ .Values.api.webPath | quote }}
{{- else }}
API: "false"
{{- end }}