mcpField
N
new-terraform-provider

new-terraform-provider

github.com/hashicorpDevelopment9093.9k installsUpdated today
Repository

About new-terraform-provider

A skill for scaffolding a Terraform provider with the Plugin Framework. It guides Go workspace setup, provider files, and build and test checks, with credential and resource work delegated to related skills.

Key features

  1. 01Create a prefixed provider workspace
  2. 02Initialize a Go module and dependency
  3. 03Generate main.go and provider.go
  4. 04Build and test the scaffold

Use cases

  1. 01Starting a new Terraform provider
  2. 02Checking a scaffold compiles and passes tests

Install

Copy the command and run it in a terminal.

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

After installing, type/new-terraform-providerin Claude Code to confirm it loaded.

Bundled filesassets/main.goassets/provider.go

Details

From the project README

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).

Comments

Markdown supported