CI/CD + GitOps Flow(含 Developer / Operator)
本頁描述 GitOps 架構下 Source Repository、Pipeline Runner、Manifest Repository、Kubernetes
以及使用者 Developer / Operator 在兩個情境中的互動流程:
- Scenario 1:CI → 自動更新 Manifest → 自動 CD
- Scenario 2:手動更新 Manifest → 觸發 CD
Scenario 1 — Developer 提交 Code → CI 自動驅動 CD
此流程代表最典型的 GitOps 自動化:
- Developer 在 Source Repo 推程式碼
- CI Pipeline 自動執行(Build/Test/Scan/Build Image)
- CI 自動更新 Manifest Repo(更新 image tag)
- manifest repo push 觸發 CD Pipeline
- CD 套用至 Kubernetes
- Developer 接收 Deployment 結果
Mermaid Sequence Diagram
Scenario 2 — Operator / Developer 手動修改 Manifest → CD
此流程適用於:
- Hotfix
- Image 不變但要修改 replica/env/resources
- 手動回滾指定版本
- 緊急狀況需臨時修補
流程步驟:
- Operator 手動修改 Manifest Repository
- Push commit 後觸發 CD Pipeline
- CD 套用新 manifest 至 Kubernetes
- 回傳結果給 Operator
Mermaid Sequence Diagram
補充說明
GitOps 核心精神:
- 所有 Kubernetes 所需狀態皆由 Manifest Repository 宣告
- CI 做 Build/Test/Scan,不直接部署
- CD 完全由 Manifest 更新觸發
Developer 的責任
- 撰寫功能
- 推 code、觸發 CI
- 間接驅動 CD(透過 manifest auto-update)
Operator 的責任
- 管控 Infra、K8s cluster
- 在必要時手動調整 manifest
- 主導 Hotfix、Rollback、資源調整