Compare commits

...

15 Commits

Author SHA1 Message Date
gitea-admin 4ab4642c9c Merge pull request 'fix: update n8n ExternalSecret API version to v1' (#112) from orion/auto/fix-update-n8n-externalsecret-api-versio-1780181761004 into main
Reviewed-on: #112
2026-05-30 22:59:21 +00:00
gitea-admin 27fbe1ecac fix: update n8n ExternalSecret API version to v1
Validate Manifests / validate (pull_request) Failing after 13s
2026-05-30 22:56:01 +00:00
gitea-admin 6f9c6c028e Merge pull request 'feat: deploy Tailscale operator' (#111) from orion/auto/feat-deploy-tailscale-operator-1780145866429 into main
Reviewed-on: #111
2026-05-30 15:53:34 +00:00
gitea-admin 782c787430 Merge pull request 'fix: update n8n ExternalSecret to v1' (#110) from orion/auto/fix-update-n8n-externalsecret-to-v1-1780145710378 into main
Reviewed-on: #110
2026-05-30 15:53:20 +00:00
gitea-admin 7b6a43318b feat: deploy Tailscale operator
Validate Manifests / validate (pull_request) Failing after 16s
2026-05-30 12:57:47 +00:00
gitea-admin ccd5b4474e feat: deploy Tailscale operator 2026-05-30 12:57:47 +00:00
gitea-admin 73e90cecbb feat: deploy Tailscale operator 2026-05-30 12:57:47 +00:00
gitea-admin ea5a452327 feat: deploy Tailscale operator 2026-05-30 12:57:46 +00:00
gitea-admin 52388ec19f fix: update n8n ExternalSecret to v1
Validate Manifests / validate (pull_request) Failing after 1s
2026-05-30 12:55:10 +00:00
gitea-admin db22643ecc Merge pull request 'feat: deploy N8n with persistent storage and external secret' (#109) from orion/auto/feat-deploy-n8n-with-persistent-storage--1780102304681 into main
Reviewed-on: #109
2026-05-30 00:53:10 +00:00
gitea-admin c7ca361bfd feat: deploy N8n with persistent storage and external secret
Validate Manifests / validate (pull_request) Failing after 0s
2026-05-30 00:51:46 +00:00
gitea-admin 52aba07993 feat: deploy N8n with persistent storage and external secret 2026-05-30 00:51:45 +00:00
gitea-admin 3f10de4965 feat: deploy N8n with persistent storage and external secret 2026-05-30 00:51:45 +00:00
gitea-admin b1699a0c95 feat: deploy N8n with persistent storage and external secret 2026-05-30 00:51:45 +00:00
gitea-admin 904ad9a8e8 feat: deploy N8n with persistent storage and external secret 2026-05-30 00:51:44 +00:00
9 changed files with 199 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
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
+18
View File
@@ -0,0 +1,18 @@
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: n8n
property: N8N_SECRET_KEY
+17
View File
@@ -0,0 +1,17 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: n8n
namespace: apps
spec:
entryPoints:
- websecure
routes:
- match: Host(`n8n.khalisio.com`)
kind: Rule
services:
- name: n8n
port: 80
tls:
secretName: n8n-tls
certResolver: letsencrypt
+11
View File
@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: n8n-data
namespace: apps
spec:
accessModes: [ReadWriteOnce]
storageClassName: longhorn
resources:
requests:
storage: 5Gi
+12
View File
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: n8n
namespace: apps
spec:
selector:
app: n8n
ports:
- port: 80
targetPort: 5678
type: ClusterIP
+36
View File
@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: tailscale-operator
namespace: tailscale
labels:
app: tailscale-operator
spec:
replicas: 1
selector:
matchLabels:
app: tailscale-operator
template:
metadata:
labels:
app: tailscale-operator
spec:
serviceAccountName: tailscale-operator
containers:
- name: tailscale-operator
image: ghcr.io/tailscale/tailscale-operator:v1.78.0
ports:
- containerPort: 8080
env:
- name: TS_AUTH_KEY
valueFrom:
secretKeyRef:
name: tailscale-auth
key: TS_AUTH_KEY
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
+18
View File
@@ -0,0 +1,18 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: tailscale-auth
namespace: tailscale
spec:
refreshInterval: 1h
secretStoreRef:
name: orion-vault
kind: ClusterSecretStore
target:
name: tailscale-auth
creationPolicy: Owner
data:
- secretKey: TS_AUTH_KEY
remoteRef:
key: secret/tailscale
property: TS_AUTH_KEY
+6
View File
@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: tailscale
labels:
app: tailscale
+33
View File
@@ -0,0 +1,33 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: tailscale-operator
namespace: tailscale
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: tailscale-operator
rules:
- apiGroups: [""]
resources: ["pods", "services", "secrets", "configmaps", "nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: ["networking.k8s.io"]
resources: ["ingresses"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["tailscale.com"]
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tailscale-operator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tailscale-operator
subjects:
- kind: ServiceAccount
name: tailscale-operator
namespace: tailscale