从helm命令行设置嵌套数据结构?

时间:2018-10-05 15:34:51

标签: kubernetes-helm

我正在安装prometheus-redis-exporter Helm chart。其Deployment对象可以注入注释:

# deployment.yaml
...
  template:
    metadata:
      annotations:
{{ toYaml .Values.annotations | indent 8 }}

通常,如果我提供值文件,则可以这样做:

# values.yaml
annotations:
  foo: bar
  bash: baz

然后使用以下命令安装图表:

helm install --values values.yaml

但是,在某些情况下,使用--set在命令行中指定这些值更为简单,我只是不确定如何指定这样的嵌套集。

在命令行上安装头盔图表时,如何设置上面的annotations对象:

helm install --set <what_goes_here>

2 个答案:

答案 0 :(得分:4)

helm文档中有The Format and Limitations of --set部分,其中包含您要查找的内容。

--set outer.inner=value导致:

outer:
  inner: value

因此,您的整个helm命令如下所示:

helm install --set annotations.foo=bar,annotations.bash=baz stable/prometheus-redis-exporter

答案 1 :(得分:3)

如果要使用“。”替代键,只需添加即可。在键名称中,在“。”之前添加反斜杠(“ \”)。

例如,带有值(取自grafana):

grafana.ini:
  server:
    root_url: https://my.example.com

要编辑root_url值,我们将传递 --set grafana\.ini.server.root_url=https://your.example.com