kubernetes 如果`helm install`失败并且使用了--atomic选项,Helm是否也删除创建的命名空间

u5rb5r59  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(199)

如果helm install失败并且--atomic选项已用于安装版本,Helm是否也删除创建的命名空间?
我无法在Helm帮助页面上找到此信息。

k0pti3hp

k0pti3hp1#

命名空间未被删除。
在Helm源代码中,"helm.sh/helm/v3/pkg/action".Install具有helm install实际运行的主逻辑。--atomic处理更具体地是在(*Install).failRelease()中,它大约是

rel.SetStatus(release.StatusFailed, fmt.Sprintf("Release %q failed: %s", i.ReleaseName, err.Error()))
if i.Atomic {
    uninstall := NewUninstall(i.cfg)
    ... uninstall.Run(i.ReleaseName) ...
}
i.recordRelease(rel)

字符串
最后一行在这里很重要。这将调用(*"helm.sh/helm/v3/pkg/storage".Storage).Update()helm history可以找到失败版本的事实。在正常的Helm配置中,它位于目标命名空间的Secret中。由于历史记录在命名空间中的Secret中,因此无法删除命名空间。
在源代码中搜索Atomic设置很容易,至少在install.go中,它只做了两件事:隐式启用--wait,以及在安装失败时运行helm uninstall。但这两种方法都不会删除命名空间。

相关问题