kubernetes 基于列表舵图条件安装器

u5rb5r59  于 2023-01-29  发布在  Kubernetes
关注(0)|答案(1)|浏览(110)

我试图找到一种方法,可以根据值文件中的列表或Map(实际上不介意是哪一个)选择性地安装清单。
在我的值文件中

provisioners: ["gp","test"]

在旅客名单上我有

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

我也试过

provisioners: 
- "gp"
- "test"

把这个放进yaml里

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

但我不能用任何一种方法工作,图表从来没有安装任何东西。
我觉得我错过了一些很基本的东西,但我不知道是什么。谁能给我指一下正确的方向?

3htmauhk

3htmauhk1#

我不认为你分享了模板中的所有内容,可能还有其他内容。你已经做的是正确的,就像我下面的例子中所示:

# 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 .对照本Map表的输出:

---
# 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

相关问题