フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

ArgoCDでkubernetesとGitの差分を比較するアルゴリズムについて

f:id:lirlia:20200414043748p:plain

ArgoCDにおけるkubernetesリソースの変更(特にprune周り)がどうなっているのかをコードから追いましたので備忘的に残しておきます。


以下の通りです。

  1. ローカルのManifest、またはGitリポジトリからManifestを取得
  2. Manifestを使ってkubenetesリソースをオブジェクトとして生成する
  3. 現在のArgoCDが把握しているKubernetesリソースの状態2で生成したオブジェクトの状態を比較する
  4. 比較した差分を把握しKubernetesクラスタに対して更新・削除・追加を実施する

ArgoCDが現在のkubernetesのリソース状態を取得していることにより、コードとの違い(コードから削除されたもの)を正確に判断し削除を実施することができる。