首页 > 解决方案 > 为什么“helm install --dry-run”没有给我一个关于冲突的错误,但实际的“helm install”呢?

问题描述

我像这样安装了我的应用程序:

helm install my-app my-application/ --set externalName.namespace=app-layer

检查 pod 和服务,一切都安装正确。

然后我尝试了一个dry-run期望会发生冲突的方法,但它只是打印出 YAML 和一些关于之前安装的信息。

helm install my-app my-application/ --set externalName.namespace=app-layer --dry-run

以上打印出来:

NAME: my-app
LAST DEPLOYED: Tue Dec 22 19:52:33 2020
NAMESPACE: default
STATUS: pending-install
REVISION: 1
TEST SUITE: None
USER-SUPPLIED VALUES:
externalName:
  namespace: app-layer

COMPUTED VALUES:
#...elided by me...

HOOKS:
MANIFEST:
---
#...elided by me...

但是,当我尝试安装时出现此错误:

Error: cannot re-use a name that is still in use

为什么试运行没有捕捉到它?

标签: kubernetesyamlkubernetes-helm

解决方案


在试运行模式下,availableName检查会在实际检查您提供的名称是否正在使用之前显式停止。如果您明确提供空名称或名称长度超过 53 个字符,您仍然会收到投诉。

实际上,我倾向于使用helm upgrade --install而不是helm install大部分时间,因为即使已经安装了图表,它也会起作用。


推荐阅读