Helm Values属性中的传递数组 [英] pass array in Helm values property

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

问题描述

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

  1. 尝试。

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

    错误:

    ReadString:预期为"或n,但发现[,在的#10字节中发现错误 ...|rch_URL":["127.0.0.1|...,更大的上下文 ...|{"apiVersion":"v1","data":{"弹性_搜索_URL":["127.0.0.1:9200","127.0.0.2:9200"],"Logs_ENV_PREFI|...

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

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

    出现错误:

    将YAML转换为JSON:YAML:第15行时出错:映射值不是 在此上下文中允许

  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属性中的传递数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆