You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成Terraform Provider文档时如何指定自定义源?

问题分析与解决方案

你遇到的问题是tfplugindocs工具生成文档时,默认尝试拉取HashiCorp命名空间下的pterodactyl Provider,而非你发布的registry.terraform.io/Luiggi33/pterodactyl,本质是工具和Terraform未正确识别自定义Provider的源地址。以下是针对性的解决步骤:

1. 新增/修改.tfplugindocs.yml配置文件

在项目根目录创建该配置文件,明确指定Provider的完整源地址,强制工具使用你的自定义命名空间:

provider-name: pterodactyl
provider-source: registry.terraform.io/Luiggi33/pterodactyl

此配置会覆盖命令行参数的默认设置,确保工具定位到正确的Provider源。

2. 修正examples目录下的示例配置

所有examples文件夹内的.tf示例文件,必须在开头添加Provider源声明,避免Terraform默认去HashiCorp命名空间查找:

terraform {
  required_providers {
    pterodactyl = {
      source  = "Luiggi33/pterodactyl"
      version = ">= 你的Provider版本号"
    }
  }
}

provider "pterodactyl" {
  # 此处填写Provider配置参数
}

tfplugindocs会读取示例文件的配置,正确的source设置能引导Terraform Init指向你的Provider。

3. 确认go.mod模块路径正确性

检查项目根目录的go.mod,确保模块路径与你的Provider仓库一致:

module github.com/Luiggi33/terraform-provider-pterodactyl

go 1.21

模块路径需匹配你发布Provider时的仓库地址,避免工具混淆Provider归属。

4. 调整go generate命令(可选)

若上述配置仍不生效,直接在main.go的go:generate指令中添加-provider-source参数:

//go:generate go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs generate -provider-name pterodactyl -provider-source registry.terraform.io/Luiggi33/pterodactyl

此参数会直接指定工具使用的Provider源,优先级高于默认配置。

5. 清理缓存后重新执行

执行以下命令清理Terraform本地缓存,避免旧配置残留影响:

rm -rf .terraform/
rm -rf .terraform.lock.hcl

之后重新运行go generate即可。

内容的提问来源于stack exchange,提问作者Luiggi33

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:42:03