我将我的Helm部署部署到隔离的名称空间。
删除名称空间将删除其中的所有资源-Helm部署除外。
删除Helm部署将删除其中的所有资源-命名空间除外。
我不得不这样做似乎多余:
helm del `helm ls NAMESPACE --short` --purge
kubectl delete namespace NAMESPACE
我宁愿只删除我的命名空间,并有Helm部署也清除-这可能吗?
我将我的Helm部署部署到隔离的名称空间。
删除名称空间将删除其中的所有资源-Helm部署除外。
删除Helm部署将删除其中的所有资源-命名空间除外。
我不得不这样做似乎多余:
helm del `helm ls NAMESPACE --short` --purge
kubectl delete namespace NAMESPACE
我宁愿只删除我的命名空间,并有Helm部署也清除-这可能吗?
2条答案
按热度按时间u4vypkhs1#
删除命名空间将删除其中的所有资源-helm部署除外
这是不可能的(删除名称空间意味着删除其中的所有内容,没有任何例外),必须意味着表示Helm部署概念的状态不在该名称空间中。Helm将这些作为配置Map存储在
TILLER_NAMESPACE
中。请参见此处和此处。毫不奇怪,如果您使用
helm
创建一些资源,然后“在引擎盖下”直接通过kubectl
删除这些资源,Helm的世界状态不会导致该部署消失。删除helm部署将删除其中的所有资源-命名空间除外
这听起来像是预期的行为。假设您使用
kubectl
在带外创建了名称空间,它不是您的Helm部署的一部分。因此删除Helm部署不会删除该名称空间。如果您使用
kubectl create namespace NS
和helm install CHART --namespace NS
,那么要进行清理,您需要先使用helm delete
发布版本,然后使用kubectl delete
命名空间,这并不奇怪。我所能想到的唯一方法是让Helm图表本身创建一个名称空间,并在该名称空间内创建所有后续的名称空间范围内的资源。Here就是一个这样做的示例。
yvt65v4c2#
创建了一个PR以清除从helm部署的所有资源。请单击链接--〉https://github.com/helm/helm/issues/1464
希望在将来的版本中能够解决这个问题