stack.basicstack.de/apps/directus/directus-deployment.yaml

156 lines
4 KiB
YAML
Raw Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: directus
namespace: directus
labels:
app: directus
component: app
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: directus
component: app
template:
metadata:
labels:
app: directus
component: app
spec:
initContainers:
- name: wait-for-postgres
image: postgres:16-alpine
command:
- sh
- -c
- |
until pg_isready -h directus-postgres -U directus; do
echo "Waiting for PostgreSQL..."
sleep 2
done
securityContext:
fsGroup: 1000
containers:
- name: directus
image: directus/directus:12.1.1
ports:
- name: http
containerPort: 8055
env:
- name: DB_CLIENT
value: pg
- name: DB_HOST
value: directus-postgres
- name: DB_PORT
value: "5432"
- name: DB_DATABASE
value: directus
- name: DB_USER
value: directus
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: directus-db-credentials
key: postgres-password
- name: KEY
valueFrom:
secretKeyRef:
name: directus-app-secrets
key: key
- name: SECRET
valueFrom:
secretKeyRef:
name: directus-app-secrets
key: secret
- name: ADMIN_EMAIL
valueFrom:
secretKeyRef:
name: directus-admin-credentials
key: admin-email
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: directus-admin-credentials
key: admin-password
- name: LICENSE_KEY
valueFrom:
secretKeyRef:
name: directus-license
key: license-key
- name: PUBLIC_URL
value: https://directus.basicstack.de
- name: AUTH_PROVIDERS
value: openid
- name: AUTH_OPENID_DRIVER
value: openid
- name: AUTH_OPENID_CLIENT_ID
valueFrom:
secretKeyRef:
name: directus-oidc-secret
key: client-id
- name: AUTH_OPENID_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: directus-oidc-secret
key: client-secret
- name: AUTH_OPENID_ISSUER_URL
valueFrom:
secretKeyRef:
name: directus-oidc-secret
key: issuer-url
- name: AUTH_OPENID_IDENTIFIER_KEY
value: email
- name: AUTH_OPENID_ALLOW_PUBLIC_REGISTRATION
value: "true"
- name: AUTH_OPENID_DEFAULT_ROLE_ID
value: ""
- name: AUTH_OPENID_ICON
value: account_circle
- name: AUTH_OPENID_LABEL
value: SSO Login
- name: AUTH_OPENID_SCOPE
value: openid email profile
- name: CORS_ENABLED
value: "true"
- name: CORS_ORIGIN
value: "true"
- name: CACHE_ENABLED
value: "false"
- name: RATE_LIMITER_ENABLED
value: "true"
- name: RATE_LIMITER_POINTS
value: "50"
- name: RATE_LIMITER_DURATION
value: "1"
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "1"
memory: 2Gi
livenessProbe:
httpGet:
path: /server/health
port: 8055
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /server/health
port: 8055
initialDelaySeconds: 30
periodSeconds: 5
timeoutSeconds: 3
volumeMounts:
- name: uploads
mountPath: /directus/uploads
volumes:
- name: uploads
persistentVolumeClaim:
claimName: directus-uploads