101 lines
2.7 KiB
YAML
101 lines
2.7 KiB
YAML
---
|
|
# Converges Stalwart's database-held settings to plan.ndjson after every sync,
|
|
# then reloads them. Store and listener changes only bind on a pod restart.
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: stalwart-apply
|
|
namespace: mail
|
|
annotations:
|
|
argocd.argoproj.io/hook: PostSync
|
|
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
|
|
spec:
|
|
backoffLimit: 3
|
|
ttlSecondsAfterFinished: 600
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: stalwart-apply
|
|
spec:
|
|
restartPolicy: Never
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
initContainers:
|
|
- name: apply
|
|
image: docker.io/stalwartlabs/cli:1.0.13
|
|
args:
|
|
- apply
|
|
- --file
|
|
- /plan/plan.ndjson
|
|
env:
|
|
- name: STALWART_URL
|
|
value: http://stalwart.mail.svc:8080
|
|
- name: STALWART_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stalwart-admin
|
|
key: username
|
|
- name: STALWART_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stalwart-admin
|
|
key: password
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
limits:
|
|
cpu: 200m
|
|
memory: 128Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
volumeMounts:
|
|
- name: plan
|
|
mountPath: /plan
|
|
readOnly: true
|
|
containers:
|
|
- name: reload
|
|
image: docker.io/stalwartlabs/cli:1.0.13
|
|
args:
|
|
- create
|
|
- action/ReloadSettings
|
|
env:
|
|
- name: STALWART_URL
|
|
value: http://stalwart.mail.svc:8080
|
|
- name: STALWART_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stalwart-admin
|
|
key: username
|
|
- name: STALWART_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: stalwart-admin
|
|
key: password
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
readOnlyRootFilesystem: true
|
|
capabilities:
|
|
drop:
|
|
- ALL
|
|
resources:
|
|
limits:
|
|
cpu: 200m
|
|
memory: 128Mi
|
|
requests:
|
|
cpu: 50m
|
|
memory: 32Mi
|
|
volumes:
|
|
- name: plan
|
|
configMap:
|
|
name: stalwart-config
|
|
items:
|
|
- key: plan.ndjson
|
|
path: plan.ndjson
|