Files
Scooby HuskyandClaude Opus 4.6 7a8eb2046f Fix n8n, gitlab, and netbird-operator degraded states
- n8n: Set replicaCount=1 (RWO PVC incompatible with multiple replicas),
  add resource limits to satisfy Kyverno policy
- gitlab: Add ignoreDifferences for redis-gitlab-additional service
  (port names and selectors managed by Redis operator)
- netbird-operator: Add ExternalSecret for netbird-mgmt-api-key in
  netbird namespace and add manifests source to Application

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:53:10 -05:00

164 lines
3.3 KiB
YAML

# kubernetes/apps/n8n/values.yaml
# n8n workflow automation platform
# Using chart: https://riatlas.github.io/chart__n8n
# --- n8n image ---
image:
repository: n8nio/n8n
tag: "2.0.3"
# --- n8n encryption key (loaded from secret) ---
n8n:
encryption_key: # Will be set via extraEnv from n8n-config-secret
# --- n8n configuration ---
config:
database:
type: postgresdb
postgresdb:
host: pg-n8n-rw # CNPG read-write service
port: 5432
database: n8n
user: n8n
schema: public
generic:
timezone: America/New_York
path: /
host: n8n.kube.huskypup.net
port: 5678
protocol: https
executions:
mode: regular
saveDataOnError: all
saveDataOnSuccess: all
saveDataManualExecutions: true
pruneData: true
pruneDataMaxAge: 3760 # 1 year in hours
# --- Secret values (passwords, etc.) ---
# Note: password is injected via extraEnvSecrets below
secret: {}
# --- Deployment replicas ---
# Single replica required: RWO PVC can't be shared across pods on different nodes
replicaCount: 1
# --- Service configuration ---
service:
type: ClusterIP
port: 80
# --- Security context ---
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
seccompProfile:
type: RuntimeDefault
# --- Ingress disabled - Istio VirtualService handles routing ---
ingress:
enabled: false
# --- Persistence for workflows and data ---
persistence:
enabled: true
type: existing
existingClaim: n8n-main-persistence
storageClass: rook-ceph-block
accessModes:
- ReadWriteOnce
size: 10Gi
# --- Resources ---
resources:
requests:
cpu: 100m
memory: 512Mi
limits:
cpu: "1"
memory: 1Gi
# --- Startup probe ---
# Allows app to start without being killed by liveness probe
startupProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 12 # 60 seconds total startup time
# --- Readiness probe ---
readinessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 2
# --- Liveness probe ---
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
# --- Extra environment variables (from secrets) ---
# Secrets are loaded from Kubernetes secrets
extraEnvSecrets:
# Database password from CNPG-managed secret
DB_POSTGRESDB_PASSWORD:
name: pg-n8n-app
key: password
# n8n encryption key
N8N_ENCRYPTION_KEY:
name: n8n-config-secret
key: encryption-key
# --- Extra environment variables (plain values) ---
extraEnv:
# Webhook & Editor URLs
WEBHOOK_URL: https://n8n.kube.huskypup.net/
N8N_EDITOR_BASE_URL: https://n8n.kube.huskypup.net
# Logging
N8N_LOG_LEVEL: error
# --- Disable built-in PostgreSQL (we'll deploy it separately with Bitnami) ---
postgresql:
enabled: false
# --- Disable Redis (not needed for single instance) ---
redis:
enabled: false
# --- Scaling (disabled for single instance) ---
scaling:
enabled: false
# --- Extra volumes ---
extraVolumes: []
# --- Extra volume mounts ---
extraVolumeMounts: []
# --- Node selector ---
nodeSelector: {}
# --- Tolerations ---
tolerations: []
# --- Affinity ---
affinity: {}