Порядок исполнения внутри модулей Terraform - PullRequest
0 голосов
/ 30 мая 2018

У меня была проблема с порядком выполнения модулей в скриптах terraform.У меня возникла проблема с исходным репо.https://github.com/hashicorp/terraform/issues/18143

Может кто-нибудь помочь мне с этой проблемой здесь или на GitHub?

Любая помощь будет высоко оценена.

Спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

Выполнение не ожидает завершения работы модуля "vpc", а только доступности значения "module.vpc.vpc_id".Для этого достаточно выполнить ресурс aws_vpc.Таким образом, вы на самом деле не говорите TerraForm, чтобы он также ждал ресурса consul_keys.

Чтобы это исправить, вы должны добавить зависимость от ресурса consul_keys в другие ваши модули.Это работает либо:

  1. Использование значения, экспортированного consul_keys в другие ваши модули (либо datacenter, либо var.name>)
  2. Сброс ресурсов, зависящих от consul_keys, в одном файле.

К сожалению, в настоящее время нет хорошего решения для этого, но работают над зависимостями модулей.

РЕДАКТИРОВАТЬ: Как пример сброса всехресурсы в том же файле:

Это не работает, потому что нет зависимостей модуля:

module "vpc" {
    ...
}

module "other" {
 depends_on=["module.vpc"]
}

Файл модуля vpc:

resource "aws_instance" "vpc_res1" {
    ...
}

resource "consul_keys" "my_keys" {
    ...
}

другой файл модуля:

resource "aws_instance" "other_res1" {
    ...
}

resource "aws_instance" "other_res2" {
    ...
}

Помещение всего в один файл работает.Вы также можете хранить ресурс «vpc_res1» в отдельном модуле:

resource "consul_keys" "my_keys" {
    ...
}

resource "aws_instance" "other_res1" {
    depends_on = ["resource.my_keys"]
}

resource "aws_instance" "other_res2" {
    depends_on = ["resource.my_keys"]
}
...