将 json 字符串作为 helm 值传递

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

我在运行 helm 安装时遇到以下错误,同时将值作为 json 字符串传递:

$ helm install mychart-test mychart -n mft-system -f mychart/custom-values.yaml --set-string .Values.job.pod.env.server_deploy=true --set-string .Values.job.pod.env.server_custom_values=[{"name":"configmap.properties.portVersion", "value":"true"}, {"name":"configmap.properties.storageVersion", "value":"true"}] --dry-run

错误:安装失败:最多需要两个参数,意外参数:value:true},, {name:configmap.properties.storageVersion,, value:true}]

我知道这可以通过在 env 部分的 helm 图表中使用

toJson
来消除,但我还有其他 env 变量,并且我使用
range
循环并获取所有值,如下所示:

env:
{{- range $name, $value := .Values.job.pod.env }}
- name: {{ quote $name }}
  value: {{ quote $value }}
{{- end }}

请告诉我如何才能做到这一点。我知道 SO 中的其他线程,但它们不能满足我的要求。

kubernetes kubernetes-helm helm3
1个回答
0
投票

您可以使用--set-json

--set-json 'job.pod.env.server_custom_values=[{"name":"configmap.properties.portVersion", "value":"true"}, {"name":"configmap.properties.storageVersion", "value":"true"}]'

另外,使用 --set 设置时不需要添加

.Values

© www.soinside.com 2019 - 2024. All rights reserved.