我有一个Terraform模块(我们将其称为module1
),该模块利用版本google
的{{1}}和google-beta
提供程序。
我打算从另一个(由于某种原因)对2.20
和module2
提供者的配置有限制的模块中调用该模块(我们称其为google
),如下所示:
google-beta
是否有一种方法可以使provider "google-beta" {
version = "< 2.12"
}
provider "google" {
version = "< 2.12"
}
实例化module2
(或多或少如下)并保持其提供者的限制?
(假设下面的摘录来自module1
的{{1}}
main.tf
...同时,module2
是否保留自己的
module mymodule {
source = "../../../path/to/module1"
}
provider "google-beta" {
version = "< 2.12"
}
provider "google" {
version = "< 2.12"
}
提供程序版本?
答案 0 :(得分:0)
您可以pass providers explicitly when calling modules
在module2
中再定义2个具有别名和适当版本的提供程序,然后使用这些提供程序显式调用module1
module mymodule {
source = "../../../path/to/module1"
providers = {
google-beta = "google-beta.newer"
google = "google.newer"
}
}
provider "google-beta" {
version = "< 2.12"
}
provider "google" {
version = "< 2.12"
}
provider "google-beta" {
version = "~> 2.20"
alias = "newer"
}
provider "google" {
version = "~> 2.20"
alias = "newer"
}