Skip to content

Commit 0ad4d47

Browse files
authored
Merge pull request docker-mailserver#118 from MichaelSp/unittests
restore helm unittests
2 parents 4ec28e2 + 96c4ba3 commit 0ad4d47

15 files changed

+696
-140
lines changed

.github/workflows/on-push-lint-charts.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ env:
1515
KUBE_SCORE_VERSION: 1.17.0
1616
HELM_VERSION: v3.13.2
1717

18-
concurrency:
18+
concurrency:
1919
group: ${{ github.ref }}
2020
cancel-in-progress: true
2121

@@ -44,12 +44,27 @@ jobs:
4444
KUBE_SCORE: /tmp/bin/kube-score
4545
run: .ci/scripts/kube-score.sh
4646

47+
unittest:
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Checkout
51+
uses: actions/checkout@v4
52+
with:
53+
fetch-depth: 0
54+
55+
- name: install helm unittest
56+
run: |
57+
helm plugin install https://github.com/helm-unittest/helm-unittest.git
58+
59+
- name: Run helm unittest
60+
run: helm unittest charts/*
61+
4762
chart-testing:
4863
runs-on: ubuntu-latest
4964
strategy:
5065
matrix:
5166
# Choose from https://hub.docker.com/r/kindest/node/tags
52-
KubeVersion: [1.27.3, 1.28.0, 1.29.0]
67+
KubeVersion: [ 1.27.3, 1.28.0, 1.29.0 ]
5368

5469
steps:
5570
- name: Checkout

charts/docker-mailserver/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
appVersion: "14.0.0"
33
description: A fullstack but simple mailserver (smtp, imap, antispam, antivirus, ssl...) using Docker.
44
name: docker-mailserver
5-
version: 4.0.6
5+
version: 4.0.7
66
sources:
77
- https://github.com/docker-mailserver/docker-mailserver-helm
88
maintainers:

charts/docker-mailserver/templates/deployment.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,6 @@ spec:
263263
{{- if $persistence.enabled }}
264264
- name: {{ $name }}
265265
mountPath: {{ $persistence.mountPath }}
266-
readonly: true
267266
{{- end }}
268267
{{- end }}
269268
{{- end }}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
manifest should match snapshot:
2+
1: |
3+
apiVersion: v1
4+
data:
5+
dovecot.cf: "\nhaproxy_trusted_networks = 10.0.0.0/8 192.168.0.0/16 172.16.0.0/16\nservice 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"
6+
kind: ConfigMap
7+
metadata:
8+
labels:
9+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
10+
chart: docker-mailserver-0.1.0
11+
heritage: Helm
12+
release: RELEASE-NAME
13+
name: dovecot-cf
14+
2: |
15+
apiVersion: v1
16+
data:
17+
fts-xapian-plugin.conf: ""
18+
kind: ConfigMap
19+
metadata:
20+
labels:
21+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
22+
chart: docker-mailserver-0.1.0
23+
heritage: Helm
24+
release: RELEASE-NAME
25+
name: fts-xapian-plugin-conf
26+
3: |
27+
apiVersion: v1
28+
data:
29+
user-patches.sh: "#!/bin/bash\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"
30+
kind: ConfigMap
31+
metadata:
32+
labels:
33+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
34+
chart: docker-mailserver-0.1.0
35+
heritage: Helm
36+
release: RELEASE-NAME
37+
name: user-patches-sh
Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
manifest should match snapshot:
2+
1: |
3+
apiVersion: apps/v1
4+
kind: Deployment
5+
metadata:
6+
labels:
7+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
8+
chart: docker-mailserver-0.1.0
9+
heritage: Helm
10+
release: RELEASE-NAME
11+
name: RELEASE-NAME-docker-mailserver
12+
spec:
13+
replicas: 1
14+
selector:
15+
matchLabels:
16+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
17+
release: RELEASE-NAME
18+
strategy:
19+
type: Recreate
20+
template:
21+
metadata:
22+
labels:
23+
app.kubernetes.io/name: RELEASE-NAME-docker-mailserver
24+
release: RELEASE-NAME
25+
spec:
26+
containers:
27+
- env:
28+
- name: AMAVIS_LOGLEVEL
29+
value: "0"
30+
- name: DOVECOT_INET_PROTOCOLS
31+
value: all
32+
- name: DOVECOT_MAILBOX_FORMAT
33+
value: maildir
34+
- name: ENABLE_AMAVIS
35+
value: "0"
36+
- name: ENABLE_CLAMAV
37+
value: "0"
38+
- name: ENABLE_DNSBL
39+
value: "0"
40+
- name: ENABLE_FAIL2BAN
41+
value: "0"
42+
- name: ENABLE_FETCHMAIL
43+
value: "0"
44+
- name: ENABLE_GETMAIL
45+
value: "0"
46+
- name: ENABLE_IMAP
47+
value: "1"
48+
- name: ENABLE_OPENDKIM
49+
value: "0"
50+
- name: ENABLE_OPENDMARC
51+
value: "0"
52+
- name: ENABLE_POLICYD_SPF
53+
value: "0"
54+
- name: ENABLE_POSTGREY
55+
value: "0"
56+
- name: ENABLE_QUOTAS
57+
value: "1"
58+
- name: ENABLE_RSPAMD
59+
value: "1"
60+
- name: ENABLE_RSPAMD_REDIS
61+
value: "1"
62+
- name: ENABLE_SASLAUTHD
63+
value: "0"
64+
- name: ENABLE_SPAMASSASSIN
65+
value: "0"
66+
- name: ENABLE_SPAMASSASSIN_KAM
67+
value: "0"
68+
- name: ENABLE_SRS
69+
value: "0"
70+
- name: ENABLE_UPDATE_CHECK
71+
value: "1"
72+
- name: FAIL2BAN_BLOCKTYPE
73+
value: drop
74+
- name: FETCHMAIL_PARALLEL
75+
value: "0"
76+
- name: FETCHMAIL_POLL
77+
value: "300"
78+
- name: GETMAIL_POLL
79+
value: "5"
80+
- name: LOGROTATE_COUNT
81+
value: "4"
82+
- name: LOGROTATE_INTERVAL
83+
value: weekly
84+
- name: LOG_LEVEL
85+
value: info
86+
- name: MARK_SPAM_AS_READ
87+
value: "0"
88+
- name: MOVE_SPAM_TO_JUNK
89+
value: "1"
90+
- name: OVERRIDE_HOSTNAME
91+
value: mail.example.com
92+
- name: PERMIT_DOCKER
93+
value: none
94+
- name: POSTFIX_INET_PROTOCOLS
95+
value: all
96+
- name: POSTFIX_REJECT_UNKNOWN_CLIENT_HOSTNAME
97+
value: "0"
98+
- name: POSTGREY_AUTO_WHITELIST_CLIENTS
99+
value: "5"
100+
- name: POSTGREY_DELAY
101+
value: "300"
102+
- name: POSTGREY_MAX_AGE
103+
value: "35"
104+
- name: POSTGREY_TEXT
105+
value: Delayed by Postgrey
106+
- name: POSTSCREEN_ACTION
107+
value: enforce
108+
- name: RELAY_PORT
109+
value: "25"
110+
- name: RSPAMD_CHECK_AUTHENTICATED
111+
value: "0"
112+
- name: RSPAMD_GREYLISTING
113+
value: "0"
114+
- name: RSPAMD_HFILTER
115+
value: "1"
116+
- name: RSPAMD_HFILTER_HOSTNAME_UNKNOWN_SCORE
117+
value: "6"
118+
- name: RSPAMD_LEARN
119+
value: "0"
120+
- name: RSPAMD_NEURAL
121+
value: "0"
122+
- name: SA_KILL
123+
value: "10"
124+
- name: SA_TAG
125+
value: "2"
126+
- name: SA_TAG2
127+
value: "6.31"
128+
- name: SPAMASSASSIN_SPAM_TO_INBOX
129+
value: "1"
130+
- name: SPAM_SUBJECT
131+
value: '***SPAM*** '
132+
- name: SRS_SENDER_CLASSES
133+
value: envelope_sender
134+
- name: UPDATE_CHECK_INTERVAL
135+
value: 1d
136+
image: mailserver/docker-mailserver:0.1.0
137+
imagePullPolicy: IfNotPresent
138+
livenessProbe:
139+
exec:
140+
command:
141+
- /bin/bash
142+
- -c
143+
- supervisorctl status | grep -E "amavis|clamav|cron|dovecot|mailserver|opendkim|opendmarc|postfix|rsyslog" | grep RUNNING
144+
failureThreshold: 3
145+
initialDelaySeconds: 10
146+
timeoutSeconds: 5
147+
name: docker-mailserver
148+
ports:
149+
- containerPort: 25
150+
name: smtp
151+
- containerPort: 465
152+
name: submissions
153+
- containerPort: 587
154+
name: submission
155+
- containerPort: 12525
156+
name: smtp-proxy
157+
- containerPort: 10465
158+
name: subs-proxy
159+
- containerPort: 10587
160+
name: sub-proxy
161+
- containerPort: 143
162+
name: imap
163+
- containerPort: 993
164+
name: imaps
165+
- containerPort: 10143
166+
name: imap-proxy
167+
- containerPort: 10993
168+
name: imaps-proxy
169+
- containerPort: 11334
170+
name: rspamd
171+
readinessProbe:
172+
exec:
173+
command:
174+
- /bin/bash
175+
- -c
176+
- supervisorctl status | grep -E "mailserver|postfix" | grep RUNNING
177+
failureThreshold: 3
178+
initialDelaySeconds: 10
179+
timeoutSeconds: 5
180+
resources:
181+
limits:
182+
cpu: "2"
183+
ephemeral-storage: 500Mi
184+
memory: 2048Mi
185+
requests:
186+
cpu: "1"
187+
ephemeral-storage: 100Mi
188+
memory: 1536Mi
189+
securityContext:
190+
privileged: false
191+
readOnlyRootFilesystem: false
192+
volumeMounts:
193+
- mountPath: /tmp/docker-mailserver/dovecot.cf
194+
name: dovecot-cf
195+
subPath: dovecot.cf
196+
- mountPath: /etc/dovecot/conf.d/10-plugin.conf
197+
name: fts-xapian-plugin-conf
198+
subPath: fts-xapian-plugin.conf
199+
- mountPath: /tmp/docker-mailserver/user-patches.sh
200+
name: user-patches-sh
201+
subPath: user-patches.sh
202+
- mountPath: /tmp/docker-mailserver
203+
name: mail-config
204+
- mountPath: /var/mail
205+
name: mail-data
206+
- mountPath: /var/log/mail
207+
name: mail-log
208+
- mountPath: /var/mail-state
209+
name: mail-state
210+
nodeSelector: {}
211+
priorityClassName: null
212+
restartPolicy: Always
213+
runtimeClassName: null
214+
securityContext: null
215+
serviceAccountName: RELEASE-NAME-docker-mailserver
216+
volumes:
217+
- configMap:
218+
name: dovecot-cf
219+
name: dovecot-cf
220+
- configMap:
221+
name: fts-xapian-plugin-conf
222+
name: fts-xapian-plugin-conf
223+
- configMap:
224+
name: user-patches-sh
225+
name: user-patches-sh
226+
- name: mail-config
227+
persistentVolumeClaim:
228+
claimName: RELEASE-NAME-docker-mailserver-mail-config
229+
- name: mail-data
230+
persistentVolumeClaim:
231+
claimName: RELEASE-NAME-docker-mailserver-mail-data
232+
- name: mail-log
233+
persistentVolumeClaim:
234+
claimName: RELEASE-NAME-docker-mailserver-mail-log
235+
- name: mail-state
236+
persistentVolumeClaim:
237+
claimName: RELEASE-NAME-docker-mailserver-mail-state

0 commit comments

Comments
 (0)