terragrunt-actionを利用してgithub actionsでterragruntを簡単に利用する!
どもども、転職、副業に引っ越しに転職とてんやわんやの僕です。日々大変。
さて、今回はgruntwork社からリリースされているGitHub Actionであるterragrunt-actionを利用してワークフロー上でterragruntコマンドを実行してみようと思います。
シェルでインストールなどしなくてもお手軽にterragruntを利用できるので便利ですよ!
利用方法
他のAction同様、usesで指定するだけで利用できます。必要に応じてクラウドサービスの認証も行ってください!
name: "Terragrunt Apply Production"
on:
push:
branches:
- main
env:
TF_VERSION: '1.8.4'
TG_VERSION: '0.58.2'
WORKING_DIR: 'envs/production'
AWS_ROLE_ARN: "arn:aws:iam::xxxxxxxxxxxxx:role/xxxxx-xxxx-xxxxxxxx"
AWS_REGION: "ap-northeast-1"
permissions:
id-token: write
contents: read
pull-requests: write
jobs:
apply-production:
name: "Apply Production"
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@main
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@master
with:
role-to-assume: "${{ env.AWS_ROLE_ARN }}"
role-session-name: xxxxxxxxxxxxxxxxxx
aws-region: "${{ env.AWS_REGION }}"
- name: Terragrunt Apply Common
uses: gruntwork-io/terragrunt-action@v2
with:
tf_version: ${{ env.TF_VERSION }}
tg_version: ${{ env.TG_VERSION }}
tg_dir: ${{ env.WORKING_DIR }}
tg_command: 'run-all apply'
上記の例ではenvs/production以下のAWSリソースをterragrunt run-all applyで一括デプロイしています。
また、例えば以下のようにtg_commentを1に設定することでPRコメントにplan結果を表示できたりもします。
- name: Terragrunt Plan Staging
uses: gruntwork-io/terragrunt-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tf_version: ${{ env.TF_VERSION }}
tg_version: ${{ env.TG_VERSION }}
tg_dir: ${{ env.WORKING_DIR }}
tg_command: run-all plan
tg_comment: 1
このようにPRにコメントが表示されます。run-allの場合は並列実行なので相変わらず出力されるログはチグハグです。
まとめ
今回はterragrunt-actionを紹介いたしました。
従来の方法よりもシンプルで使いやすいなというのが個人的な感想です。
僕の技量不足かもですがtfcmtを利用したPRコメント出力がうまくいかなかったのがちょっと残念…。
terragruntをお使いの方は是非試してみてください。
ここまで読んでいただきありがとうございました!