Closed10

[Argo CD] Applicationの削除

mikutasmikutas

ツリーの根ノードを消すときはDelete

time="2023-02-16T09:35:41Z" level=info msg="received unary call /application.ApplicationService/Delete" grpc.method=Delete grpc.request.content="name:\"foo-apps\" cascade:false propagationPolicy:\"\" appNamespace:\"argocd\" " grpc.service=application.ApplicationService grpc.start_time="2023-02-16T09:35:41Z" span.kind=server system=grpc
mikutasmikutas

ツリーの根じゃないノードを消すときはDeleteResource

time="2023-02-16T09:37:29Z" level=info msg="received unary call /application.ApplicationService/DeleteResource" grpc.method=DeleteResource grpc.request.content="name:\"foo-apps\" namespace:\"argocd\" resourceName:\"fuga\" version:\"v1alpha1\" group:\"argoproj.io\" kind:\"Application\" force:false orphan:true appNamespace:\"argocd\" " grpc.service=application.ApplicationService grpc.start_time="2023-02-16T09:37:29Z" span.kind=server system=grpc
mikutasmikutas

ツリーの根じゃないノードとしてのApplicationを削除するとき、

  • Applicationにfinalizerがついている
    • →finalizerの管理者として、Argo CDはApplicationの小リソースを削除「する」認識
  • 削除するときUIでNon-cascading (Orphan) Deleteを選択した
    • kubectl delete --cascade=orphanしたのと同じ
      • Kubernetes本体はowner referencesによる依存関係があるリソースは削除「しない」認識
        • Applicationの子リソースにowner referencesはないため、子リソースは「いない」→オプションの影響力はない

→結果、Applicationの子リソースは削除「される」

mikutasmikutas

ツリーの根ノードとしてのApplicationを削除するときは、Applicationそれ自体の削除についてkubectl deleteを行うのではなくArgo CD内で処理されるため、Applicationにfinalizerがついていても、UIで選択したNon-cascading (Orphan) Deleteが優先され、

→結果、Applicationの子リソースは削除「されない」

このスクラップは2023/02/21にクローズされました