如果helm install失败并且--atomic选项已用于安装版本,Helm是否也删除创建的命名空间?我无法在Helm帮助页面上找到此信息。
helm install
--atomic
k0pti3hp1#
命名空间未被删除。在Helm源代码中,"helm.sh/helm/v3/pkg/action".Install具有helm install实际运行的主逻辑。--atomic处理更具体地是在(*Install).failRelease()中,它大约是
"helm.sh/helm/v3/pkg/action".Install
(*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。但这两种方法都不会删除命名空间。
(*"helm.sh/helm/v3/pkg/storage".Storage).Update()
helm history
Atomic
install.go
--wait
helm uninstall
1条答案
按热度按时间k0pti3hp1#
命名空间未被删除。
在Helm源代码中,
"helm.sh/helm/v3/pkg/action".Install
具有helm install
实际运行的主逻辑。--atomic
处理更具体地是在(*Install).failRelease()
中,它大约是字符串
最后一行在这里很重要。这将调用
(*"helm.sh/helm/v3/pkg/storage".Storage).Update()
,helm history
可以找到失败版本的事实。在正常的Helm配置中,它位于目标命名空间的Secret中。由于历史记录在命名空间中的Secret中,因此无法删除命名空间。在源代码中搜索
Atomic
设置很容易,至少在install.go
中,它只做了两件事:隐式启用--wait
,以及在安装失败时运行helm uninstall
。但这两种方法都不会删除命名空间。