mirror of
https://gitlab.kube.huskypup.net/Scooby/Homelabv4.git
synced 2026-08-21 11:36:50 +00:00
- 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>
164 lines
3.3 KiB
YAML
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: {}
|