Проблема 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 в каждой подпапке, состоящей из модулей.

Другие вопросы по тегам