--- apiVersion: apps/v1 kind: Deployment metadata: name: n8n-worker labels: app: n8n component: worker spec: replicas: 1 selector: matchLabels: app: n8n component: worker template: metadata: labels: app: n8n component: worker spec: containers: - name: n8n-worker image: docker.n8n.io/n8nio/n8n:latest command: ["n8n", "worker"] env: - name: HOME value: "/home/node" - name: N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS value: "true" - name: N8N_RUNNERS_ENABLED value: "true" - name: N8N_RUNNERS_MODE value: "external" - name: N8N_PORT value: "80" - name: EXECUTIONS_MODE value: "queue" - name: QUEUE_BULL_REDIS_HOST value: "n8n-redis" - name: NODE_ENV value: "production" - name: GENERIC_TIMEZONE value: "Europe/Moscow" - name: TZ value: "Europe/Moscow" - name: DB_TYPE value: "postgresdb" - name: DB_POSTGRESDB_HOST value: "psql.psql.svc" - name: DB_POSTGRESDB_DATABASE value: "n8n" - name: DB_POSTGRESDB_USER valueFrom: secretKeyRef: name: credentials key: username - name: DB_POSTGRESDB_PASSWORD valueFrom: secretKeyRef: name: credentials key: password - name: N8N_ENCRYPTION_KEY valueFrom: secretKeyRef: name: credentials key: encryptionkey - name: N8N_RUNNERS_AUTH_TOKEN valueFrom: secretKeyRef: name: credentials key: runnertoken volumeMounts: - name: n8n-data mountPath: /home/node/.n8n resources: requests: cpu: 100m memory: 256Mi limits: cpu: 1000m memory: 1Gi livenessProbe: exec: command: - /bin/sh - -c - "ps aux | grep '[n]8n worker' || exit 1" initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 5 failureThreshold: 3 volumes: - name: n8n-data persistentVolumeClaim: claimName: n8n-data securityContext: runAsUser: 1000 runAsGroup: 1000 runAsNonRoot: true fsGroup: 1000