juntekim.com/n8n/n8n.yml
2025-12-07 15:28:21 +00:00

117 lines
2.2 KiB
YAML

apiVersion: v1
kind: Service
metadata:
name: n8n
namespace: default
spec:
selector:
app: n8n
ports:
- protocol: TCP
name: web
port: 5678
targetPort: 5678
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: n8n
namespace: default
labels:
app: n8n
spec:
replicas: 1
selector:
matchLabels:
app: n8n
template:
metadata:
labels:
app: n8n
spec:
containers:
- name: n8n
image: n8nio/n8n:latest
ports:
- name: web
containerPort: 5678
env:
- name: N8N_HOST
value: "n8n.juntekim.com"
- name: N8N_PORT
value: "5678"
- name: N8N_PROTOCOL
value: "https"
- name: WEBHOOK_URL
value: "https://n8n.juntekim.com/"
- name: GENERIC_TIMEZONE
value: "Europe/London"
- name: NODE_ENV
value: "production"
volumeMounts:
- name: n8n-data
mountPath: /home/node/.n8n
volumes:
- name: n8n-data
persistentVolumeClaim:
claimName: n8n-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: n8n-pvc
namespace: default
spec:
accessModes:
- ReadWriteMany
storageClassName: n8n-local-storage
resources:
requests:
storage: 5Gi
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: n8n-ingressroute
namespace: default
spec:
entryPoints:
- websecure
routes:
- match: Host(`n8n.juntekim.com`)
kind: Rule
services:
- name: n8n
port: 5678
tls:
certResolver: myresolver
domains:
- main: n8n.juntekim.com
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: n8n-pv
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: n8n-local-storage
local:
path: /home/kimjunte/k8s_storage/n8n
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- mist