Я пытаюсь использовать IaC с 2-мя репо с так называемым внутренним компонентом в виде terragrunt
модулей и внешним интерфейсом (или live
) с созданием таких модулей, которые заполняютсяс переменными.
На изображении ниже показана структура этих двух репозиториев (terragrunt
- это серверная часть, а terraform-live
- живая, как следует из названия).
В моем terragrunt/aws-vpc/variables.tf
есть следующее объявление:
variable "remote_state_bucket" {
description = "The bucket containing the terraform remote state"
}
Однако при попытке выполнить terragrunt apply
в директории live, я получаю следующее:
var.remote_state_bucket
The bucket containing the terraform remote state
Enter a value:
Вот мой terraform-live/environments/staging/terragrunt.hcl
remote_state {
backend = "s3"
config = {
bucket = "my-bucket-staging"
key = "terraform/state/var.env_name/${path_relative_to_include()}"
region = "eu-west-1"
}
}
# Configure root level variables that all resources can inherit
terraform {
extra_arguments "extra_args" {
commands = "${get_terraform_commands_that_need_vars()}"
optional_var_files = [
"${get_terragrunt_dir()}/${find_in_parent_folders("config.tfvars", "ignore")}",
"${get_terragrunt_dir()}/${find_in_parent_folders("secrets.auto.tfvars", "ignore")}",
]
}
}
Более того, переменная, кажется, объявлена в одном изфайлы, которым terragrunt
поручено считывать переменные:
➢ cat terraform-live/environments/staging/config.tfvars
remote_state_bucket = "pkaramol-staging"
Почему terragrunt
(или terraform
?) не может прочитать определенную переменную?
➢ terragrunt --version
terragrunt version v0.19.29
➢ terraform --version
Terraform v0.12.4