はじめに
Terraformを利用している以上、planの実行結果を確認するフローをCIに組み込むことは避けては通れません。
"terraform-plan-comment"というモジュールを組み込むことで、PR上のコメントにTerafform planの実行結果を簡単に、分かりやすく出力出来るようになるので紹介します。
対象者
- Terraformを利用している人
- Terraform用のCIを構築している人
- Terraform planの実行結果をPR上で確認できるようにしたい人
terraform-plan-comment の紹介
GitHub上のリポジトリはこちら
https://github.com/borchero/terraform-plan-comment
アウトプットのイメージとしては以下の通りです。
Terraform CLoud上から確認できるplanの実行結果と遜色がないくらいには分かりやすいです。
CIへの組み込み方
これはとてもシンプルです。
以下、該当部分のコードの抜粋です。
# Run Terraform Plan
- name: Terraform Plan
run: |
terraform plan -var="env=${{ matrix.env }}" -out=tfplan-${{ matrix.dir }}-${{ matrix.env }}.out
working-directory: ${{ matrix.dir }}
# Post results to PR
- name: Post Plan Results to PR
uses: borchero/terraform-plan-comment@v2
with:
token: ${{ github.token }}
header: "terraform-plan Dir: ${{ matrix.dir }} (${{ matrix.env }})"
planfile: tfplan-${{ matrix.dir }}-${{ matrix.env }}.out
working-directory: ${{ matrix.dir }}
terraform plan実行時の実行結果を xxx.out
ファイルに出力しておきます。
その結果をinputとして、このモジュールに渡すだけです。
PRのコメントのタイトルは header
で設定可能です。
PRにコメントを投稿できる権限を付与したGitHubのtokenも一緒に渡す必要があります。
PRのcommitが進んでCIが再実行された場合には、自動的に既存のコメントをアップデートしてくれるので、コメントがダラダラと増え続けることもありません。
おわりに
このモジュールをメンテナンスしてくれている方々には感謝しかありません。
快適なTerraformライフを!