terragrunt не принимает файлы vars

Я пытаюсь использовать IaC с двумя репозиториями с так называемым внутренним интерфейсом в виде 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

person pkaramol    schedule 06.10.2019    source источник


Ответы (1)


Потому что config.tfvars не находится в родительской папке :)

find_in_parent_folders ищет в родительских папках, но не в текущей папке. И ваш config.tfvars находится в той же папке, что и ваш terragrunt.hcl.

Попробуйте использовать что-нибудь вроде:

optional_var_files = [
    "${get_terragrunt_dir()}/config.tfvars",
    "${get_terragrunt_dir()}/secrets.auto.tfvars",
]
person David Mattia    schedule 13.02.2020