apiVersion: v1 kind: Service metadata: name: n8n namespace: default spec: ports: - protocol: TCP name: web port: 5678 targetPort: 5678 selector: app: n8n --- 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: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: microk8s-hostpath --- 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