没有对象的helm部署

问题描述 投票:0回答:1

我正在用舵手做一个非常简单的图表。它包括部署仅包含一个对象(“ /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变量的逻辑移到图表之外,然后根据其值来部署或不部署图表,但是我想知道是否只有使用舵才能解决方案。

kubernetes kubernetes-helm
1个回答
2
投票

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

helm install --name temp demo --atomic

其中demo是头盔图表目录,而temp是发行名称。要使此功能正常运行,必须使用发行名称。

一种情况是当您看到错误时

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

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

我认为这可能对您有用。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.