2

我正在尝试运行“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
4

2 回答 2

1

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

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

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

备注

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

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

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

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

于 2021-09-03T17:41:09.847 回答
1

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

于 2020-07-24T21:28:17.780 回答