在我的values.yaml:
中有一个json对象数组key: [{A:a, 1:2}, {B:b, 3:4}, {C:c, 5:6}]
当它被移动到我的配置映射时,它变成:
key: [map[A:a 1:2] map[B:b 3:4] map[C:c 5:6]]
我没有对模板做任何花哨的操作:
data:
{{- range $key, $val := .Values.configs }}
{{ $key }}: {{ $val | quote }}
{{- end }}
所以,我怎么能防止helm与我的JSON数组的转换?
在您现在拥有的形式中,key
的值是一个对象数组,然后您将获得默认的Go序列化。
如果你想让它完全像那个特定的JSON字符串一样传递,你可以在你的Helm values中引用它:
key: '[{A:a, 1:2}, {B:b, 3:4}, {C:c, 5:6}]'
# ^ surround the string with quotes ^
或者,如果您想保持该语法(或更复杂的YAML结构)的值,Helm包含一个toJson
模板函数,可以将该结构写成JSON字符串:
{{ $key }}: {{ $val | toJson | quote }}
{{/* ^^^^^^ */}}