| --- |
| 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 |