new-terraform-provider

作者: hashicorp

使用Plugin Framework搭建一个新的Terraform provider。生成一个采用标准"terraform-provider-"命名约定的新Go模块工作区,并初始化所需依赖。提供一个遵循HashiCorp Plugin Framework模式的模板main.go文件,其中包含用于自定义的TODO标记。通过运行构建和测试命令来验证设置,确保provider能够编译并通过初始检查。通过创建新工作区前确认意图来处理工作区管理。

npx skills add https://github.com/hashicorp/agent-skills --skill new-terraform-provider

To scaffold a new Terraform provider with Plugin Framework:

  1. If I am already in a Terraform provider workspace, then confirm that I want to create a new workspace. If I do not want to create a new workspace, then skip all remaining steps.
  2. Create a new workspace root directory. The root directory name should be prefixed with "terraform-provider-". Perform all subsequent steps in this new workspace.
  3. Initialize a new Go module.
  4. Run go get -u github.com/hashicorp/terraform-plugin-framework@latest.
  5. Write a main.go file that follows the example.
  6. Write an internal/provider/provider.go file that follows the example. Rename the demo provider, the DEMO_* environment variables, and the authentication attributes to match the target API.
  7. Remove TODO comments from main.go and provider.go.
  8. Run go mod tidy
  9. Run go build -o /dev/null
  10. Run go test ./... The scaffold resolves credentials as explicit config with environment variable fallback. To grow that into a full credential provider chain (shared credentials files, profiles, platform identity, configure-time validation), use the provider-configuration skill (if available). To add the first resource or data source, use the provider-resources skill (if available).

来自 hashicorp 的更多技能

provider-framework-migration
hashicorp
将Terraform provider资源和数据源从Plugin SDKv2迁移到Plugin Framework:在一个provider中混合使用两个插件(terraform-plugin-mux,…)
provider-configuration
hashicorp
使用Plugin Framework实现Terraform provider配置和认证:provider schema用于凭据(Optional + Sensitive属性),…
provider-ephemeral-resources
hashicorp
使用Plugin Framework实现Terraform provider的临时资源:Open/Renew/Close生命周期、临时schema设计、通过…注册
terraform-test
hashicorp
关于使用断言、模拟和模块验证编写及运行Terraform测试的全面指南。使用.tftest.hcl语法编写测试文件,通过运行块在计划或应用模式下执行,支持顺序和并行执行,并可选择状态隔离。对资源属性、输出和数据源进行断言条件验证;使用expect_failures确保无效输入被正确拒绝。模拟提供程序(Terraform 1.7.0+)可模拟基础设施行为,无需...
terraform-policy
hashicorp
编写、测试或转换Terraform策略文件(.policy.hcl、.policytest.hcl、Sentinel→tfpolicy)。触发词:policy.hcl、policytest、convert sentinel、tfpolicy、…
terraform-search-import
hashicorp
使用 Terraform Search 查询发现现有云资源,并将其批量导入 Terraform 管理。适用于将未管理的基础设施纳入管理时…
aws-ami-builder
hashicorp
使用Packer的amazon-ebs构建器创建自定义Amazon Machine Images。通过HCL模板自动化从源AMI创建AMI的过程,并利用配置器(shell脚本、文件上传、配置管理)进行自定义。支持通过ami_regions实现多区域AMI分发,以及按名称、所有者和虚拟化类型灵活过滤源AMI。通过环境变量、AWS凭证文件或IAM实例配置文件进行身份验证;包含模板的验证和构建命令...
tfctl
hashicorp
使用 tfctl CLI 与 HCP Terraform / Terraform Cloud / Terraform Enterprise 交互。完整 API 覆盖。适用于任何 HCP Terraform 或 Terraform Cloud 或…