Concourse CI - переменная массива
Я пытаюсь выяснить, как создать массив с некоторым IP-адресом CIDR, чтобы иметь такой же массив в моем конвейере. Итак, вот пример файла var:
whitelist-ip-ranges: |-
- 10.0.0.0/24
- 11.0.0.0/24
- 12.0.0.0/24
Мой конвейер похож на:
....
....
....
params:
variables:
loadBalancerSourceRanges:
{{whitelist-ip-ranges}}
И я хочу, чтобы это было:
....
....
....
params:
variables:
loadBalancerSourceRanges:
- 10.0.0.0/24
- 11.0.0.0/24
- 12.0.0.0/24
или же
....
....
....
params:
variables:
loadBalancerSourceRanges: [10.0.0.0/24,11.0.0.0/24,12.0.0.0/24]
Внутри моего шаблона helm у меня есть файл values.yaml, который у меня есть:
loadBalancerSourceRanges: null
и это будет отменено конвейером. И наконец, в моем сервисном файле я делаю цикл:
{{if .Values.loadBalancerSourceRanges}}
loadBalancerSourceRanges:
{{range $rangeList := .Values.loadBalancerSourceRanges}}
- {{ $rangeList }}
{{end}}
{{end}}
Кто-нибудь из вас, ребята, смог сделать что-то подобное?
1 ответ
Извините, я не могу говорить ни с чем helm
основан. Я могу говорить за трубопровод конкурса, все же.
Конкурс не поддерживает предоставление params
для задач, которые являются массивом. params
передаются в качестве переменных среды выполняемой задаче, поэтому они преобразуются из YAML в простую пару ключ-значение строки.
Если вы хотите передать более сложную информацию. Есть два варианта:
- закодируйте параметр как JSON/YAML, чтобы его можно было проанализировать как строку из вашей среды задач
- предоставить задаче входные данные из ресурса, где может быть предоставлен файл - например, ресурс s3 с содержимым
loadBalanceSourceRanges
Эти программные способы - примеры, которые я использовал прежде, чтобы выполнить передачу более сложных данных (например, массивов) в задачу.