arrays - Concourse CI - 数组变量

标签 arrays continuous-integration kubernetes concourse kubernetes-helm

我试图弄清楚如何创建一个具有某些 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 不支持向数组形式的任务提供paramsparams 作为环境变量传递给正在运行的任务,因此它们从 YAML 转换为简单的字符串键值对。

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

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

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

关于arrays - Concourse CI - 数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44565079/

相关文章:

svn - 持续集成工作流和 SVN

docker - 是否可以在minikube中放置固定的IP和端口?

kubernetes - Gitlab CI管道: Cannot create pods in the namespace

java - 如何使用 Jenkins CI 部署 Java EE 应用程序?

javascript - 使我的函数可重用

java - 排除数组的索引 0 作为输出选项?

php - javascript 中是否有类似于 php 中的 compact 的函数?

tdd - 你如何在持续集成中处理 TDD?

amazon-web-services - EKS 上的两个集群,如何在它们之间切换

php - 在 array_walk() 的回调函数中删除行