# ADR-034: GitOps 採用策略 (ArgoCD) | 欄位 | 值 | |------|-----| | **狀態** | ✅ 已採用 | | **日期** | 2026-03-28 (台北) | | **決策者** | 首席架構師 | | **影響範圍** | K3s 部署流程 | --- ## 背景 AWOOOI 目前使用 GitHub Actions 進行 CI/CD,部署流程為: 1. Push to main 2. GitHub Actions 建構映像檔 3. kubectl apply 部署到 K3s 此流程的問題: - 無法追蹤部署狀態 - 手動 rollback 困難 - 配置漂移無法偵測 --- ## 決策 採用 **ArgoCD** 作為 GitOps 工具,實現: - Git 作為單一真實來源 - 自動同步 K3s 狀態 - 視覺化部署管理 ### 部署架構 ``` GitHub (main) → ArgoCD → K3s Cluster ↓ 自動同步 / 手動同步 ``` ### 存取資訊 | 項目 | 值 | |------|-----| | URL | https://192.168.0.125:30443 | | 帳號 | admin | | 版本 | v3.3.6 | --- ## 選項評估 | 選項 | 優點 | 缺點 | 決策 | |------|------|------|------| | **ArgoCD** | CNCF 畢業專案、UI 完整 | 學習曲線 | ✅ 採用 | | Flux | 輕量、Git-native | 無 UI | ❌ | | 維持 kubectl | 簡單 | 無追蹤、漂移風險 | ❌ | --- ## 實施階段 | 階段 | 內容 | 狀態 | |------|------|------| | 1 | ArgoCD 部署 | ✅ 完成 | | 2 | Sealed Secrets 整合 | ✅ 完成 | | 3 | AWOOOI Application 建立 | 📋 待執行 | | 4 | 自動同步啟用 | 📋 待評估 | --- ## 風險與緩解 | 風險 | 緩解措施 | |------|---------| | 自動同步造成意外部署 | 初期使用手動同步 | | Secrets 外洩 | 使用 Sealed Secrets | | 單點故障 | ArgoCD HA 模式 (待評估) | --- ## 相關文件 - ArgoCD 官方文檔: https://argo-cd.readthedocs.io/ - Sealed Secrets: https://github.com/bitnami-labs/sealed-secrets - K3S-OPTIMIZATION-RUNBOOK.md Section 7