从值文件读取 helm 模板中的数组

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

我正在尝试设置和读取数组值,如下所述,将 yaml 模板文件解析为 json 失败,请建议解决方案。

模板文件:

spec:
    arguments: {{ toYaml .Values.sparkapplication.spec.arguments | indent 6 }}

值文件:

sparkapplication :
   spec:
      arguments:
         - val: "/spark_app_prop/config.properties"
         - val: "/spark_app_prop/log4j.properties"

模板文件中的预期解析结果应该是:

spec:
   arguments: [ "/tmp/spark-streaming-poc-app-1.0.0.1/infa_conf/config.properties", "/tmp/spark-streaming-poc-app-1.0.0.1/infa_conf/log4j.properties" ]
kubernetes-helm
1个回答
1
投票

values.yaml

sparkapplication :
  spec:
    arguments:
      - val: "/spark_app_prop/config.properties"
      - val: "/spark_app_prop/log4j.properties"

模板/cm.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data: 
  {{- $list := list }}
  {{- range .Values.sparkapplication.spec.arguments }}
  {{- $list = append $list .val }}
  {{- end }}
  arguments: {{ toJson $list }}

输出

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  arguments: ["/spark_app_prop/config.properties","/spark_app_prop/log4j.properties"]
© www.soinside.com 2019 - 2024. All rights reserved.