From 8424ede01aa8220c8bdf39f5e9ffa53a225c9f6b Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 4 Feb 2025 13:21:12 +0800 Subject: [PATCH] add n8n configs --- n8n/README.md | 9 ++++++++ n8n/init.sh | 8 +++++++ n8n/n8n-ingress.yaml | 18 ++++++++++++++++ n8n/n8n.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++++ n8n/namespace.yaml | 4 ++++ n8n/pv-pvc.yaml | 29 +++++++++++++++++++++++++ n8n/redis.yaml | 34 ++++++++++++++++++++++++++++++ 7 files changed, 152 insertions(+) create mode 100644 n8n/README.md create mode 100755 n8n/init.sh create mode 100644 n8n/n8n-ingress.yaml create mode 100644 n8n/n8n.yaml create mode 100644 n8n/namespace.yaml create mode 100644 n8n/pv-pvc.yaml create mode 100644 n8n/redis.yaml diff --git a/n8n/README.md b/n8n/README.md new file mode 100644 index 0000000..2d34b23 --- /dev/null +++ b/n8n/README.md @@ -0,0 +1,9 @@ +## What + +a guide to install n8n in a unique namespace in my k8s cluster + +## How to Init + +``` +./init.sh +``` diff --git a/n8n/init.sh b/n8n/init.sh new file mode 100755 index 0000000..e767d6a --- /dev/null +++ b/n8n/init.sh @@ -0,0 +1,8 @@ +#!/bin/bash +mkdir /var/snap/microk8s/common/mnt/data/n8n/data || true +chmod 777 /var/snap/microk8s/common/mnt/data/n8n/ -R +microk8s.kubectl apply -f namespace.yaml +microk8s.kubectl apply -f pv-pvc.yaml +microk8s.kubectl apply -f redis.yaml +microk8s.kubectl apply -f n8n.yaml +microk8s.kubectl apply -f n8n-ingress.yaml diff --git a/n8n/n8n-ingress.yaml b/n8n/n8n-ingress.yaml new file mode 100644 index 0000000..f980977 --- /dev/null +++ b/n8n/n8n-ingress.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: n8n-ingress + namespace: n8n +spec: + ingressClassName: traefik + rules: + - host: n8n.k8s.xunlang.home + http: + paths: + - backend: + service: + name: n8n-service + port: + number: 5678 + path: / + pathType: Prefix diff --git a/n8n/n8n.yaml b/n8n/n8n.yaml new file mode 100644 index 0000000..1aaf249 --- /dev/null +++ b/n8n/n8n.yaml @@ -0,0 +1,50 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: n8n-deployment + namespace: n8n +spec: + replicas: 1 + selector: + matchLabels: + app: n8n + template: + metadata: + labels: + app: n8n + spec: + containers: + - name: n8n + image: docker.n8n.io/n8nio/n8n + ports: + - containerPort: 5678 + env: + - name: GENERIC_TIMEZONE + value: "Europe/Berlin" + - name: N8N_SECURE_COOKIE + value: "false" + - name: TZ + value: "Europe/Berlin" + volumeMounts: + - name: n8n-data-volume + mountPath: /home/node/.n8n + volumes: + - name: n8n-data-volume + persistentVolumeClaim: + claimName: n8n-pvc +--- +apiVersion: v1 +kind: Service +metadata: + name: n8n-service + namespace: n8n +spec: + type: NodePort + selector: + app: n8n + ports: + - protocol: TCP + port: 5678 + targetPort: 5678 + nodePort: 30080 diff --git a/n8n/namespace.yaml b/n8n/namespace.yaml new file mode 100644 index 0000000..8389695 --- /dev/null +++ b/n8n/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: n8n diff --git a/n8n/pv-pvc.yaml b/n8n/pv-pvc.yaml new file mode 100644 index 0000000..8ab0bc4 --- /dev/null +++ b/n8n/pv-pvc.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: v1 +kind: PersistentVolume +metadata: + name: n8n-pv + namespace: n8n +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + storageClassName: microk8s-hostpath + hostPath: + path: /var/snap/microk8s/common/mnt/data/n8n/data +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: n8n-pvc + namespace: n8n +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi + storageClassName: microk8s-hostpath + valumeName: diff --git a/n8n/redis.yaml b/n8n/redis.yaml new file mode 100644 index 0000000..c0bf1b0 --- /dev/null +++ b/n8n/redis.yaml @@ -0,0 +1,34 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: redis-deployment + namespace: n8n +spec: + replicas: 1 + selector: + matchLabels: + app: redis + template: + metadata: + labels: + app: redis + spec: + containers: + - name: redis + image: redis:latest + ports: + - containerPort: 6379 +--- +apiVersion: v1 +kind: Service +metadata: + name: redis-service + namespace: n8n +spec: + selector: + app: redis + ports: + - protocol: TCP + port: 6379 + targetPort: 6379