跳至主要内容

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 自動化:

  1. Developer 在 Source Repo 推程式碼
  2. CI Pipeline 自動執行(Build/Test/Scan/Build Image)
  3. CI 自動更新 Manifest Repo(更新 image tag)
  4. manifest repo push 觸發 CD Pipeline
  5. CD 套用至 Kubernetes
  6. Developer 接收 Deployment 結果

Mermaid Sequence Diagram

Scenario 2 — Operator / Developer 手動修改 Manifest → CD

此流程適用於:

  • Hotfix
  • Image 不變但要修改 replica/env/resources
  • 手動回滾指定版本
  • 緊急狀況需臨時修補

流程步驟:

  1. Operator 手動修改 Manifest Repository
  2. Push commit 後觸發 CD Pipeline
  3. CD 套用新 manifest 至 Kubernetes
  4. 回傳結果給 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、資源調整