我正在尝试运行一个"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发布于 2020-07-25 05:28:18
我决定只创建文件,而不是通过管道输出到变量,并且它可以工作。
发布于 2021-09-03 17:41:10
我最近遇到了同样的问题,并决定用我的发现更新这个帖子,因为它是我对我的问题执行非常具体的谷歌搜索时出现的唯一问题之一(在monorepo中运行terragrunt时,在合并请求中显示terraform plan报告)。
下面是我的gitlab-ci.yml中执行计划的代码行(实际上是各个子模块中的多个计划):
terragrunt run-all show --json $PLAN 2>/dev/null | convert_report >> $JSON_PLAN_FILE笔记
为了去掉所有的terraform report artifacts docs
2>/dev/null输出(并且只显示输入到jq的
convert_report复制了terragrunt然后,我不得不用python进行一些消息处理,将其格式化为Gitlab期望的输出:
{
"create": 0,
"update": 0,
"delete": 0
}python消息处理还需要将这些值组合在一起,并将它们分成逻辑块(任意的,基于我想要分组的内容),以便可以将它们表示为separate resources in merge requests
希望这能帮助那些偶然发现这篇文章的疲惫的互联网旅行者节省一些时间:)
https://stackoverflow.com/questions/63065378
复制相似问题