如何将一个文件中的最佳版本约束集成到项目目录中的不同 Terraform 模块中?即,我们的 Terraform 项目中有 3 个不同的文件,它们应该使用以下版本约束标头:
terraform {
required_version = "~> 0.13.0"
required_providers {
azurerm = "~> 2.19.0"
}
}
provider "azurerm" {
features {}
}
Run Code Online (Sandbox Code Playgroud)
versions.tf现在我想我可以在顶层生成一个并通过文件命令引用该文件,例如像这样
file("../versions.tf")
Run Code Online (Sandbox Code Playgroud)
这不起作用,但我在 Terraform 方面还不是很有经验。有没有比将版本代码片段复制到所有 3 个文件中更好的方法。
从 Terraform 的角度来看,每个模块都有自己的一组提供程序依赖项。这个想法是,每个模块都描述它专门兼容的提供程序版本,而不考虑其他模块可能需要什么。然后,Terraform 会将所有这些版本约束组合在一起,并选择与所有这些约束兼容的最新版本。
一般来说,仅当模块开始使用早期版本中不可用的功能时,您才需要更改模块中提供程序的版本约束。如果其他模块仍然仅使用其早期版本中提供的功能,则无需更改其版本限制。
即将发布的 Terraform v0.14 版本(在我撰写本文时即将进入测试版)将包含一种新机制来生成版本“锁定”文件,您可以将其包含在版本控制中,以使 Terraform 记住每个版本的版本您的每个配置都会使用提供程序。因此,在 Terraform v0.14 下,不再需要主动对~>根模块使用约束,因为只有在使用 明确要求时,Terraform 才会采用较新的版本terraform init -upgrade。
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |