3.4 KiB
3.4 KiB
title, updated, tags
| title | updated | tags | |||||
|---|---|---|---|---|---|---|---|
| n8n | 2026-07-11 |
|
개요
워크플로 자동화. K3s n8n 네임스페이스.
- URL: https://n8n.inouter.com
- 이미지:
n8nio/n8n:2.29.10(2026-07-11 업그레이드, ../history/2026-07-11-n8n-upgrade-2.29.10-helm-native) - DB:
pgpool.db.svc.cluster.local:9999(Patroni 직결, ../infra/postgresql-ha 참조) - 텔레메트리:
N8N_DIAGNOSTICS_ENABLED=false(비활성 — 아웃바운드 차단 환경에서 재시도 폭주로 자체 IP 차단 유발했던 이력 있음) - 리소스:
limits.memory: 1Gi/requests.memory: 512Mi(2.29.10부터 512Mi로는 OOM)
Gitea OIDC SSO
n8n-oidc 사용 — n8n external hooks 방식, enterprise 불필요.
구성 요소
| 리소스 | 내용 |
|---|---|
ConfigMap n8n-oidc-hooks |
hooks.js (n8n-oidc 프로젝트 원본) |
Secret n8n-oidc-secret |
OIDC_CLIENT_ID, OIDC_CLIENT_SECRET |
ConfigMap n8n-app-config |
OIDC 관련 env vars |
환경변수 (n8n-app-config)
EXTERNAL_HOOK_FILES=/opt/n8n-oidc/hooks.js
OIDC_ISSUER_URL=https://gitea.inouter.com
OIDC_REDIRECT_URI=https://n8n.inouter.com/auth/oidc/callback
OIDC_SCOPES=openid profile email
N8N_ADDITIONAL_NON_UI_ROUTES=auth
EXTERNAL_FRONTEND_HOOKS_URLS=/assets/oidc-frontend-hook.js
Gitea OAuth2 앱
- name:
n8n - redirect URI:
https://n8n.inouter.com/auth/oidc/callback - confidential client: yes
- Gitea admin → Settings → Applications 에서 관리
배포 구조 — Helm 완전 편입 (2026-07-11 정리 완료)
n8n은 Helm release(n8n-2.0.1, OCI 차트 oci://8gears.container-registry.com/library/n8n). 한때 OIDC 관련 리소스가 kubectl apply/patch로 Helm 값 외부에서 수동 추가되어 있어 helm upgrade 시 드리프트(설정 유실) 위험이 있었으나, 2026-07-11 업그레이드 작업 중 전부 Helm values로 편입 완료 (../history/2026-07-11-n8n-upgrade-2.29.10-helm-native). 이제 helm upgrade를 그대로 실행해도 안전함.
main.config: 임의 키가 재귀적으로KEY_UPPER_SNAKEenv var로 변환됨(toEnvVarshelper,n8n-app-configConfigMap 생성). OIDC 관련 키(external_hook_files,oidc_issuer_url등) 전부 이 안에 선언되어 있음.main.extraEnv:OIDC_CLIENT_ID/OIDC_CLIENT_SECRET을valueFrom.secretKeyRef로n8n-oidc-secret참조. (각 entry는 rawtoYaml이라value든valueFrom이든 표준 EnvVar 구조 그대로 지원)main.extraVolumes/main.extraVolumeMounts:n8n-oidc-hooksConfigMap →/opt/n8n-oidc/hooks.js마운트.- values.yaml 실물 파일:
kaffa/helm-chartsrepovalues/n8n.yaml. 업그레이드/설정 변경 시 이 파일 수정 →helm upgrade n8n oci://8gears.container-registry.com/library/n8n --version 2.0.1 -n n8n -f values/n8n.yaml→ 커밋/푸시.
동작
- n8n 로그인 페이지에 "Sign in with SSO" 버튼 표시
- 클릭 → Gitea authorize → 콜백 → JIT user provisioning (첫 유저 = owner)
- SSO 우회:
https://n8n.inouter.com/signin?showLogin=true로 로컬 로그인
볼륨 마운트
volumes:
- name: oidc-hooks
configMap:
name: n8n-oidc-hooks
volumeMounts:
- name: oidc-hooks
mountPath: /opt/n8n-oidc/hooks.js
subPath: hooks.js
readOnly: true
관련
- ../infra/postgresql-ha — pgpool-II 접속 경로