我正在用掌舵做一个非常简单的图表。 它包括仅使用一个对象(“ /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变量的逻辑移到图表外,然后根据其值来部署或不部署图表,但是我想知道是否存在仅使用头盔的解决方案。
答案 0 :(得分:2)
@pcampana我认为,如果没有要部署的内容,则无法停止头盔部署。但这是一个技巧,您可以删除舵图 失败。
helm install --name temp demo --atomic
其中demo是掌舵图表目录,temp是发行名称。 发布名称是必不可少的。
一种情况是看到错误
错误:发布临时文件失败:未访问任何对象
您可以使用上述命令来部署头盔图表。
我认为这可能对您有用。