我试图弄清楚如何创建一个具有某些 CIDR IP 地址的数组,以便在我的管道中拥有相同的数组。这是一个 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}}
你们有人能做到这样的事情吗?
最佳答案
抱歉,我无法与任何基于 helm
的内容进行对话。不过,我可以代表大厅管道发言。
Concourse 不支持向数组形式的任务提供params
。 params
作为环境变量传递给正在运行的任务,因此它们从 YAML 转换为简单的字符串键值对。
如果你想传递更复杂的信息。有两种选择:
- 将参数编码为 JSON/YAML,以便可以将其解析为任务环境中的字符串
- 为任务提供来自资源的输入,其中可以提供文件 - 例如包含
loadBalanceSourceRanges
内容的 s3 资源
这些编程方式是我之前用来完成将更复杂的数据(即数组)传递给任务的示例。
关于arrays - Concourse CI - 数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44565079/