Compare commits

..

2 Commits

Author SHA1 Message Date
gitea-admin 17db71c7b8 feat: add n8n service and ingress
Validate Manifests / validate (pull_request) Has been cancelled
2026-05-28 17:38:48 +00:00
gitea-admin 1386d9860b feat: add n8n service and ingress 2026-05-28 17:38:48 +00:00
5 changed files with 21 additions and 110 deletions
-48
View File
@@ -1,48 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: n8n
namespace: apps
labels:
app: n8n
spec:
replicas: 1
selector:
matchLabels:
app: n8n
template:
metadata:
labels:
app: n8n
spec:
containers:
- name: n8n
image: n8nio/n8n:1.57.0
ports:
- containerPort: 5678
env:
- name: N8N_HOST
value: "n8n.khalisio.com"
- name: N8N_PROTOCOL
value: "https"
- name: WEBHOOK_URL
value: "https://n8n.khalisio.com/"
- name: N8N_ENCRYPTION_KEY
valueFrom:
secretKeyRef:
name: n8n-secret
key: N8N_ENCRYPTION_KEY
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
volumeMounts:
- name: n8n-data
mountPath: /home/node/.n8n
volumes:
- name: n8n-data
persistentVolumeClaim:
claimName: n8n-data
-38
View File
@@ -1,38 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: n8n-secret
namespace: apps
spec:
refreshInterval: 1h
secretStoreRef:
name: orion-vault
kind: ClusterSecretStore
target:
name: n8n-secret
creationPolicy: Owner
data:
- secretKey: N8N_SECRET_KEY
remoteRef:
key: apps/n8n
property: N8N_SECRET_KEY
- secretKey: DB_HOST
remoteRef:
key: apps/n8n
property: DB_HOST
- secretKey: DB_PORT
remoteRef:
key: apps/n8n
property: DB_PORT
- secretKey: DB_NAME
remoteRef:
key: apps/n8n
property: DB_NAME
- secretKey: DB_USER
remoteRef:
key: apps/n8n
property: DB_USER
- secretKey: DB_PASSWORD
remoteRef:
key: apps/n8n
property: DB_PASSWORD
+18 -11
View File
@@ -1,17 +1,24 @@
apiVersion: traefik.io/v1alpha1 apiVersion: networking.k8s.io/v1
kind: IngressRoute kind: Ingress
metadata: metadata:
name: n8n name: n8n
namespace: apps namespace: apps
annotations:
khalisio.io/crowdsec-bouncer: "true"
khalisio.io/authentik-policy: "policy:n8n"
cert-manager.io/cluster-issuer: letsencrypt-prod
spec: spec:
entryPoints: ingressClassName: traefik
- websecure
routes:
- match: Host(`n8n.khalisio.com`)
kind: Rule
services:
- name: n8n
port: 80
tls: tls:
- hosts: [n8n.khalisio.com]
secretName: n8n-tls secretName: n8n-tls
certResolver: letsencrypt rules:
- host: n8n.khalisio.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: n8n
port: { number: 80 }
-11
View File
@@ -1,11 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: n8n-data
namespace: apps
spec:
accessModes: [ReadWriteOnce]
storageClassName: longhorn
resources:
requests:
storage: 5Gi
+2 -1
View File
@@ -7,6 +7,7 @@ spec:
selector: selector:
app: n8n app: n8n
ports: ports:
- port: 80 - name: http
port: 80
targetPort: 5678 targetPort: 5678
type: ClusterIP type: ClusterIP