Terraform: Как установить несколько версий плагинов провайдера?

Я пытаюсь развернуть ресурсы Azure через Terraform 0.12 с поставщиком azurerm. У меня есть модуль AKS, который отлично работает с azurerm версии 2.5.0, но не работает с 2.9.0. С другой стороны, модуль Postgresql работает с версией 2.9.0, но не работает с версией 2.5.0. Я хочу развернуть оба ресурса с помощью одного приложения terraform.

Я попытался выполнить приведенную ниже конфигурацию, но на этапе инициализации он не работает.

  provider "azurerm" {
  version = "=2.9.0"
  }

  provider "azurerm" {
  alias = "latest"
  version = "=2.5.0"
  }

$ terraform.exe init

Initializing the backend...

Initializing provider plugins...
- Checking for available provider plugins...

No provider "azurerm" plugins meet the constraint "=2.5.0,=2.9.0".

Ограничение версии выводится из аргумента «версия» в блоке «azurerm» поставщика в конфигурации. Дочерние модули также могут применять ограничения версии поставщика. Чтобы просмотреть версии провайдеров, запрошенные каждым модулем в текущей конфигурации, запустите «terraform провайдеры».

Чтобы продолжить, ограничения версии для этого поставщика должны быть ослаблены путем корректировки или удаления аргумента «версия» в блоках поставщика по всей конфигурации.

Ошибка: нет подходящей версии

Как установить обе версии провайдера и указать модуль AKS на v2.5.0 и указать модуль Postgres на v2.9.0


person Prashant Shetage    schedule 10.05.2020    source источник
comment
Это невозможно с текущей версией terraform (0.12 и 0.13).   -  person kap    schedule 10.09.2020


Ответы (1)


Разбейте код на модули и добавьте раздел провайдера в свой модуль и вызовите модули по-другому в файле main.tf.

Пример

модули / АКС

provider {
}

модули / БД

provider {
}

Теперь назовите свои модули по-другому

main.tf

module "AKS" {
  source = "../modules/AKS"
}

module "DB" {
  source = "../modules/DB"
}
person karan sharma    schedule 10.05.2020
comment
Используется ниже конфигурация: AKS main.tf provider "azurerm" { version = "= 2.5.0" } Postgrsql main.tf provider "azurerm" { version = "= 2.9.0" } По-прежнему появляется такая же ошибка после запуска terraform init Нет плагины azurerm поставщика, отвечающие ограничению = 2.5.0, = 2.9.0 - person Prashant Shetage; 10.05.2020