Terraform のバージョニングまわり

Published: 2023/3/30


Terraform でバージョン管理が必要なのは、基本的には Provider と Module たち。

Provider のバージョン管理

利用する Provider は、 required_providers ブロックにより宣言される。 そこで、各 Provider の要求バージョンの制約を指定する。 Terraform は、ロックファイルがなければ、その制約を満たす最新の provider たちをインストールし、その結果を .terraform.lock.hcl ファイルに書き出す。 これは、 package-lock.json などと同じような、バージョンのロックファイルとして動作する。

Provider の upgrade

terraform init -upgrade を実行すると、 required_providers の制約を満たす最新の provider がインストールされ、 .terraform.lock.hcl のファイルはそれに応じて更新される。

module のバージョン管理

module ブロックの宣言時に、 version フィールドを指定することで、利用される module に制約を与えることができる。 この制約式の書式は、 Provider のバージョン制約式と同じものが利用される。 基本的に、制約式を満たす最新の module が常に利用される。 ただし、ローカルにキャッシュされていると、そちらが利用されたりもする。


Tags: terraform

関連記事