Files
argocd-apps/apps/base/mail/stalwart-apply-job.yaml
T
unkin-agent 92a29b4ca9
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
Deploy Stalwart into the mail namespace
2026-10-12 00:42:54 +11:00

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