передать массив в свойстве Helm values - PullRequest
0 голосов
/ 20 сентября 2019

Я бы хотел передать массив как свойство в yaml (файл значений) в Helm.Что я пробовал:

  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": {"ELASTIC_SEARCH_URL": ["127.0.0.1: 9200 "," 127.0.0.2:9200"],"LOGS_ENV_PREFI|...

  2. Попытка.Согласно официальному сайту руля как передать массив

    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.

РЕДАКТИРОВАТЬ: На самом деле в моем случае значения helm не использовались в файле YAML, поэтому мне был нужен другой формат, и, наконец, решение было передать uri в виде строки с одинарной кавычкой:

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

Тем не менее ответ @Marcin былправильный.

1 Ответ

4 голосов
/ 20 сентября 2019

Вы передаете массив значений, используя старомодный способ 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:

Uris:{{- range .Values.elasticsearch.uri }}
{{.}}{{- end }}

, преобразуются в:

Uris:
127.0.0.1:9200
127.0.0.2:9200
...