我在运行 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 中的其他线程,但它们不能满足我的要求。
您可以使用--set-json
--set-json 'job.pod.env.server_custom_values=[{"name":"configmap.properties.portVersion", "value":"true"}, {"name":"configmap.properties.storageVersion", "value":"true"}]'
另外,使用 --set 设置时不需要添加
.Values