我可以让Helm自动删除由Helm创建的应用创建的资源吗?

时间:2019-09-12 01:43:39

标签: kubernetes-helm

我有一个要与Helm一起部署的应用程序。部署后,应用程序本身有时会在与应用程序相同的名称空间中创建其他Kubernetes资源(例如DeploymentsServices)。当我在Helm发行版上运行helm delete时,它会删除最初由Helm创建的所有资源,但是会保留由应用程序创建的资源。我也想清理这些资源,我想知道是否可以让Helm自动执行此操作。

我尝试将here中的推荐标签(例如app.kubernetes.io/managed-byapp.kubernetes.io/instance应用于我的新资源,但是Helm仍然没有删除它们。

我也浏览了Helm手册,但对于Helm如何决定其“拥有”并可以删除的资源一无所知。

(我知道我可以为此使用Helm pre-deletepost-delete钩子,但是通过Helm的常规删除过程来执行此操作比较干净。)

1 个答案:

答案 0 :(得分:0)

所以我不是100%地确定您的设置,但是,如果您谈论的是CRD和控制器,Kubernetes会使用一个名为finalizers和ownerRefs的概念,finalizer与删除资源前X(https://book.kubebuilder.io/reference/using-finalizers.html相似。很好的参考),

OwnerReferences本质上意味着,当我删除资源时,以该资源为所有者设置的任何东西都将被删除,我已经在自定义控制器中进行了设置,但从未尝试在Yaml(https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/#owners-and-dependents)上手动进行设置< / p>