我正在用掌 Helm 做一个非常简单的图表。
它包括部署一个只有一个对象(“/templates/pod.yaml”)的图表,只要文件 Values.yaml 的参数为真,就必须部署该图表。
以我的案例为例,这就是我所拥有的:
/templates/pod.yaml
{{- if eq .Values.shoudBeDeployed true }}
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
{{- end}}
Values.yaml
shoudBeDeployed: true
因此,当我将 shoudBeDeployed 与
true
值一起使用时,helm 会正确安装它。我的问题是,当 shoudBeDeployed 是
false
时,helm 不会部署任何东西(如我所料),但 helm 显示以下消息:Error: release CHART_NAME failed: no objects visited
如果我执行
helm ls
,我会发现 CHART_NAME 与 STATUS FAILED
一起部署。我的问题是是否有办法让它不作为失败的掌 Helm 部署。所以我想在使用命令
helm ls
时看不到它我知道我可以将 shoudBeDeployed 变量的逻辑移到图表之外,然后根据其值是否部署图表,但我想知道是否有仅使用 helm 的解决方案。
最佳答案
@pcampana 我认为如果没有什么可部署的,就没有办法停止 helm 部署。但是这里有一个技巧,您可以使用它来删除掌 Helm chart ,如果它是
失败的。
其中 demo 是掌 Helm chart 表目录, temp 是发布名称。
版本名称是强制性的。
一种情况是当您看到错误时
您可以使用上面的命令来部署 helm chart。
我认为这可能对你有用。
关于kubernetes - 没有对象的掌 Helm 部署,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58954297/