-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathemail.deployment.yaml
More file actions
114 lines (112 loc) 路 3.55 KB
/
Copy pathemail.deployment.yaml
File metadata and controls
114 lines (112 loc) 路 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
{{- if .Values.services.email_service.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-email-service
namespace: {{ .Release.Namespace }}
labels:
{{- include "plane.commonLabels" $ | nindent 4 }}
spec:
type: LoadBalancer
externalTrafficPolicy: Local # Important for email servers
selector:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-email-app
ports:
- name: smtp
port: 25
targetPort: 10025
protocol: TCP
- name: smtps
port: 465
targetPort: 10465
protocol: TCP
- name: submission
port: 587
targetPort: 10587
protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-email-app
namespace: {{ .Release.Namespace }}
annotations:
reloader.stakater.com/auto: "true"
{{- include "plane.labelsAndAnnotations" (dict "context" $ "values" .Values.services.email_service) }}
spec:
replicas: {{ .Values.services.email_service.replicas | default 1 }}
selector:
matchLabels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-email-app
template:
metadata:
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-email-app
{{- include "plane.commonLabels" $ | nindent 8 }}
annotations:
{{- if not $.Values.gitops.enabled }}
timestamp: {{ now | quote }}
{{- end }}
spec:
{{- include "plane.podScheduling" .Values.services.email_service }}
containers:
- name: {{ .Release.Name }}-email-app
imagePullPolicy: {{ .Values.services.email_service.pullPolicy | default "Always" }}
image: {{ .Values.services.email_service.image | default "makeplane/email-commercial" }}:{{ .Values.planeVersion }}
securityContext:
runAsUser: 100
stdin: true
tty: true
readinessProbe:
exec:
command:
- nc
- -zv
- localhost
- "10025"
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
resources:
requests:
memory: {{ .Values.services.email_service.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.email_service.cpuRequest | default "50m" | quote }}
limits:
memory: {{ .Values.services.email_service.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.email_service.cpuLimit | default "500m" | quote}}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-email-vars
optional: false
{{- if .Values.extraEnv }}
env:
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}
volumeMounts:
- name: tls-cert
mountPath: /opt/email/keys
- name: spam-blacklist
mountPath: /opt/email/spam.txt
subPath: spam.txt
- name: spam-blacklist
mountPath: /opt/email/domain-blacklist.txt
subPath: domain-blacklist.txt
volumes:
- name: spam-blacklist
configMap:
name: {{ .Release.Name }}-email-vars
- name: tls-cert
secret:
secretName: {{ .Release.Name }}-mail-tls-secret
items:
- key: tls.crt
path: cert.pem
- key: tls.key
path: key.pem
optional: false
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---
{{- end }}