大厅 ci 作业参数化
concourse ci job parameterization
我想为不同的环境参数化作业。
例如:
resources:
- name: prod
type: terraform
icon: terraform
source:
backend_type: s3
backend_config:
env_name: prod
bucket:
key:
env:
AWS_ACCESS_KEY_ID: ((aws-sts:prod.access_key))
AWS_SECRET_ACCESS_KEY: ((aws-sts:prod.secret_key))
AWS_SESSION_TOKEN: ((aws-sts:prod.security_token))
AWS_REGION: ((vault:kv/my-vault.region))
jobs:
- name: terraform plan prod
disable_manual_trigger: true
plan:
- get: git-repo-prod
trigger: true
- put: prod
params:
env_name: prod
terraform_source: git-repo-prod/terraform
plan_only: true
vars:
region: ((vault:kv/my-vault.region))
2 个问题:
- 我如何为这项工作创建模板。例如,现在我有工作
terraform plan prod
,我想为具有不同环境的不同工作准备 1 个模板。 terraform plan *
(prod/ppe/qa/dev)
- 如何用文件管理变量?
vars:
region: ((vault:kv/my-vault.region))
我可以使用 vars_file
但我在这种情况下大厅将变量作为 sting 传输到 terraform(region: ((vault:kv/my-vault.region))
类似这样的东西)
是否有可能在大厅中执行此操作?
尝试改变
vars:
region: ((vault:kv/my-vault.region))
至
vars: ((vault:kv/my-vault))
当 concourse 遇到带有 sub-fields 的字段(在 Vault 的情况下不是 value
)时,它会将它们视为要在 yaml 中呈现的对象类型。祝你好运!
我想为不同的环境参数化作业。
例如:
resources:
- name: prod
type: terraform
icon: terraform
source:
backend_type: s3
backend_config:
env_name: prod
bucket:
key:
env:
AWS_ACCESS_KEY_ID: ((aws-sts:prod.access_key))
AWS_SECRET_ACCESS_KEY: ((aws-sts:prod.secret_key))
AWS_SESSION_TOKEN: ((aws-sts:prod.security_token))
AWS_REGION: ((vault:kv/my-vault.region))
jobs:
- name: terraform plan prod
disable_manual_trigger: true
plan:
- get: git-repo-prod
trigger: true
- put: prod
params:
env_name: prod
terraform_source: git-repo-prod/terraform
plan_only: true
vars:
region: ((vault:kv/my-vault.region))
2 个问题:
- 我如何为这项工作创建模板。例如,现在我有工作
terraform plan prod
,我想为具有不同环境的不同工作准备 1 个模板。terraform plan *
(prod/ppe/qa/dev) - 如何用文件管理变量?
vars:
region: ((vault:kv/my-vault.region))
我可以使用 vars_file
但我在这种情况下大厅将变量作为 sting 传输到 terraform(region: ((vault:kv/my-vault.region))
类似这样的东西)
是否有可能在大厅中执行此操作?
尝试改变
vars:
region: ((vault:kv/my-vault.region))
至
vars: ((vault:kv/my-vault))
当 concourse 遇到带有 sub-fields 的字段(在 Vault 的情况下不是 value
)时,它会将它们视为要在 yaml 中呈现的对象类型。祝你好运!