Как получить доступ к выводам из подхода «каждый облачный сервис - папка» в Terraform - PullRequest
1 голос
/ 28 мая 2019

Итак, у меня есть структура папок terraform следующим образом:

environments
  staging
    gke
        main.tf
        terraform.tfvars
        variables.tf
    vpc
        main.tf
        terraform.tfvars
        variables.tf
    secrets.tfvars (non-versioned)
    globals.tfvars
    terraform.tfvars (terragrunt helps require secrets and globals)
modules
    vpc
        main.tf
        outputs.tf
    gke
        main.tf
        outputs.tf

У меня проблема в том, что я не знаю, как получить доступ, например, к собственной ссылке на модуль VPC, которую я устанавливаю в качестве выводаиз модуля GKE.

Каждый пример, который я вижу, имеет файл main.tf на уровне «этап», где каждый модуль вызывается в одном и том же файле, так что они могут получить доступ к выходу модулей, но я неу меня его нет (должен ли я подходить к структуре папок?)

Будет ли решение получить значение из удаленного состояния?Я пытался получить к нему доступ, но он всегда говорит, что не находит ресурс:

  // Define VPC
  network = "${data.terraform_remote_state.vpc.main_vpc_self_link}"

Я пытаюсь получить доступ к этому выводу, который у меня есть в моем модуле VPC (модуль называется vpc)

// Self link to the VPC
output "main_vpc_self_link" {
  value = "${google_compute_network.main_vpc_network.self_link}"
}

1 Ответ

0 голосов
/ 28 мая 2019

Вам нужно передать выходное значение как переменную внутри модуля, к которому вы хотите получить доступ:

module "my_vpc":
  ....

module "gke":
    source = "./modules/gke
    vpc_id = module.my_vpc.id

В вашем модуле gke вам потребуется переменная vpc_id для ее получения.

...