Terraform,提供程序缺少模块上的继承



Terraform v0.14.8

当我尝试启动terraform init时遇到了这个问题,提供程序注册表。terraform.io/hashicorp/aci未找到

我想使用我的提供商:registry.terraform.io/iscodevnet/aci

$terraform提供商

配置所需的提供商:

.  
├── provider[registry.terraform.io/ciscodevnet/aci] 0.5.4  
└── module.bride_domain_2001  
└── provider[registry.terraform.io/hashicorp/aci] 

我的问题是:如何在模块上强制registry.terraform.io/ciscodevnet/aci?

我如何调用我的模块:

module "bride_domain_2001" {
source = "./modules/bride_domain_2001"
aci_vrf_vrf_training_id= aci_vrf.vrf_training.id
aci_tenant_tenant_training_id= aci_tenant.tenant_training.id
}

预期行为
内部提供者应从父级继承并使用

实际行为
Terraform不使用从父模块继承

感谢

您的子模块bride_domain_2001似乎缺少一个required_providers条目来指定它依赖于ciscodevnet/aci,这导致Terraform的向后兼容性行为假设您指的是hashicorp/aci

要修复它,请将required_providers条目添加到您的子模块:

terraform {
required_providers {
aci = {
source = "ciscodevnet/aci"
# (possibly also a >= version constraint)
}
}
}

添加此项后,Terraform将看到根模块和子模块都依赖于同一个提供程序ciscodevnet/aci,因此您对该提供程序的配置应该由子模块中属于该提供方的资源继承。

最新更新