kubernetes-helm - Helm JSON 被转换为 configmap 中的映射
问题描述
我的 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 值中引用它:
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 }}
{{/* ^^^^^^ */}}
推荐阅读
- python - 根据随机选择的列生成随机天数
- java - 当从 Activity 更改为 Fragment Android 时 TextView() null
- reactjs - 将 JSON 对象设置为材质 UI 上的 Const 选择组件 React Hooks
- reactjs - Firebase 在 setValue 中使用自定义键保存数据不是函数错误
- tinymce - PHP Tinymce土耳其语字符问题
- c# - 压缩时缺少文件
- python - 对象身份
- c - 为什么我的多项式方法在小数组中正确工作,但在更大的数组中错误?
- ios - 在 Metal 中绘制带纹理的矩形 - Swift
- ios - CloudKit私有数据库读写工作无需用户登录iCloud