首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terragrunt输出到环境变量GitLab CI/CD

Terragrunt输出到环境变量GitLab CI/CD
EN

Stack Overflow用户
提问于 2020-07-24 09:14:39
回答 2查看 406关注 0票数 2

我正在尝试运行一个"Terragrunt plan -out=$PLAN“,但是我似乎无法做到?我在这里的目标是输出一个计划,然后显示该计划并将其发送到一个GitLab合并请求。

我应该如何去实现这个目标呢?

这是我到目前为止所知道的:

代码语言:javascript
复制
    - terragrunt plan -out $PLAN
    - "terragrunt show --json $PLAN | convert_report > $JSON_PLAN_FILE"
  artifacts:
    paths:
      - $PLAN
    reports:
      terraform: $JSON_PLAN_FILE
  only:
    - merge_requests
EN

回答 2

Stack Overflow用户

发布于 2020-07-25 05:28:18

我决定只创建文件,而不是通过管道输出到变量,并且它可以工作。

票数 1
EN

Stack Overflow用户

发布于 2021-09-03 17:41:10

我最近遇到了同样的问题,并决定用我的发现更新这个帖子,因为它是我对我的问题执行非常具体的谷歌搜索时出现的唯一问题之一(在monorepo中运行terragrunt时,在合并请求中显示terraform plan报告)。

下面是我的gitlab-ci.yml中执行计划的代码行(实际上是各个子模块中的多个计划):

代码语言:javascript
复制
terragrunt run-all show --json $PLAN 2>/dev/null | convert_report >> $JSON_PLAN_FILE

笔记

为了去掉所有的terraform report artifacts docs

  • 2>/dev/null输出(并且只显示输入到jq

  • 输出),我直接从Gitlab的convert_report复制了terragrunt

然后,我不得不用python进行一些消息处理,将其格式化为Gitlab期望的输出:

代码语言:javascript
复制
{
  "create": 0,
  "update": 0,
  "delete": 0
}

python消息处理还需要将这些值组合在一起,并将它们分成逻辑块(任意的,基于我想要分组的内容),以便可以将它们表示为separate resources in merge requests

希望这能帮助那些偶然发现这篇文章的疲惫的互联网旅行者节省一些时间:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63065378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档