Проблема Terraform для правильного определения провайдера cyrilgdn/postgresql
У меня та же проблема, что и здесь, Terraform пытается загрузить старого несуществующего провайдера, и опубликованное там решение не работает для меня.
Проблема в том, что я определяю в конфигурации terraform:
required_providers {
postgresql = {
source = "cyrilgdn/postgresql"
version = ">=1.13.0"
}
}
Но процесс инициализации terraform всегда пытается загрузить hashicorp / postgresql и в итоге не может его найти.
Моя текущая версия terraform:
Terraform v1.0.6 на windows_amd64
Я действительно много пробовал и играл с параметром ресурса "provider", чтобы явно установить поставщика для всех ресурсов, но даже с этим я не нашел способа.
Может ли кто-нибудь помочь здесь снова или отправить мне рабочий пример для этого провайдера?
2 ответа
Итак, для нас решение таково - потому что мы используем подмодули, и каждый подмодуль/повторное использование, который использует поставщиков postgresql, требует внутри этой конфигурации поставщика.
Пример: допустим, у вас есть структура кода терраформирования ниже,
.
├── versions.tf
├── outputs.tf
├── main.tf
├── modules
│ ├── postgres
│ │ ├── outputs.tf
│ │ ├── db.tf
│ │ └── variable.tf
Мне пришлось определить «required_providers» как в файлахversion.tf, так и в db.tf, как показано ниже.
terraform {
required_providers {
postgresql = {
source = "cyrilgdn/postgresql"
}
}
required_version = ">= 1.0.0"
}
Надеюсь это поможет ! Всего наилучшего
Я нашел решение! Проблема в том, что у меня была структура папок. У меня была определенная структура папок, например:
среды, такие как dev / int / prod, и у меня там был config.tf с необходимыми поставщиками.
ресурсы, в которых я использую ресурсы, которые хочу добавить, и то, что я пропустил, - это копия файла config.tf.
Это означает, что мне нужен файл config.tf в каждой подпапке, состоящей из модулей.