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