我们可以在terragrunt config中使用terraform变量吗?
下面是我的terragrunt配置。
#terragrunt.hcl
remote_state {
backend = "s3"
generate = {
path = "remote_state.tf"
if_exists = "overwrite_terragrunt"
}
# Terragrunt built-in function:
# sets key relative to the modules
config = {
bucket = ${var.bucket_name}
key = ${var.key}
encrypt = true
}
}在root.yaml文件中,我传递了变量bucket_name和key的输入值。这些变量在terraform模块中定义。
#root.yaml
bucket_name: "s3-bucket"
key: "foo"这是不起作用的,terragrunt正在抱怨变量没有定义。如果不创建一个新的变量用于terragrunt,我们就不能在terragrunt config中使用terraform变量吗?
发布于 2021-03-03 23:14:05
Terragrunt没有hcl级别的变量,但它允许您使用可从文件中读取的本地变量:
#terragrunt.hcl
locals {
config_vars = read_terragrunt_config("config.hcl")
}
remote_state {
backend = "s3"
generate = {
path = "remote_state.tf"
if_exists = "overwrite_terragrunt"
}
# Terragrunt built-in function:
# sets key relative to the modules
config = {
bucket = "${local.config_vars.locals.bucket_name}"
key = "${local.config_vars.locals.key}"
encrypt = true
}
}# config.hcl:
locals {
bucket_name = "s3-bucket"
key = "foo"
}发布于 2021-04-17 00:16:20
您可以使用env声明terraform vars:
export TF_VAR_bucket_name=mybucket和terragrunt配置:
config = {
bucket = get_env("TF_VAR_bucket_name", "otherbucket")
}发布于 2021-12-30 15:30:00
如果你想继续使用yaml作为你的配置源,你可以在本地解码它
locals {
vars = yamldecode(file(("root.yaml"))
bucket_name = local.vars.bucket_name
}https://stackoverflow.com/questions/66450126
复制相似问题