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
関連記事
Terraform の個人的なまとめ
2023/3/26