Helm JSON在configmap中被转换为map



在我的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 }}
{{/*                  ^^^^^^       */}}

最新更新