我正在用掌 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/

10-16 06:33