feat: add n8n Helm chart for Kubernetes on Raspberry Pi (ARM64)
Helm Chart Release / release-chart (push) Successful in 4s
Helm Chart Release / release-chart (push) Successful in 4s
- n8nio/n8n 2.19.2 (multi-arch, linux/arm64 ready) - Single-container deployment with persistent storage - SQLite default / PostgreSQL option - Basic auth, encryption key via Secret - Ingress, HPA, PDB, NetworkPolicy support - Gitea CI: weekly auto-update + release workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# n8n Helm Chart - CLAUDE.md
|
||||
|
||||
## リポジトリ概要
|
||||
|
||||
n8n ワークフロー自動化ツールを Kubernetes 上にデプロイするHelmチャートです。
|
||||
Raspberry Pi などのベアメタル上で動作する Kubernetes クラスタを想定した構成になっています。
|
||||
`n8nio/n8n` 公式マルチアーキテクチャイメージ(linux/arm64 対応)を使用します。
|
||||
|
||||
## ARM 対応について
|
||||
|
||||
`n8nio/n8n` は linux/arm64 に対応したマルチアーキテクチャイメージです。
|
||||
Raspberry Pi 4 以降(arm64)で動作します。
|
||||
|
||||
## Git 情報
|
||||
|
||||
- **ユーザー名**: Claude
|
||||
- **メールアドレス**: claude@cafepieters.com
|
||||
- **リポジトリ**: ssh://git@192.168.9.65/helmchart/n8n.git
|
||||
|
||||
## チャート構成
|
||||
|
||||
| リソース | 説明 |
|
||||
|---|---|
|
||||
| Deployment | n8n 本体(シングルコンテナ) |
|
||||
| Service | LoadBalancer / ClusterIP(ポート 5678) |
|
||||
| PVC | n8n データ(ワークフロー・認証情報・SQLite DB)永続化 |
|
||||
| Secret | 暗号化キー・Basic認証パスワード・DBパスワード |
|
||||
| Ingress | オプション(nginx ingress controller 対応) |
|
||||
| HPA | オプション(※SQLiteモード時はスケールアウト非推奨) |
|
||||
| PDB | Pod Disruption Budget |
|
||||
| NetworkPolicy | オプション |
|
||||
|
||||
## データ永続化
|
||||
|
||||
n8n のデータは `/home/node/.n8n` に保存されます。
|
||||
`persistence.enabled: true`(デフォルト)で PVC に永続化されます。
|
||||
**persistence.enabled: false の場合、Pod 再起動でデータが失われます。**
|
||||
|
||||
## データベース
|
||||
|
||||
- デフォルト: SQLite(`/home/node/.n8n/database.sqlite`)
|
||||
- 本番推奨: PostgreSQL(`n8n.database.type: postgresdb`)
|
||||
|
||||
## リリースフローのルール
|
||||
|
||||
### バージョン番号の方針
|
||||
- Helmチャートのバージョン番号(`Chart.yaml` の `version` / `appVersion`)は、**n8n のバージョン番号と同一**とする。
|
||||
|
||||
### 自動リリース条件
|
||||
- **n8n バージョン更新時**: `values.yaml` と `Chart.yaml` を更新し、Gitタグ・Giteaリリース・Gitea Package Registry への発行まで行う。
|
||||
|
||||
### 手動リリース(臨時)
|
||||
- 改修作業などで手動リリースが必要な場合は、バージョン末尾にアルファベットを付与する。
|
||||
- 例: `2.19.2` → `2.19.2-a`, `2.19.2-b`
|
||||
|
||||
## ワークフロー構成
|
||||
|
||||
### `.gitea/workflows/image-update-and-release.yaml`
|
||||
毎週月曜日 3:00 AM(JST 12:00 PM)に自動実行され、以下を行う:
|
||||
1. Docker Hub から n8n の最新バージョンを取得
|
||||
2. 更新がある場合は `values.yaml` と `Chart.yaml` を更新
|
||||
3. Gitタグ・Giteaリリース・Gitea Package Registry への発行を実施
|
||||
|
||||
### `.gitea/workflows/helm-release.yaml`
|
||||
`main` ブランチへのプッシュ時に自動実行。Gitea Package Registry にチャートを発行する。
|
||||
|
||||
## 必要な Gitea Secrets
|
||||
|
||||
| シークレット名 | 用途 |
|
||||
|---|---|
|
||||
| `GITEA_TOKEN` | Gitea API(リリース作成・タグ操作) |
|
||||
| `REGISTRY_USER` | Gitea Package Registry ユーザー名 |
|
||||
| `REGISTRY_TOKEN` | Gitea Package Registry トークン |
|
||||
Reference in New Issue
Block a user