Providers are how Terraform integrates with any upstream API.
The Terraform Registry
is the main source for publicly available Terraform providers as it offers a browsable and searchable interface for finding providers. Additionally, it enables Terraform CLI to automatically install any of the providers it hosts.
The Registry is directly integrated with Terraform. To use any provider from the Registry, all you need to do is require it within your Terraform configuration.
Terraform providers are published and maintained by a variety of sources including HashiCorp, HashiCorp Technology Partners, and the Terraform community.
The Registry is directly integrated with Terraform. To use any provider from the Registry, all you need to do is require it within your Terraform configuration. The provider is then automatically installed while initializing a working directory.
The Registry uses tiers
and badges
to denote the source of a provider. namespaces
also help users to identify the organization or publisher responsible for the integration, as shown in the table below.
Tier | Description | Namespace |
---|---|---|
Official | Official providers are owned and maintained by HashiCorp | hashicorp |
Verified | Verified providers are owned and maintained by third-party technology partners. Providers in this tier indicate that HashiCorp has verified the authenticity of the Provider’s publisher, and that the partner is a member of the HashiCorp Technology Partner Program. | Third-party organization, e.g., mongodb/mongodbatlas |
Community | Community providers are published to the Terraform Registry by individual maintainers, groups of maintainers, or other members of the Terraform community. | Maintainer’s individual or organization account, e.g., DeviaVir/gsuite |
Archived | Archived Providers are Official or Verified Providers that are no longer maintained by HashiCorp or the community. This may occur if an API is deprecated or interest is low. | hashicorp or third-party |
If you want Terraform to support a new infrastructure service, you can create your own provider using Terraform’s Go SDK. Once you’ve developed a provider, you can use the Registry to share it with the rest of the community.
Free Resources