concourse - 在管道任务中指定运行时参数
问题描述
我们需要以某种方式将动态运行时参数传递给管道任务。例如,对于任务的每次运行,下面的参数 APPROVAL 会有所不同。此 APPROVAL 参数用于更改和发布编号,以便任务可以在为审计目的创建的 terraform 资源上对其进行标记。
已经在网上搜索了一段时间,但没有找到解决方案,这在大厅管道或最佳实践中是否可行?
- task: plan-terraform
file: ci/concourse-jobs/pipelines/tasks/terraform/plan-terraform.yaml
params:
ENV: dev
APPROVAL: test
CHANNEL: Developement
GITLAB_KEY: ((gitlab_key))
REGION: eu-west-2
TF_FOLDER: terraform/squid
input_mapping:
ci: ci
tf: squid
output_mapping:
plan: plan
tags:
- dev
解决方案
来自https://concourse-ci.org/tasks.html:理想情况下,任务是纯函数:给定相同的输入集,它应该总是以相同的输出成功或总是失败。
动态参数将打破该契约并从同一组输入产生不同的输出。您能否将 APPROVAL 作为输入?然后,您将维护您的构建可追溯性。如果它是(文件)输入,则可以将其加载到变量中:
APPROVAL=$(cat <filename>)
推荐阅读
- postgresql - PostgreSQL 10 SELECT WHERE 语句
- python - Python中的日期字符串格式
- ios - 您的浏览器不支持 Webassembly - iOS
- mysql - 如何选择和更新行,使任何用户都不能再次选择同一行?
- python - 使用 lightsail 进行版本控制
- node.js - 有一种方法可以从返回的 create() 对象中排除属性?
- dpdk - DPDK 17.11.1 - drops seen when doing destination based rate limiting
- c# - ElasticSearch PostData 序列化插入不起作用
- python - 如何根据键值将键控 RDD 划分为 2 个分区
- python - discord python bot获取用户输入