Kubernetes 头盔设置选项(-Set)|更新数组的第n个键值
我的配置映射模板Kubernetes 头盔设置选项(-Set)|更新数组的第n个键值,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我的配置映射模板 apiVersion: v1 kind: ConfigMap metadata: name: {{ .Values.configmap.name }} binaryData: {{- range .Values.configmap.binaryData }} {{ .key }}: {{ .value }} {{- end }} 设置configmap的Myvalues.yaml如下所示 ... configmap: name: foo bin
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Values.configmap.name }}
binaryData:
{{- range .Values.configmap.binaryData }}
{{ .key }}: {{ .value }}
{{- end }}
设置configmap的Myvalues.yaml
如下所示
...
configmap:
name: foo
binaryData:
- key: file1
value: something_as_base64
- key: file2
value: something_as_base64
- key: file3
value: something_as_base64
...
工作原理:我可以设置所有数组项
helm upgrade foo_name bar_dir \
--set configmap.binaryData[0].key=file1 --set configmap.binaryData[0].value=xyz \
--set configmap.binaryData[1].key=file2 --set configmap.binaryData[1].value=xyz \
--set configmap.binaryData[N].key=file2 --set configmap.binaryData[N].value=xyz
什么不起作用:更新file2的值(数组[N]),只更新一项
helm upgrade foo_name bar_dir \
--set configmap.binaryData[1].key=file2 --set configmap.binaryData[1].value=xyz \
错误
错误:升级失败:模板:foo-helm/templates/configmap.yaml:x:y:在:nil指针求值接口{}.key处执行“foo-helm/templates/configmap.yaml”
- 是否有专门更新数组第n项的语法
- 另外,如果my values.yaml在数组中有5项,并且我设置了数组[0],那么[1-4]将被截断
- 从这个头盔看来,这是不可能的。解决方法是使用map,或者使用不同数组的seprate文件,请参阅
Error: UPGRADE FAILED: template: foo-helm/templates/configmap.yaml:x:y: executing "foo-helm/templates/configmap.yaml" at <.key>: nil pointer evaluating interface {}.key