我正在尝试完成本教程以使用插件框架创建自定义 terraform 模块。一切都很好,直到我需要使用 terraform 来安装和验证提供者。它失败了:➜ examples git:(main) ✗ terraform initInitializing the backend...Initializing provider plugins...- Finding latest version of example.com/vladmiller/example...│ Warning: Provider development overrides are in effect││ The following provider development overrides are set in the CLI configuration:│ - example.com/vladmiller/example in /Users/vladi/go/bin││ Skip terraform init when using provider development overrides. It is not necessary and may│ error unexpectedly.╵╷│ Error: Invalid provider registry host││ The host "example.com" given in in provider source address "example.com/vladmiller/example"│ does not offer a Terraform provider registry.我也试过:从教程中克隆 repo,但它也失败了使用本地安装的 Go 而不是 GoLandgo1.18.8 而不是 go1.19.x将 .terraformrc 中的文件夹指向我开发代码的文件夹(我认为可能terraform-registry-manifest.json需要与二进制文件位于同一文件夹中)克隆并尝试这个 repo——运气不好我目前正在尝试理解关于他们如何加载插件的地形代码......想知道是否有人对如何排除故障有任何想法。先感谢您。查看日志很明显,terraform 正试图通过向 example.com 发出请求来获取注册表详细信息。我希望它不应该这样做,因为有dev_overrides....
Service discovery for example.com at
...以下是更多日志和我的设置示例。
1 回答
倚天杖
TA贡献1828条经验 获得超3个赞
您提到的参数dev_overrides
告诉其他 Terraform 命令,例如terraform apply
忽略由其填充的依赖项锁定文件和提供程序缓存目录terraform init
,而是使用您指定的路径。它不会影响terraform init
自身的行为;安装程序总是会尝试找到一个合理的包下载并记录在依赖锁文件中,以避免创建一个不完整的锁文件。
terraform init
正如警告消息所提到的,如果您的目标只是测试被覆盖的提供程序,则实际上不需要运行。如果您只是直接运行terraform apply
,那么您配置的覆盖将阻止 Terraform 查看依赖项锁定文件以找到该提供程序,而是直接使用您指定的目录。在这种情况下不需要自动安装,因为该程序包已在您计算机上的指定位置可用。
使用提供者开发覆盖时跳过 terraform init。这不是必需的,可能会意外出错。
- 1 回答
- 0 关注
- 111 浏览
添加回答
举报
0/150
提交
取消