头盔无任何物体展开

时间:2019-11-20 12:23:33

标签: kubernetes kubernetes-helm

我正在用掌舵做一个非常简单的图表。 它包括仅使用一个对象(“ /templates/pod.yaml”)部署图表,即使文件Values.yaml的参数为true,也必须部署该对象。 为了提供我的案例的例子,这就是我所拥有的:

/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,我将获得STATUS FAILED部署的CHART_NAME。

我的问题是,是否有一种方法可以防止失败的头盔部署。因此,我不想在使用命令helm ls

时看到它

我知道我可以将shoudBeDeployed变量的逻辑移到图表外,然后根据其值来部署或不部署图表,但是我想知道是否存在仅使用头盔的解决方案。

1 个答案:

答案 0 :(得分:2)

@pcampana我认为,如果没有要部署的内容,则无法停止头盔部署。但这是一个技巧,您可以删除舵图  失败。

  

helm install --name temp demo --atomic

其中demo是掌舵图表目录,temp是发行名称。 发布名称是必不可少的。

一种情况是看到错误

  

错误:发布临时文件失败:未访问任何对象

您可以使用上述命令来部署头盔图表。

我认为这可能对您有用。