blob: a59ed6dacd9fba43ed6dea6822823c26cadafab1 [file] [log] [blame]
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mailcow
namespace: mulk
labels:
name: mailcow
k8s-app: mailcow
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
k8s-app: mailcow
name: mailcow
template:
metadata:
labels:
name: mailcow
k8s-app: mailcow
spec:
imagePullSecrets:
- name: portus-token
runtimeClassName: kata
containers:
- name: master
image: docker.benkard.de/mulk/mailcow:latest
securityContext:
# In a Kata container, this only gives the container full
# access to the guest VM rather than the host. (To ensure
# this, it is important to set privileged_without_host_devices
# = true in the [plugins.cri.containerd.runtimes.kata] section
# of containerd's config.toml.)
privileged: true
env:
- {name: COMPOSE_HTTP_TIMEOUT, value: "600"}
- {name: TZ, value: Europe/Vienna}
- {name: DBNAME, value: mailcow}
- {name: DBUSER, value: mailcow}
- {name: DBPASS, value: REDACTED}
- {name: MAILCOW_HOSTNAME, value: mail.benkard.de}
- {name: ADDITIONAL_SAN, value: ""}
ports:
- name: http
containerPort: 80
- name: smtp
hostPort: 25
containerPort: 25
- name: pop
hostPort: 110
containerPort: 110
- name: imap
hostPort: 143
containerPort: 143
- name: smtps
hostPort: 465
containerPort: 465
- name: submission
hostPort: 587
containerPort: 587
- name: imaps
hostPort: 993
containerPort: 993
- name: pops
hostPort: 995
containerPort: 995
- name: sieve
hostPort: 4190
containerPort: 4190
- name: doveadm
hostPort: 19991
containerPort: 12345
volumeMounts:
# Configuration data.
- name: assets
subPath: ssl
mountPath: /mailcow-dockerized/data/assets/ssl
- name: config
mountPath: /mailcow-dockerized/data/conf
- name: secrets
subPath: mailcow.conf
mountPath: /mailcow-dockerized/mailcow.conf
# State.
- name: crypt-data
mountPath: /vol/crypt-data
- name: postfix-data
mountPath: /vol/postfix-data
- name: redis-data
mountPath: /vol/redis-data
- name: rspamd-data
mountPath: /vol/rspamd-data
- name: solr-data
mountPath: /vol/solr-data
- name: sogo-web
mountPath: /vol/sogo-web
- name: sogo-userdata-backup
mountPath: /vol/sogo-userdata-backup
- name: vmail
mountPath: /vol/vmail
- name: vmail-index
mountPath: /vol/vmail-index
- name: web-data
mountPath: /vol/web-data
#- name: docker-data
# subPath: vfs
# mountPath: /var/lib/docker/vfs
#- name: docker-data
# subPath: image
# mountPath: /var/lib/docker/image
#- name: docker-data
# subPath: overlay2
# mountPath: /var/lib/docker/overlay2
#- name: docker-data
# mountPath: /var/lib/docker
- name: docker-data
mountPath: /vol/docker-data
volumes:
- name: assets
persistentVolumeClaim:
claimName: mailcow-assets
- name: config
persistentVolumeClaim:
claimName: mailcow-config-v2
- name: crypt-data
persistentVolumeClaim:
claimName: mailcow-crypt
- name: postfix-data
persistentVolumeClaim:
claimName: mailcow-postfix
- name: redis-data
persistentVolumeClaim:
claimName: mailcow-redis
- name: rspamd-data
persistentVolumeClaim:
claimName: mailcow-rspamd
- name: solr-data
persistentVolumeClaim:
claimName: mailcow-solr
- name: sogo-web
persistentVolumeClaim:
claimName: mailcow-sogo-web
- name: sogo-userdata-backup
persistentVolumeClaim:
claimName: mailcow-sogo-userdata-backup
- name: vmail
persistentVolumeClaim:
claimName: mailcow-vmail
- name: vmail-index
persistentVolumeClaim:
claimName: mailcow-vmail-index
- name: web-data
persistentVolumeClaim:
claimName: mailcow-web
- name: docker-data
persistentVolumeClaim:
claimName: mailcow-docker
- name: secrets
secret:
secretName: mailcow-secrets