Argo CDのGitOps — Gitを正として差分を戻す
GitOpsではGitのマニフェストを望む状態とし、Argo CDがクラスタの実際の状態を継続して比較します。反映は「人がkubectlを打ったか」ではなく、Gitの履歴で追えるようになります。
TL;DR
- Gitの宣言が望む状態、クラスタは実際の状態。
- Argo CDは差分を検知し、同期して整合させる。
- 緊急の手動変更も、最終的にはGitへ戻さないとドリフトになる。
01Gitが望む状態の記録になる
開発者のcommit→Gitリポジトリ→Argo CD→クラスタの一本道

マニフェストをGitで管理すれば、誰が何を変えたかをレビューと履歴で追えます。クラスタを直接の正本にせず、変更経路をGitに揃えることがGitOpsの出発点です。
押さえること:Gitの宣言が望む状態、クラスタは実際の状態。
02差分検知と同期は別の仕事
Desired/Liveの比較からSyncへ進む状態図

Argo CDはGitで生成されるリソースとクラスタを比較してOutOfSyncを検知します。同期はGit側にクラスタを合わせる操作で、設定により自動同期にも手動同期にもできます。
押さえること:Argo CDは差分を検知し、同期して整合させる。
03手動変更はドリフトとして扱う
手動変更で差分発生→同期で復元、またはGitへ変更を戻す分岐

クラスタで直接削除や変更をすると、Gitにない状態差が生まれます。自動同期が有効なら復旧されることがありますが、意図した変更なら必ずGitに反映して次の同期で再現できるようにします。
押さえること:緊急の手動変更も、最終的にはGitへ戻さないとドリフトになる。
結論
- Gitの宣言が望む状態、クラスタは実際の状態。
- Argo CDは差分を検知し、同期して整合させる。
- 緊急の手動変更も、最終的にはGitへ戻さないとドリフトになる。