Terragrunt - 变量声明
Terragrunt - variables declarations
我有两个目录:在第一个目录中,我保留模块(基本上是 terraform 模板配置),在第二个目录中,我保留 terragrunt 模块实现。在第二个中有一个 terragrunt hcl 文件,里面有 inputs
(每个特定项目一个)。到目前为止,我在模块目录(在 variables.tf
中)声明了变量,但我不喜欢这样,因为变量会根据实现(项目)而变化。因此,将所有变量(对于所有项目)保存在模块目录中似乎不是最好的主意。
我的问题是:如何在 terragrunt(又名实现)级别声明这些变量?是 generate
功能方式吗?
您可以使用 HCL 文件在 Terragrunt 级别存储变量。例如,让你的项目级变量在 config.hcl
:
locals {
env = "dev"
}
然后将其加载到您的 terragrunt.hcl
:
locals {
config = read_terragrunt_config(find_in_parent_folders("config.hcl")).locals
env = local.config.env
}
inputs = {
env = local.env
}
我有两个目录:在第一个目录中,我保留模块(基本上是 terraform 模板配置),在第二个目录中,我保留 terragrunt 模块实现。在第二个中有一个 terragrunt hcl 文件,里面有 inputs
(每个特定项目一个)。到目前为止,我在模块目录(在 variables.tf
中)声明了变量,但我不喜欢这样,因为变量会根据实现(项目)而变化。因此,将所有变量(对于所有项目)保存在模块目录中似乎不是最好的主意。
我的问题是:如何在 terragrunt(又名实现)级别声明这些变量?是 generate
功能方式吗?
您可以使用 HCL 文件在 Terragrunt 级别存储变量。例如,让你的项目级变量在 config.hcl
:
locals {
env = "dev"
}
然后将其加载到您的 terragrunt.hcl
:
locals {
config = read_terragrunt_config(find_in_parent_folders("config.hcl")).locals
env = local.config.env
}
inputs = {
env = local.env
}