blob: a59ed6dacd9fba43ed6dea6822823c26cadafab1 [file] [log] [blame]
Matthias Andreas Benkard3cf43e32026-11-05 22:28:28 +01001---
2apiVersion: apps/v1
3kind: Deployment
4metadata:
5 name: mailcow
6 namespace: mulk
7 labels:
8 name: mailcow
9 k8s-app: mailcow
10
11spec:
12 replicas: 1
13
14 strategy:
15 rollingUpdate:
16 maxSurge: 1
17 maxUnavailable: 1
18
19 selector:
20 matchLabels:
21 k8s-app: mailcow
22 name: mailcow
23
24 template:
25 metadata:
26 labels:
27 name: mailcow
28 k8s-app: mailcow
29
30 spec:
31 imagePullSecrets:
32 - name: portus-token
33
34 runtimeClassName: kata
35
36 containers:
37 - name: master
38 image: docker.benkard.de/mulk/mailcow:latest
39
40 securityContext:
41 # In a Kata container, this only gives the container full
42 # access to the guest VM rather than the host. (To ensure
43 # this, it is important to set privileged_without_host_devices
44 # = true in the [plugins.cri.containerd.runtimes.kata] section
45 # of containerd's config.toml.)
46 privileged: true
47
48 env:
49 - {name: COMPOSE_HTTP_TIMEOUT, value: "600"}
50 - {name: TZ, value: Europe/Vienna}
51 - {name: DBNAME, value: mailcow}
52 - {name: DBUSER, value: mailcow}
53 - {name: DBPASS, value: REDACTED}
54 - {name: MAILCOW_HOSTNAME, value: mail.benkard.de}
55 - {name: ADDITIONAL_SAN, value: ""}
56
57 ports:
58 - name: http
59 containerPort: 80
60 - name: smtp
61 hostPort: 25
62 containerPort: 25
63 - name: pop
64 hostPort: 110
65 containerPort: 110
66 - name: imap
67 hostPort: 143
68 containerPort: 143
69 - name: smtps
70 hostPort: 465
71 containerPort: 465
72 - name: submission
73 hostPort: 587
74 containerPort: 587
75 - name: imaps
76 hostPort: 993
77 containerPort: 993
78 - name: pops
79 hostPort: 995
80 containerPort: 995
81 - name: sieve
82 hostPort: 4190
83 containerPort: 4190
84 - name: doveadm
85 hostPort: 19991
86 containerPort: 12345
87
88 volumeMounts:
89 # Configuration data.
90 - name: assets
91 subPath: ssl
92 mountPath: /mailcow-dockerized/data/assets/ssl
93 - name: config
94 mountPath: /mailcow-dockerized/data/conf
95 - name: secrets
96 subPath: mailcow.conf
97 mountPath: /mailcow-dockerized/mailcow.conf
98
99 # State.
100 - name: crypt-data
101 mountPath: /vol/crypt-data
102 - name: postfix-data
103 mountPath: /vol/postfix-data
104 - name: redis-data
105 mountPath: /vol/redis-data
106 - name: rspamd-data
107 mountPath: /vol/rspamd-data
108 - name: solr-data
109 mountPath: /vol/solr-data
110 - name: sogo-web
111 mountPath: /vol/sogo-web
112 - name: sogo-userdata-backup
113 mountPath: /vol/sogo-userdata-backup
114 - name: vmail
115 mountPath: /vol/vmail
116 - name: vmail-index
117 mountPath: /vol/vmail-index
118 - name: web-data
119 mountPath: /vol/web-data
120 #- name: docker-data
121 # subPath: vfs
122 # mountPath: /var/lib/docker/vfs
123 #- name: docker-data
124 # subPath: image
125 # mountPath: /var/lib/docker/image
126 #- name: docker-data
127 # subPath: overlay2
128 # mountPath: /var/lib/docker/overlay2
129 #- name: docker-data
130 # mountPath: /var/lib/docker
131 - name: docker-data
132 mountPath: /vol/docker-data
133
134 volumes:
135 - name: assets
136 persistentVolumeClaim:
137 claimName: mailcow-assets
138 - name: config
139 persistentVolumeClaim:
140 claimName: mailcow-config-v2
141 - name: crypt-data
142 persistentVolumeClaim:
143 claimName: mailcow-crypt
144 - name: postfix-data
145 persistentVolumeClaim:
146 claimName: mailcow-postfix
147 - name: redis-data
148 persistentVolumeClaim:
149 claimName: mailcow-redis
150 - name: rspamd-data
151 persistentVolumeClaim:
152 claimName: mailcow-rspamd
153 - name: solr-data
154 persistentVolumeClaim:
155 claimName: mailcow-solr
156 - name: sogo-web
157 persistentVolumeClaim:
158 claimName: mailcow-sogo-web
159 - name: sogo-userdata-backup
160 persistentVolumeClaim:
161 claimName: mailcow-sogo-userdata-backup
162 - name: vmail
163 persistentVolumeClaim:
164 claimName: mailcow-vmail
165 - name: vmail-index
166 persistentVolumeClaim:
167 claimName: mailcow-vmail-index
168 - name: web-data
169 persistentVolumeClaim:
170 claimName: mailcow-web
171 - name: docker-data
172 persistentVolumeClaim:
173 claimName: mailcow-docker
174 - name: secrets
175 secret:
176 secretName: mailcow-secrets