概要
Terraformを使っていてインデントがずれてしまうのを修正するのにterraform fmtというコマンドがある。
これを手元で都度やるのをよく忘れる。
忘れてそのままマージするのは宜しくないので、せめてCIでチェックできればと思い調べたところ、hashicorpの公式のterraformイメージがあった。
これを活用することで、CircleCIと連携して簡単にterraform fmtで差分が出てしまった箇所が検知できる。
version: 2
jobs:
terraform:
working_directory: ~/repo/terraform/
docker:
- image: hashicorp/terraform:0.11.8
steps:
- checkout
- run:
name: "terraform fmt"
command: |
terraform fmt -diff=true -check=true
workflows:
version: 2
terraform:
jobs:
- terraform
上記のように、terraform fmtにいくつかオプションを付けている。
-diffをtrueにすると差分が表示されるので、どこが修正されるかがわかる。
-checkをtrueにするとチェックだけを行い、差分が発生するとコマンドの返り値に3を返す。
CircleCIでコマンドの返り値が0と異なるとエラーになり、CIがこけるようになる。
ちなみに実行した際の結果はこちら。
#!/bin/sh -eo pipefail
terraform fmt -diff=true -check=true
diff a/terraform/variables.tf b/terraform/variables.tf
--- /tmp/875634021
+++ /tmp/774976384
@@ -1,6 +1,8 @@
variable "aws_access_key" {}
variable "aws_secret_key" {}
+
variable "aws_region" {
default = "ap-northeast-1"
}
-variable "profile_name" {}
\ No newline at end of file
+
+variable "profile_name" {}
Exited with code 3
こんなのが画面で確認できるので、どこがおかしいかわかる。
出来れば自動的に修正させたいけど、それはまたいずれ。
<p style='padding: 5px;'>