kubernetes - Helm 套件选项(--set)|更新数组的第 N 个键值

标签 kubernetes kubernetes-helm

我的配置映射模板

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Values.configmap.name }}
binaryData:
  {{- range .Values.configmap.binaryData }}
  {{ .key }}: {{ .value }}
  {{- end }}

我设置 configmap 的 values.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 \

错误

Error: UPGRADE FAILED: template: foo-helm/templates/configmap.yaml:x:y: executing "foo-helm/templates/configmap.yaml" at <.key>: nil pointer evaluating interface {}.key
  • 是否有专门更新数组第 N 项的语法?
  • 此外,如果我的 value.yaml 数组中有 5 个项目,并且我设置了 array[0],则 [1-4] 会被截断

最佳答案

从此 Helm issue看来这是不可能的。解决方法是使用映射或使用不同数组的单独文件,请参阅 comment .

关于kubernetes - Helm 套件选项(--set)|更新数组的第 N 个键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63322925/

相关文章:

kubernetes - Kubeflow 管道终止通知

azure - 如何在Azure Kubernetes服务中安装gitlab-runner?

kubernetes - 构建 kubernetes 配置文件

kubernetes - 如何 kubectl 端口转发 GitLab web 服务?

kubernetes-helm - Helm 简单的 for 循环

yaml - Azure Pipeline 参数格式化 YAML

docker - Kubernetes 中参数略有不同的微服务实例(Docker 化)

Solr 云 : Distribution of Shards across nodes

amazon-web-services - 在 EKS 上的 Kubernetes 1.14 上启动 Helm Chart stable/minecraft 失败 Liveness Probe

docker - kubernetes:ssh从同一命名空间中的另一个Pod到Pod