#terraform #provider
#терраформирование #поставщик
Вопрос:
здравствуйте, я использую версию terraform v13 с момента выпуска этой версии, мы вынуждены просматривать версию.система tf с блоком required_providers. CF https://www.terraform.io/docs/configuration/provider-requirements.html .
У меня есть main.tf сценарий, вызывающий вспомогательный модуль terraform. как показано ниже
module "wab_device" {
source = "./wab-device"
domain = "aws.eu-west-1.example.com"
os = "Linux"
hostnames = { "JTUFFZ06TEST" : { "vm_name" : "JTUFFZ06TEST" } }
description = "Test description use module wab tfv13"
support_group = "Support group"
}
и у меня есть своя версия.tf, как показано ниже
terraform {
required_providers {
wab = {
source = "private-registry.example.com/org/wab"
version = "1.3.2"
}
vault = {
source = "hashicorp/vault"
}
}
required_version = ">= 0.13"
}
пока все хорошо
я запускаю свой terraform13 init, я столкнулся с проблемой ниже
Ошибка: не удалось установить поставщика
Ошибка при установке hashicorp / wab: реестр поставщиков registry.terraform.io не имеет имени поставщика услуг registry.terraform.io/hashicorp/wab
terraform не находит поставщиков в моем личном реестре внутри моего модуля . я пытаюсь загрузить из Интернета, поэтому я копирую и вставляю version.tf в каталоге ./wab-устройство
И это работает как шарм.
Но теоретически все в порядке . на практике я не могу изменить свой модуль wab-device, потому что это репозиторий git, и я не являюсь владельцем, и я должен сделать то же самое с 5 другими репозиториями…
Как мы можем использовать модуль без указания version.tf внутри подмодуля . Могу ли я использовать псевдоним вместо этого ?? или .terraformrc
Спасибо за ваши советы, я бы помог мне
с уважением
Комментарии:
1. Вам нужно будет изменить это в конфигурации
wab-device
модуля. Если вы не являетесь владельцем, вы все равно можете опубликовать изменения.
Ответ №1:
В Terraform каждый модуль отвечает за объявление своих собственных зависимостей. Это похоже на то, как в большинстве других экосистем языков программирования библиотека объявляет, от каких других библиотек она зависит.
По этой причине невозможно заставить модуль зависеть от нового поставщика, от которого он еще не зависит. Вам нужно будет либо попросить сопровождающего этого модуля добавить необходимое объявление зависимости, либо разветвить модуль и добавить объявление в вашу копию.
Поскольку этот модуль «wab» не является одним из поставщиков, которые сама HashiCorp распространяла до Terraform v0.13, вполне вероятно, что модули, которые вы пытаетесь использовать, предназначены для Terraform v0.12, а не для Terraform v0.13. В этом случае альтернативным подходом было бы также использовать Terraform v0.12 для вашей конфигурации и оставаться на этой версии до тех пор, пока все модули, от которых вы зависите, не будут обновлены, чтобы быть совместимыми с Terraform v0.13.