Edit this page on GitHub
Design, develop, and test plugins that connect Terraform to external services.
Terraform is logically split into two main parts:
- Terraform Core: This is the Terraform binary that communicates with plugins to manage infrastructure resources. It provides a common interface that allows you to leverage many different cloud providers, databases, services, and in-house solutions.
- Terraform Plugins: Plugins are executable binaries written in Go that communicate with Terraform Core over an RPC interface. Terraform currently supports one type of plugin called providers. Each provider plugin exposes an implementation for a specific service or tool, such as the AWS provider or the cloud-init provider.
- Learn more about how Terraform Core interacts with plugins.
- Learn the design principles HashiCorp developers follow when creating providers.
- Learn about plugin framework benefits and why we recommend using it to develop providers.
- Try these hands-on tutorials: Implement a Provider with the Terraform Plugin Framework.
- Clone these template repositories on GitHub: terraform-provider-scaffolding-framework.
- Create new providers with the framework documentation.
- Maintain existing providers with the SDKv2 documentation.
- Publish your provider on the Terraform Registry to make it publicly available.
- Get HashiCorp to officially approve and verify your provider. Verified providers get a special badge on the Terraform Registry.
- Share internal-only providers within your organization with the private registry.