added n8n
This commit is contained in:
@@ -0,0 +1,200 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: n8n
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: n8n-secrets
|
||||||
|
namespace: n8n
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
# Base64 values from your previous manifest
|
||||||
|
N8N_ADMIN_USER: a2h3ZXpp
|
||||||
|
N8N_ADMIN_PASSWORD: cWVaVllWQ20wOEhaWmU=
|
||||||
|
POSTGRES_PASSWORD: RmJsV0xPTlM4alVjNUE=
|
||||||
|
N8N_ENCRYPTION_KEY: Tm90U2VjcmV0S2V5MTIzIQ==
|
||||||
|
N8N_TASKS_RUNNER_AUTH_TOKEN: bXktc2hhcmVkLXNlY3JldC10b2tlbi0xMjM=
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: n8n-config
|
||||||
|
namespace: n8n
|
||||||
|
data:
|
||||||
|
N8N_HOST: "n8n.khongisa.co.za"
|
||||||
|
N8N_PROTOCOL: "https"
|
||||||
|
NODE_ENV: "production"
|
||||||
|
WEBHOOK_URL: "https://n8n.khongisa.co.za/"
|
||||||
|
GENERIC_TIMEZONE: "Africa/Johannesburg"
|
||||||
|
DB_TYPE: "postgresdb"
|
||||||
|
DB_POSTGRESDB_HOST: "n8n-db-service"
|
||||||
|
DB_POSTGRESDB_PORT: "5432"
|
||||||
|
DB_POSTGRESDB_DATABASE: "n8n_db"
|
||||||
|
DB_POSTGRESDB_USER: "n8n_user"
|
||||||
|
N8N_PROXY_HOPS: "1"
|
||||||
|
# DEFINITIVE FIX: Force n8n to listen on all interfaces
|
||||||
|
N8N_LISTEN_ADDRESS: "0.0.0.0"
|
||||||
|
N8N_PORT: "5678"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: n8n-data-pvc
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
accessModes: ["ReadWriteOnce"]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: n8n-db-pvc
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
accessModes: ["ReadWriteOnce"]
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
||||||
|
---
|
||||||
|
# Database Deployment
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: n8n-db
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: n8n-db
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: n8n-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: postgres
|
||||||
|
image: postgres:14-alpine
|
||||||
|
env:
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
value: "n8n_user"
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: "n8n_db"
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: POSTGRES_PASSWORD
|
||||||
|
ports:
|
||||||
|
- containerPort: 5432
|
||||||
|
volumeMounts:
|
||||||
|
- name: db-storage
|
||||||
|
mountPath: /var/lib/postgresql/data
|
||||||
|
volumes:
|
||||||
|
- name: db-storage
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: n8n-db-pvc
|
||||||
|
---
|
||||||
|
# Database Internal Service
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: n8n-db-service
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
selector:
|
||||||
|
app: n8n-db
|
||||||
|
---
|
||||||
|
# n8n Application Deployment
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: n8n
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: n8n-app # Standardized label selector
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: n8n-app # Matches selector and service
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: n8n
|
||||||
|
image: docker.n8n.io/n8nio/n8n:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 5678
|
||||||
|
- containerPort: 5679 # Explicitly open the Task Broker port
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: n8n-config
|
||||||
|
env:
|
||||||
|
# DEFINITIVE FIX: Align communication between main process and Task Runner
|
||||||
|
- name: N8N_TASKS_RUNNER_BROKER_HOST
|
||||||
|
value: "127.0.0.1"
|
||||||
|
- name: N8N_TASKS_RUNNER_BROKER_PORT
|
||||||
|
value: "5679"
|
||||||
|
- name: N8N_TASKS_RUNNER_AUTH_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: N8N_TASKS_RUNNER_AUTH_TOKEN
|
||||||
|
# Database and Admin overrides
|
||||||
|
- name: DB_POSTGRESDB_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: POSTGRES_PASSWORD
|
||||||
|
- name: N8N_ENCRYPTION_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: N8N_ENCRYPTION_KEY
|
||||||
|
- name: N8N_USER_MANAGEMENT_ADMIN_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: N8N_ADMIN_USER
|
||||||
|
- name: N8N_USER_MANAGEMENT_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: n8n-secrets
|
||||||
|
key: N8N_ADMIN_PASSWORD
|
||||||
|
- name: N8N_SECURE_COOKIE
|
||||||
|
value: "false"
|
||||||
|
- name: N8N_COOKIES_SAME_SITE
|
||||||
|
value: "lax"
|
||||||
|
- name: N8N_PROXY_HOPS
|
||||||
|
value: "1"
|
||||||
|
volumeMounts:
|
||||||
|
- name: n8n-data
|
||||||
|
mountPath: /home/node/.n8n
|
||||||
|
volumes:
|
||||||
|
- name: n8n-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: n8n-data-pvc
|
||||||
|
---
|
||||||
|
# NodePort Service
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: n8n-service
|
||||||
|
namespace: n8n
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app: n8n-app # Correctly targets the refactored Deployment labels
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 5678
|
||||||
|
targetPort: 5678
|
||||||
|
nodePort: 30567
|
||||||
Reference in New Issue
Block a user