Funk-lab/k8s/apps/authentik/deployment.yaml
alkatrazz 71f5d841cf fix(authentik): startupProbe — les migrations du 1er boot dépassent la liveness
Le premier démarrage exécute les migrations de schéma (plusieurs minutes) ;
la livenessProbe (60 s) tuait le pod en boucle avant qu'il ne soit prêt.
La startupProbe accorde jusqu'à 10 min avant d'armer liveness/readiness.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 21:32:25 +02:00

141 lines
4 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: authentik-server
namespace: auth
spec:
replicas: 1
selector:
matchLabels:
app: authentik-server
template:
metadata:
labels:
app: authentik-server
spec:
containers:
- name: authentik
image: ghcr.io/goauthentik/server:2026.5.3
args: ["server"]
ports:
- containerPort: 9000
env:
- name: AUTHENTIK_SECRET_KEY
valueFrom:
secretKeyRef:
name: authentik-secret
key: secret-key
# PostgreSQL sur storage-01 (hors cluster) — même pattern que Ghostfolio/n8n
- name: AUTHENTIK_POSTGRESQL__HOST
value: "192.168.10.1"
- name: AUTHENTIK_POSTGRESQL__NAME
value: "authentik"
- name: AUTHENTIK_POSTGRESQL__USER
value: "authentik"
- name: AUTHENTIK_POSTGRESQL__PASSWORD
valueFrom:
secretKeyRef:
name: authentik-secret
key: pg-password
# Redis (in-cluster)
- name: AUTHENTIK_REDIS__HOST
value: "authentik-redis"
- name: AUTHENTIK_REDIS__PASSWORD
valueFrom:
secretKeyRef:
name: authentik-secret
key: redis-password
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: media
mountPath: /media
resources:
requests:
cpu: 200m
memory: 700Mi
limits:
cpu: 1000m
memory: 1536Mi
# Premier boot : les migrations de base prennent plusieurs minutes —
# la startupProbe laisse jusqu'à 10 min avant que la liveness ne s'active
startupProbe:
httpGet:
path: /-/health/live/
port: 9000
failureThreshold: 60
periodSeconds: 10
readinessProbe:
httpGet:
path: /-/health/ready/
port: 9000
periodSeconds: 15
livenessProbe:
httpGet:
path: /-/health/live/
port: 9000
periodSeconds: 30
volumes:
- name: media
persistentVolumeClaim:
claimName: authentik-media
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: authentik-worker
namespace: auth
spec:
replicas: 1
selector:
matchLabels:
app: authentik-worker
template:
metadata:
labels:
app: authentik-worker
spec:
containers:
- name: authentik
image: ghcr.io/goauthentik/server:2026.5.3
args: ["worker"]
env:
- name: AUTHENTIK_SECRET_KEY
valueFrom:
secretKeyRef:
name: authentik-secret
key: secret-key
- name: AUTHENTIK_POSTGRESQL__HOST
value: "192.168.10.1"
- name: AUTHENTIK_POSTGRESQL__NAME
value: "authentik"
- name: AUTHENTIK_POSTGRESQL__USER
value: "authentik"
- name: AUTHENTIK_POSTGRESQL__PASSWORD
valueFrom:
secretKeyRef:
name: authentik-secret
key: pg-password
- name: AUTHENTIK_REDIS__HOST
value: "authentik-redis"
- name: AUTHENTIK_REDIS__PASSWORD
valueFrom:
secretKeyRef:
name: authentik-secret
key: redis-password
- name: TZ
value: "Europe/Paris"
volumeMounts:
- name: media
mountPath: /media
resources:
requests:
cpu: 100m
memory: 500Mi
limits:
cpu: 500m
memory: 1Gi
volumes:
- name: media
persistentVolumeClaim:
claimName: authentik-media