【问题标题】:Terraform, providers miss inherits on moduleTerraform,提供者错过了模块上的继承
【发布时间】:2021-06-13 22:36:54
【问题描述】:

Terraform v0.14.8

当我尝试启动 terraform init 时遇到此问题,找不到提供程序 registry.terraform.io/hashicorp/aci

我想使用我的提供商:registry.terraform.io/ciscodevnet/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 不使用来自父模块的继承

谢谢

【问题讨论】:

    标签: module terraform provider


    【解决方案1】:

    您的子模块 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,因此你的提供者configuration 应该由属于该提供者的资源在子模块。

    【讨论】:

      猜你喜欢
      • 2021-03-10
      • 2021-07-13
      • 2018-02-03
      • 2023-02-05
      • 1970-01-01
      • 2019-07-08
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多