ArgoCDにおけるkubernetesリソースの変更(特にprune周り)がどうなっているのかをコードから追いましたので備忘的に残しておきます。
以下の通りです。
- ローカルのManifest、またはGitリポジトリからManifestを取得
- Manifestを使ってkubenetesリソースをオブジェクトとして生成する
- 現在のArgoCDが把握しているKubernetesリソースの状態と2で生成したオブジェクトの状態を比較する
- 比較した差分を把握しKubernetesクラスタに対して更新・削除・追加を実施する
ArgoCDが現在のkubernetesのリソース状態を取得していることにより、コードとの違い(コードから削除されたもの)を正確に判断し削除を実施することができる。