apiVersion: apps/v1 kind: Deployment metadata: name: draupnir namespace: matrix spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/name: draupnir template: metadata: labels: app.kubernetes.io/name: draupnir spec: securityContext: fsGroup: 1000 containers: - name: draupnir image: gnuxie/draupnir:v3.1.0 imagePullPolicy: IfNotPresent ports: - name: healthz containerPort: 8080 volumeMounts: - name: config mountPath: /data/config/default.yaml subPath: default.yaml readOnly: true - name: storage mountPath: /data/storage resources: requests: cpu: 100m memory: 128Mi limits: memory: 384Mi # healthz reports 418 (not just a plain failure) until Draupnir finishes its # initial room-state sync with the homeserver - generous initialDelay/failureThreshold # avoids a restart loop while that's still in progress on first boot. livenessProbe: httpGet: path: /healthz port: healthz initialDelaySeconds: 60 periodSeconds: 15 failureThreshold: 10 readinessProbe: httpGet: path: /healthz port: healthz initialDelaySeconds: 30 periodSeconds: 10 failureThreshold: 10 volumes: - name: config secret: secretName: draupnir-config - name: storage persistentVolumeClaim: claimName: draupnir-data