2

我试图弄清楚如何使用一些 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}}

你们中的任何人都能够做到这样的事情吗?

4

1 回答 1

3

对不起,我不能说任何有helm根据的东西。不过,我可以代表大厅管道。

Concourse 不支持提供params给数组的任务。params作为环境变量传递给正在运行的任务,因此它们从 YAML 转换为简单的字符串键值对。

如果你想传递更复杂的信息。有两种选择:

  • 将参数编码为 JSON/YAML,以便可以将其解析为任务环境中的字符串
  • 为任务提供来自资源的输入,其中可以提供文件 - 例如具有loadBalanceSourceRanges

这些编程方式是我之前用来完成将更复杂的数据(即数组)传递给任务的示例。

于 2017-07-11T14:33:32.463 回答