Я создал модуль для повторно используемой части инфраструктуры. Модуль представляет собой проект , поэтому каждый раз, когда мы хотим создать новый проект и связанные с ним элементы инфраструктуры, мы можем использовать этот модуль:
module "project1" {
source = ".modules/project_module"
project_id = "project1"
...
}
module "project2" {
source = ".modules/project_module"
project_id = "project2"
...
}
Модуль использует провайдера Google длясоздавать ресурсы в GCP.
К сожалению, это не сработало, как мы надеялись. Во-первых, каждый новый проект требует вызова terraform init
, а во-вторых, удалить проект невозможно, поскольку при удалении модуля из файла main.tf
Terraform жалуется, что без поставщика Google он не сможет уничтожить ресурсы. Например:
module.project1.google_storage_bucket_iam_member.some-bucket:
configuration for module.project1.provider.google is not present; a provider configuration block is required for all operations
Можно ли несколько раз использовать один и тот же модуль в одном и том же main.tf
? Я понимаю, что в идеале я должен написать провайдера, но я бы хотел пока избежать этого.