代码之家  ›  专栏  ›  技术社区  ›  Cory Klein

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

  •  1
  • Cory Klein  · 技术社区  · 6 年前

    我正在安装 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>
    
    1 回复  |  直到 5 年前
        1
  •  23
  •   Rod    4 年前

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

    --set outer.inner=value

    outer:
      inner: value
    

    所以你的整个 命令如下所示:

    helm install --set annotations.foo=bar,annotations.bash=baz stable/prometheus-redis-exporter
    
        2
  •  5
  •   Daniel Reisel    4 年前

    要添加的是,如果要在键名中用“.”替代一个键,请在“.”之前添加反斜杠(“\”)。

    例如,使用值(取自grafana):

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

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