Ресурсы в каталоге kube-aws
не будут включены , если scripts
- ваш рабочий каталог. Каталог scripts
в данном случае считается модулем root (см. Документацию по модулям ):
Файлы .tf в вашем рабочем каталоге когда вы запускаете terraform plan или terraform apply вместе из модуля root.
У вас есть два варианта для включения kube-aws
ресурсов:
- Переместить их в
scripts
каталог. - Создайте блок module в одном из файлов
scripts/*.tf
и передайте необходимые переменные.
Например, скажем, в , s3.tf
:
module "kube_aws" {
source = "./kube-aws"
// pass in your variables here
}
Выбор, который вы делаете, полностью зависит от вас, но рекомендации в , когда писать модуль , довольно убедительны:
Мы не рекомендуем писать модули, которые являются лишь тонкими оболочками для других типов ресурсов. Если у вас возникли проблемы с поиском имени для вашего модуля, которое не совпадает с основным типом ресурса внутри него, это может быть признаком того, что ваш модуль не создает никакой новой абстракции, и поэтому модуль добавляет ненужную сложность. Вместо этого просто используйте тип ресурса непосредственно в вызывающем модуле.
Я бы порекомендовал вариант 1 выше, т.е. переместите файлы .tf
в один каталог, по крайней мере, до тех пор, пока вы не выясните, когда использовать модуль и как их лучше структурировать. Я также настоятельно рекомендую ознакомиться с официальной (и отличной) документацией по Modules и Module Composition , а также посмотреть примеры модулей в Terraform Registry и связанный с ними исходный код (ссылки на источник можно найти на страницах модуля).