Files
homelab/kubernetes/app/vikunja/deployment.yaml
T

115 lines
3.7 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: vikunja
namespace: vikunja
labels:
app: vikunja
spec:
replicas: 0
strategy:
type: Recreate
selector:
matchLabels:
app: vikunja
template:
metadata:
labels:
app: vikunja
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
# No fsGroup — the NFS subdir provisioner creates directories 0777, and an
# fsGroup chown over NFS is slow and can fail against Synology's root squash.
seccompProfile:
type: RuntimeDefault
containers:
- name: vikunja
image: vikunja/vikunja:2.8.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3456
name: http
protocol: TCP
env:
- name: VIKUNJA_SERVICE_PUBLICURL
value: https://${VIKUNJA_HOST}/
- name: VIKUNJA_SERVICE_TIMEZONE
value: Europe/Kyiv
- name: VIKUNJA_SERVICE_ENABLEREGISTRATION
value: "false"
- name: VIKUNJA_SERVICE_SECRET
valueFrom:
secretKeyRef:
name: vikunja-credentials
key: SERVICE_SECRET
- name: VIKUNJA_DATABASE_TYPE
value: postgres
- name: VIKUNJA_DATABASE_HOST
value: vikunja-db
- name: VIKUNJA_DATABASE_SSLMODE
value: disable
- name: VIKUNJA_DATABASE_USER
valueFrom:
secretKeyRef:
name: vikunja-credentials
key: DB_USERNAME
- name: VIKUNJA_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: vikunja-credentials
key: DB_PASSWORD
- name: VIKUNJA_DATABASE_DATABASE
valueFrom:
secretKeyRef:
name: vikunja-credentials
key: DB_DATABASE_NAME
- name: VIKUNJA_FILES_BASEPATH
value: /app/vikunja/files
# Authentication is delegated to Authelia over OIDC — local accounts are off,
# so the login page redirects straight to Authelia (single provider).
- name: VIKUNJA_AUTH_LOCAL_ENABLED
value: "false"
- name: VIKUNJA_AUTH_OPENID_ENABLED
value: "true"
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_NAME
value: Authelia
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_AUTHURL
value: https://auth.${AUTHELIA_DOMAIN}
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_CLIENTID
value: vikunja
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_SCOPE
value: openid profile email
- name: VIKUNJA_AUTH_OPENID_PROVIDERS_AUTHELIA_CLIENTSECRET
valueFrom:
secretKeyRef:
name: vikunja-credentials
key: OIDC_CLIENT_SECRET
volumeMounts:
- name: files
mountPath: /app/vikunja/files
livenessProbe:
httpGet:
port: 3456
path: /health
initialDelaySeconds: 30
periodSeconds: 30
readinessProbe:
httpGet:
port: 3456
path: /health
initialDelaySeconds: 10
periodSeconds: 10
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
memory: 512Mi
volumes:
- name: files
persistentVolumeClaim:
claimName: vikunja-files