【发布时间】:2021-07-13 13:45:27
【问题描述】:
对 Terraform 不是很有经验。我将我的项目从 12 升级到 13,然后希望将其升级到 14。
按照文档说明,我运行了terraform 0.13upgrade 和terraform 0.13upgrade module,我的目录变成了这样:
terraform
├── module
│ ├── main.tf
│ └── versions.tf
├── main.tf
└── versions.tf
我移动了我的版本,但问题是我只在根 versions.tf 中指定了它们:
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 3.8.0"
}
}
在module/versions.tf我只保留:
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
子模块是否从根(导入它们的位置)继承版本,或者这是否意味着我的模块将自动使用更新的提供程序版本(我认为是 3.64)运行?
我应该简单地删除模块/versions.tf 吗? (每次都要编辑两个版本很烦人)。
谢谢!
【问题讨论】:
-
我建议你在模块中使用
version.tf,以保持模块依赖版本锁定并在模块中明确定义,将其视为普通包版本,这样你只关心更新模块,及其提供者在升级或添加功能时的版本。
标签: terraform