Interlegis Public Rancher Charts for Kubernetes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
4.0 KiB

apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "rspamd.fullname" . }}
namespace: {{ .Release.Namespace | quote }}
labels: {{- include "rspamd.labels" . | nindent 4 }}
data:
ratelimit.conf: |-
rates {
# Limit for all mail per recipient (default rate 70 per day)
to = "{{ .Values.rspamd.rateLimits.to }}";
# Limit for all mail per one source ip (default rate 150 per day)
to_ip = "{{ .Values.rspamd.rateLimits.toIp }}";
# Limit for all mail per one source ip and from address (default rate 100 per day)
to_ip_from = "{{ .Values.rspamd.rateLimits.toIpFrom }}";
# Limit for all bounce mail (rate 2 per hour)
#bounce_to = "2 / 1h";
# Limit for bounce mail per one source ip (rate 1 per hour)
#bounce_to_ip = "1 / 1h";
# Limit for all mail per authenticated user (default rate 100 per day)
user = "{{ .Values.rspamd.rateLimits.user }}";
}
whitelisted_rcpts = "{{ .Values.rspamd.rateLimits.whitelisted.rcpts }}";
whitelisted_ip = "/etc/rspamd/local.d/ratelimit_whitelist.map";
max_rcpt = {{ .Values.rspamd.rateLimits.maxRcpt }};
ratelimit_whitelist.map: |-
{{- range .Values.rspamd.rateLimits.whitelisted.ips }}
{{ . }}
{{- end }}
redis.conf: |-
servers = "{{ printf "%s-%s" .Release.Name "redis-master" | trunc 63 | trimSuffix "-" }}";
db = "3";
password = "{{ .Values.redis.auth.password }}";
worker-proxy.inc: |-
milter = {{ .Values.rspamd.workerProxy.milter }};
bind_socket = "*:{{ .Values.service.ports.milter }}";
timeout = {{ .Values.rspamd.workerProxy.timeout }};
upstream "local" {
default = yes; # Self-scan upstreams are always default
self_scan = yes; # Enable self-scan
}
count = {{ .Values.rspamd.workerProxy.count }}; # Spawn more processes in self-scan mode
max_retries = {{ .Values.rspamd.workerProxy.maxRetries }}; # How many times master is queried in case of failure
discard_on_reject = {{ .Values.rspamd.workerProxy.discardOnReject }}; # Discard message instead of rejection
quarantine_on_reject = {{ .Values.rspamd.workerProxy.quarantineOnReject }}; # Tell MTA to quarantine rejected messages
spam_header = "{{ .Values.rspamd.workerProxy.spamHeader }}"; # Use the specific spam header
reject_message = "{{ .Values.rspamd.workerProxy.rejectMessage }}"; # Use custom rejection message
worker-normal.inc: |-
{{ if eq .Values.rspamd.workerProxy.milter "yes" -}}
# Disable worker-normal in Milter mode
worker "normal" {
enabled = false;
}
{{- end }}
worker-controller.inc: |-
secure_ip = "127.0.0.1";
password = "{{ .Values.rspamd.password }}";
enable_password = "{{ .Values.rspamd.password }}";
dkim_signing.conf: |-
{{- range $key, $value := .Values.rspamd.dkimSigning }}
{{ if or (eq $value "true") (eq $value "false") -}}
{{ $key }} = {{ $value }};
{{- else -}}
{{ $key }} = "{{ $value }}";
{{- end -}}
{{- end }}
milter_headers.conf: |-
extended_spam_headers = {{ .Values.rspamd.milter.headers.extended_spam_headers }};
skip_local = {{ .Values.rspamd.milter.headers.skip_local }};
skip_authenticated = {{ .Values.rspamd.milter.headers.skip_authenticated }};
classifier-bayes.conf: |-
backend = "redis";
servers = "{{ printf "%s-%s" .Release.Name "redis-master" | trunc 63 | trimSuffix "-" }}:6379";
password = "{{ .Values.redis.auth.password }}";
autolearn = true
actions.conf: |-
reject = {{ .Values.rspamd.actions.reject }}; # Reject when reaching this score
add_header = {{ .Values.rspamd.actions.add_header }}; # Add header when reaching this score
greylist = {{ .Values.rspamd.actions.greylist }}; # Apply greylisting when reaching this score (will emit `soft reject action`)
antivirus.conf: |-
clamav {
{{- range $key, $value := .Values.rspamd.antivirus.clamav }}
{{ if or (eq $value "true") (eq $value "false") -}}
{{ $key }} = {{ $value }};
{{- else -}}
{{ $key }} = "{{ $value }}";
{{- end -}}
{{- end }}
}