我正在用舵手做一个非常简单的图表。它包括部署仅包含一个对象(“ /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
,则会得到CHART_NAME与STATUS FAILED
一起部署。
我的问题是,是否有一种方法可以将它作为失败的头盔部署。所以我不想在使用命令helm ls
我知道我可以将shoudBeDeployed变量的逻辑移到图表之外,然后根据其值来部署或不部署图表,但是我想知道是否只有使用舵才能解决方案。
@@ pcampana,我认为如果没有要部署的内容,则无法停止头盔的部署。但这是一个技巧,您可以删除舵图失败。
helm install --name temp demo --atomic
其中demo是头盔图表目录,而temp是发行名称。要使此功能正常运行,必须使用发行名称。
一种情况是当您看到错误时
错误:发布临时失败:未访问任何对象
您可以使用上述命令来部署头盔图表。
我认为这可能对您有用。