🦔

Terraform0.13と0.14のplanの出力結果の違いについて

2020/12/22に公開

Terraformのバージョンを0.13から最新の0.14にした際に様々な機能が追加されていますがplanの出力にも小さな変化がありそれに気づくまで少し時間がかかったので備忘録までに。

変化に気付いた理由

Github上でTerraformを管理してPRを作成するとGithub ActionsのCIが回ってlintやplanを回してくれるのですがその際にplanの出力結果にいつもなら変更差分が出てくると思うのですが結果としては

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

このような結果だけPRのコメントに帰ってきておかしいなと思い出力の違いがあるのかなと疑いみてみるとこのような違いがありました。

0.13

------------------------------------------------------------------------

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

0.14

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

このような違いがありました。

-が今まではあったのですが0.14からない形での出力になっています。
今までは-から-までを取り出して出力している形にしていたのでこの部分を修正する必要が出てきました。

github actionsのsetup-terraformで実装していた人は特に必要がないと思いますが独自で差分が出た際にのみ該当のstate範囲のディレクトリをplanするなどの処理を入れていたチームは場合によってはここを修正する必要が出てくると思います。

もしこれから0.14にあげる際に上手く出力ができなかった際にこの記事が一つの参考になれば幸いです。

Discussion