the version in Kubernetes manifest in the wiki is outdated ( V2.1 ) - it's need an upgrade for solve some bug
The wiki is still wrong. However, while I can change the version I can't verify that it works as I'm not running the mail server in K8s. Anyone with a working setup that can update (or suggest an update) for the wiki?
@erik-wramner I upgrade to stable, and encountered two issues. amvais is crashing and dovecot is crashing too. Attached is the log from the container not sure what is happening between 2.1 and the most recent stable
2019-12-18 06:55:59,464 INFO success: amavis entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:55:59,465 INFO spawned: 'dovecot' with pid 438
2019-12-18 06:55:59,522 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:55:59,523 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:55:59,525 INFO spawned: 'dovecot' with pid 440
2019-12-18 06:55:59,582 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:55:59,582 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:55:59,584 INFO spawned: 'dovecot' with pid 442
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:58 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx amavis[384]: starting. /usr/sbin/amavisd-new at mail.example.com amavisd-new-2.10.1 (20141025), Unicode aware
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx amavis[384]: (!)Net::Server: 2019/12/18-06:55:59 Can't connect to UNIX socket at file /var/lib/amavis/amavisd.sock [Unknown error 524]\n at line 70 in file /usr/share/perl5/Net/Server/Proto/UNIX.pm
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: bind(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Error: service(auth): net_listen_unix(/var/spool/postfix/private/auth) failed: Unknown error 524
Dec 18 06:55:59 mailserver-6545c9bf67-lnrgx dovecot: master: Fatal: Failed to start listeners
2019-12-18 06:55:59,600 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:55:59,639 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:55:59,642 INFO spawned: 'dovecot' with pid 444
2019-12-18 06:55:59,696 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:55:59,697 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:56:00,378 INFO spawned: 'dovecot' with pid 453
2019-12-18 06:56:00,379 INFO exited: amavis (exit status 1; not expected)
2019-12-18 06:56:00,430 INFO spawned: 'amavis' with pid 455
2019-12-18 06:56:00,430 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:56:00,431 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:56:00,432 INFO success: amavis entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:56:00,434 INFO spawned: 'dovecot' with pid 456
2019-12-18 06:56:00,490 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:56:00,490 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:56:00,493 INFO spawned: 'dovecot' with pid 458
2019-12-18 06:56:00,538 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:56:00,538 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:56:00,540 INFO spawned: 'dovecot' with pid 460
2019-12-18 06:56:00,596 INFO success: dovecot entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-12-18 06:56:00,597 INFO exited: dovecot (exit status 89; not expected)
2019-12-18 06:56:00,599 INFO spawned: 'dovecot' with pid 462
Hm, 2.1 is from 2016 and the current stable is 6.2 from 2019, so a lot has changed. I hope you have a good backup! How about if you make a clean install (no old config files that may be incompatible) with 6.2, does that work? If it does one option could be to do just that; upgrade and import the old mail folders and accounts and aliases.
@erik-wramner don't worry its a clean install using the manifests in the Kubernetes in the wiki. So basically the manifests there are broken with 6.2. The Kubernetes manifest need to be update to work with 6.2 I am guessing.
Right, something to look into then!
Here is a part of Kubernetes deployment for a first try to run 6.2.x. It use PV's and "mailserver" namepace. Don't know why "OVERRIDE_HOSTNAME" is needed.
One need to change the configmap as well. Tried with Kubernetes 1.17:
kind: Service
apiVersion: v1
metadata:
name: mailserver
namespace: mailserver
labels:
app: mailserver
spec:
selector:
app: mailserver
ports:
- name: smtp
port: 25
targetPort: smtp
- name: smtp-auth
port: 587
targetPort: smtp-auth
- name: imap-secure
port: 993
targetPort: imap-secure
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mailserver
namespace: mailserver
spec:
replicas: 1
selector:
matchLabels:
app: mailserver
template:
metadata:
labels:
app: mailserver
role: mail
tier: backend
spec:
containers:
- name: smtp
image: tvial/docker-mailserver:release-v6.2.1
imagePullPolicy: Always
volumeMounts:
- name: config
subPath: postfix-accounts.cf
mountPath: /tmp/docker-mailserver/postfix-accounts.cf
readOnly: true
- name: config
subPath: postfix-virtual.cf
mountPath: /tmp/docker-mailserver/postfix-virtual.cf
readOnly: true
- name: config
subPath: fetchmail.cf
mountPath: /tmp/docker-mailserver/fetchmail.cf
readOnly: true
- name: config
subPath: SigningTable
mountPath: /tmp/docker-mailserver/opendkim/SigningTable
readOnly: true
- name: config
subPath: KeyTable
mountPath: /tmp/docker-mailserver/opendkim/KeyTable
readOnly: true
- name: config
subPath: TrustedHosts
mountPath: /tmp/docker-mailserver/opendkim/TrustedHosts
readOnly: true
- name: opendkim-keys
mountPath: /tmp/docker-mailserver/opendkim/keys
readOnly: true
- name: data
mountPath: /var/mail
subPath: data
- name: data
mountPath: /var/mail-state
subPath: state
- name: data
mountPath: /var/log/mail
subPath: log
ports:
- name: smtp
containerPort: 25
protocol: TCP
- name: smtp-auth
containerPort: 587
protocol: TCP
- name: imap-secure
containerPort: 993
protocol: TCP
env:
- name: OVERRIDE_HOSTNAME
value: mail.example.local
- name: ENABLE_SPAMASSASSIN
value: "0"
- name: ENABLE_CLAMAV
value: "0"
- name: ENABLE_FAIL2BAN
value: "0"
- name: ENABLE_POSTGREY
value: "0"
- name: ONE_DIR
value: "1"
- name: DMS_DEBUG
value: "0"
volumes:
- name: config
configMap:
name: mailserver.config
- name: opendkim-keys
secret:
secretName: mailserver.opendkim.keys
- name: data
persistentVolumeClaim:
claimName: mail-storage
I've updated the deployment section of kubernetes wiki, because I have successful installed docker-mailserver on Kubernetes 1.17:
https://github.com/tomav/docker-mailserver/wiki/Using-in-Kubernetes
Exposing to internet and create of PV storage is something which the kubernetes admin should know for his installation. I would like to write the rest of the documentation, but my english is too poor.
@remoe I disagree, your English seems fine. But if you like, post it here, mention me, I'll read it.
I'm closing this off due to age/inactivity. The main work was done and k8s 1.17 is reasonably recent.
Most helpful comment
I've updated the deployment section of kubernetes wiki, because I have successful installed docker-mailserver on Kubernetes 1.17:
https://github.com/tomav/docker-mailserver/wiki/Using-in-Kubernetes
Exposing to internet and create of PV storage is something which the kubernetes admin should know for his installation. I would like to write the rest of the documentation, but my english is too poor.