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



我正在尝试运行一个"Terragrunt plan-out=$plan";但我好像做不到?我的目标是输出一个计划,然后显示该计划并发布到GitLab合并请求。

我该如何着手完成这项工作?

以下是我目前所拥有的:

- terragrunt plan -out $PLAN
- "terragrunt show --json $PLAN | convert_report > $JSON_PLAN_FILE"
artifacts:
paths:
- $PLAN
reports:
terraform: $JSON_PLAN_FILE
only:
- merge_requests

我决定只创建文件,而不是管道输出到变量,这很有效。

我最近遇到了同样的问题,并决定用我的发现更新这个线程,因为这是当我对我的问题进行非常具体的谷歌搜索时出现的唯一问题之一(在monoreo中运行terragrunt时,在合并请求中显示terraform计划报告(。

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

terragrunt run-all show --json $PLAN 2>/dev/null | convert_report >> $JSON_PLAN_FILE

备注

  • 我直接从Gitlab的地形报告工件文档中复制了convert_report
  • 2>/dev/null是去除所有terragrunt输出所必需的(并且只显示馈送到jqterraformjson输出

然后我不得不在python中进行一些按摩,将其格式化为Gitlab期望的输出:

{
"create": 0,
"update": 0,
"delete": 0
}

python massaging还需要将这些值组合起来,并将它们分离成逻辑块(任意的,基于我想要分组的内容(,这样它们就可以在合并请求中作为单独的资源呈现

希望这能帮助下一个偶然发现这篇帖子的疲惫的互联网旅行者节省一些时间:(

最新更新