- HashiCorp's Official Tutorial: "Implement a Provider with the Terraform Plugin Framework"
- Terraform Plugin Framework documentation
- HashiCorp Learn Lab: "Create a Terraform provider with the Plugin Framework" (YouTube video)
- Terraform Registry documentation on publishing provider documentation
- GitHub repository: terraform-provider-scaffolding-framework (template for new providers)
- Terraform Plugin Development section on HashiCorp Discuss (for asking questions and learning patterns)
- Terraform Provider Development tutorials on HashiCorp Developer portal
- Blog post: "How To Create a Terraform Provider — a Guide for Absolute Beginners" by Speakeasy
github.com/hashicorp/terraform-plugin-framework
github.com/hashicorp/terraform-plugin-go
github.com/hashicorp/terraform-plugin-docs
github.com/hashicorp/terraform-plugin-testing
# Create a new directory for your provider
mkdir terraform-provider-mycompany
cd terraform-provider-mycompany
# Initialize Go module
go mod init github.com/yourusername/terraform-provider-mycompany
# Add core dependencies
go get github.com/hashicorp/terraform-plugin-framework
go get github.com/hashicorp/terraform-plugin-go
terraform-provider-mycompany/
│
├── main.go
├── go.mod
├── go.sum
│
├── internal/
│ ├── provider/
│ │ ├── provider.go
│ │ ├── resource.go
│ │ └── datasource.go
│ └── examples/
└── resources/
└── example_resource.tf
- Use Go modules for dependency management
- Implement provider using Plugin Framework
- Follow HashiCorp's best practices
- Generate comprehensive documentation
- Create thorough test coverage
# Run tests
go test ./...
# Build provider
go build
# Generate documentation
tfplugindocs generate
- Complete HashiCorp's official tutorial
- Study existing open-source providers
- Start with a simple, single-resource provider
- Incrementally add complexity
- Publish to Terraform Registry