Closed10
[Argo CD] Applicationの削除
Delete
DeleteResource
ツリーの根ノードを消すときは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
ツリーの根じゃないノードを消すときは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
DeleteResource
はkubectl deleteと同じ
Kubernetes本体のcascading deletionはowner referencesによって制御される
Argo CDがApplicationとそのデプロイ対象リソースの依存関係(根と子ノードの関係)を検知するために使うのはapp.kubernetes.io/instance
ラベル
ツリーの根じゃないノードとしてのApplicationを削除するとき、
- Applicationにfinalizerがついている
- →finalizerの管理者として、Argo CDはApplicationの小リソースを削除「する」認識
- 削除するときUIで
Non-cascading (Orphan) Delete
を選択した- →
kubectl delete --cascade=orphan
したのと同じ- Kubernetes本体はowner referencesによる依存関係があるリソースは削除「しない」認識
- Applicationの子リソースにowner referencesはないため、子リソースは「いない」→オプションの影響力はない
- Kubernetes本体はowner referencesによる依存関係があるリソースは削除「しない」認識
- →
→結果、Applicationの子リソースは削除「される」
ツリーの根ノードとしてのApplicationを削除するときは、Applicationそれ自体の削除についてkubectl delete
を行うのではなくArgo CD内で処理されるため、Applicationにfinalizerがついていても、UIで選択したNon-cascading (Orphan) Delete
が優先され、
→結果、Applicationの子リソースは削除「されない」
pruneオプション付きsyncをしたときもDeleteResourceと同じ
このスクラップは2023/02/21にクローズされました