provisioning-catalog/components/stalwart/cluster/templates/deployment.yaml.j2

89 lines
2.7 KiB
Text
Raw Permalink Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ taskserv.name }}
namespace: {{ taskserv.namespace }}
labels:
app.kubernetes.io/name: {{ taskserv.name }}
app.kubernetes.io/managed-by: provisioning
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: {{ taskserv.name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ taskserv.name }}
app.kubernetes.io/managed-by: provisioning
spec:
nodeSelector:
kubernetes.io/hostname: {{ taskserv.node }}
terminationGracePeriodSeconds: 60
securityContext:
fsGroup: 1000
runAsUser: 1000
runAsGroup: 1000
containers:
- name: {{ taskserv.name }}
image: {{ taskserv.image }}
args: ["--config", "{{ taskserv.config_mount }}/config.json"]
ports:
- containerPort: {{ taskserv.smtp_port }}
name: smtp
protocol: TCP
- containerPort: {{ taskserv.submission_port }}
name: submission
protocol: TCP
- containerPort: {{ taskserv.smtps_port }}
name: smtps
protocol: TCP
- containerPort: {{ taskserv.imaps_port }}
name: imaps
protocol: TCP
- containerPort: {{ taskserv.http_port }}
name: http
protocol: TCP
env:
- name: DATA_DIR
value: "{{ taskserv.data_dir }}"
envFrom:
- secretRef:
name: {{ taskserv.name }}-credentials
volumeMounts:
- name: data
mountPath: {{ taskserv.data_dir }}
- name: config
mountPath: {{ taskserv.config_mount }}/config.json
subPath: config.json
readOnly: true
- name: tls
mountPath: {{ taskserv.tls_mount_path }}
readOnly: true
readinessProbe:
tcpSocket:
port: {{ taskserv.smtp_port }}
initialDelaySeconds: 15
periodSeconds: 10
livenessProbe:
tcpSocket:
port: {{ taskserv.smtp_port }}
initialDelaySeconds: 60
periodSeconds: 20
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
memory: "1Gi"
volumes:
- name: data
persistentVolumeClaim:
claimName: {{ taskserv.name }}-data
- name: config
configMap:
name: {{ taskserv.name }}-config
- name: tls
secret:
secretName: {{ taskserv.tls_secret }}