Не могу скачать модуль terraform

У меня есть инфраструктура моего приложения, определенная в terraform/terragrunt. Чтобы иметь возможность развернуть полное приложение в разных средах, я создал один модуль со всем приложением. Однако я продолжаю получать:

Error downloading modules: Error loading modules: module xxx: No Terraform configuration files found in directory: .terraform/modules/59ff835a2c7f654267e9f157739ec63a

Не мог понять проблему


person Federico    schedule 08.04.2019    source источник


Ответы (2)


Terraform выдаст это сообщение, если пакет/каталог, указанный как source, не содержит файлов .tf.

Одна из причин, по которой это может произойти, заключается в том, что source относится к пакету (например, репозиторию или архиву), который на самом деле содержит несколько модулей в подкаталогах, а в корневом каталоге ничего нет. Хотя Стандартная структура модуля требует наличия своего рода комбинирующий модуль «по умолчанию» в корне, с другими подмодулями, которые затем служат отдельными компонентами этого по умолчанию, что является соглашением, а не требованием, и при желании пакет может содержать только модули в подкаталогах.

Для ссылки на модуль в подкаталоге используйте специальный разделитель с двойной косой чертой //, чтобы отделить путь пакета от пути к подкаталогу.

Например, для доступа к подкаталогу modules/consul-cluster из модуля hashicorp/consul/aws в Terraform Registry, ваш полный source адрес будет hashicorp/consul/aws//modules/consul-cluster. Точно так же для подкаталога vpc источника репозитория git git::https://example.com/network.git вы должны установить source в git::https://example.com/network.git//vpc.

Какой бы каталог вы ни указали, он должен содержать хотя бы один файл .tf, чтобы Terraform считал его действительным модулем Terraform.

person Martin Atkins    schedule 08.04.2019

Проблема заключалась в том, что я сохранил структуру нескольких каталогов, например: security/iam и файлы внутри таких каталогов. Кажется, модули не поддерживают это, просто плоская структура каталогов. В конце концов, я сохранил свое приложение с одним модулем в плоском каталоге с префиксом в файлах для «пространства имен».

Кстати, это промежуточный рефакторинг, пока я не смогу создать больше модулей для приложения.

person Federico    schedule 08.04.2019