Terraform Version Upの盲点
TerraformのソースコードをVersion Up
v.0.12のTerraformのコードを、v.0.13にバージョンアップしようとしました。
tfenvを用いて、v.0.13系にアップデートして、terraform 0.13upgrade
も叩くことによって、v.0.12系の構文で書かれていたコードをv.0.13系の構文にアップデートして、コード中のterraform versionの指定もv.0.13.4(現在の最新バージョン)に書き換えることもして…
terraform plan
!!!
...エラーが出る。
terraform 0.13upgrade
して、自動で生成されたversion.tfというファイルがあったのだが、この中身の構文が変だとエラーが出て怒られる。
自動で生成されたものについてエラーが出るのは変だなと大変な違和感を抱く。
terraform init
は叩きまくり、.terraformファイルは何度も消した。が、変化はない。
ちなみに、この際にもう一つエラーが出ていて、
Waiting for the plan to start...
Terraform v0.12.18
Configuring remote state backend...
v.0.12.18??
terraform -v
してもちゃんとv.0.13.4と出てくるのに????
backendって何??って思っていた。
これが元凶だったのだ。
私は自分のコードの中でterraform.backend "remote"と定義していた。(他の人が書いたコードのメンテをしていたのだが、見落としてしまっていた)
これによってterraform cloudを用いて、実行している。
terraform cloudを用いると環境変数を設定することができたりするので便利である。
!!!!terraform Cloudのバージョンが上がっていなかった
Settingsタブから確認することができるのだが、ここのバージョンがv.0.12.18だったために、実行がv.0.12.18で行われて、手元のローカルでterraform 0.13upgrade
の反映内容と齟齬が生じてしまった。
使いこなしている人からしたら、とてもeasyなミスだろうなと思いつつ、フワッと使っているとハマりそうなのでメモ。
Discussion