本文介绍了Helm Values属性中的传递数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将数组作为属性传递到Helm的YAML(值文件)中。我尝试的内容:

  1. 尝试。

    elasticsearch:
      uri: "["127.0.0.1:9200","127.0.0.2:9200"]"
    

    错误:

  2. 尝试。根据official helm site如何传递数组

    elasticsearch:
      --set uri={127.0.0.1:9200,127.0.0.2:9200}
    

    出现错误:

  3. 尝试。

     elasticsearch:
       uri:
       - 127.0.0.1:9200
       - 127.0.0.2:9200
    

    失败,异常与%1相同。

编辑:实际上,在我的例子中,当时YAML文件中没有使用helm值,所以我需要另一种格式,最后的解决方案是将uri作为带单引号的字符串传递:

 elasticsearch:
   uri: '["127.0.0.1:9200","127.0.0.2:9200"]'

尽管如此,@Marcin的回答是正确的。

推荐答案

您可以使用传统的json方式传递一个值数组:

elasticsearch:
  uri: ["127.0.0.1:9200", "127.0.0.2:9200"]

或YAML推出的方式:

elasticsearch:
  uri:
  - 127.0.0.1:9200
  - 127.0.0.2:9200

然后可以使用range

访问Helm模板中的值
Uris:{{- range .Values.elasticsearch.uri }}
{{.}}{{- end }}

解析为:

Uris:
127.0.0.1:9200
127.0.0.2:9200

这篇关于Helm Values属性中的传递数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-01 21:45