【问题标题】:concourse ci job parameterization大厅 ci 作业参数化
【发布时间】:2020-08-26 11:32:36
【问题描述】:

我想为不同的环境参数化作业。

例如:

  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 个问题:

  1. 如何为该作业创建模板。例如,现在我有工作terraform plan prod,我想为具有不同环境的不同工作提供 1 个模板。 terraform plan * (prod/ppe/qa/dev)
  2. 如何使用文件管理变量?
vars:
    region: ((vault:kv/my-vault.region))

我可以使用vars_file,但在这种情况下,大厅将变量作为刺痛转移到 terraform(region: ((vault:kv/my-vault.region)) 类似这样)

有没有可能在大厅里这样做?

【问题讨论】:

    标签: concourse concourse-pipeline


    【解决方案1】:

    尝试改变

    vars:
      region: ((vault:kv/my-vault.region))
    

    vars: ((vault:kv/my-vault))
    

    当 concourse 遇到带有子字段的字段(在 Vault 的情况下不是 value)时,它会将它们视为要在 yaml 中呈现的对象类型。祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 1970-01-01
      • 2017-07-26
      相关资源
      最近更新 更多