基于列表的helm图表条件安装

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

我正在尝试找到一种方法来选择性地安装基于值文件中的列表或地图(真的不介意哪个)的清单。

在我的值文件中

provisioners: ["gp","test"]

在清单中我有

{{- if has "test" .Values.provisioners  }}

我也尝试过

provisioners: 
- "gp"
- "test"

并将其放入 yaml 中

{{- if hasKey  .Values.provisioners "test" }}

但我无法以任何一种方式工作,图表从不安装任何东西。

我觉得我错过了一些非常基本的东西,但我不知道是什么。有人能指出我正确的方向吗?

kubernetes kubernetes-helm
1个回答
0
投票

我认为您没有共享模板中的所有内容,可能还有其他内容。您已经做的事情是正确的,正如下面我的示例所示:

# templates/configmap.yaml
{{- if has "test" .Values.provisioners }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-config
  namespace: default
data:
  config.yaml: |
    attr=content
{{- end }}
{{- if has "gp" .Values.provisioners }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: gp-config
  namespace: default
data:
  config.yaml: |
    attr=content
{{- end }}
{{- if has "unknown" .Values.provisioners }}
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: not-templated-config
  namespace: default
data:
  config.yaml: |
    attr=content
{{- end }}

根据本地图表输出

helm template .

---
# Source: chart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-config
  namespace: default
data:
  config.yaml: |
    attr=content
---
# Source: chart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: gp-config
  namespace: default
data:
  config.yaml: |
    attr=content
© www.soinside.com 2019 - 2024. All rights reserved.