Terraform would be pretty useless without its providers. Providers are essentially plugins that allow Terraform to interact with remote systems. They are either maintained by Hashicorp, third-party technology partners or Terraform community members.
We took a look at the most popular Terraform providers by the number of installs from the Terraform registry. There are 8 utility providers (Null, Random, Archive, Local, External, TLS, DNS, HTTP), 6 public cloud providers (AWS, Azure, Google Cloud Platform, Google Beta, WMware vSphere, Oracle Cloud Infrastructure), 3 HashiCorp Platform providers (Vault, Consul, Terraform Cloud), 1 container orchestration provider (Kubernetes), 1 cloud automation provider (Helm) and 1 security & authentication provider (Azure Active Directory).
We hope that this ranking will help you learn more about some providers you may not already know.
Does the AWS provider need an introduction? AWS is the biggest cloud provider in the world in terms of market share, so it comes as no surprise that its provider is also the most popular one of the Terraform registry. Use the AWS provider to manage the lifecycle of AWS resources, such as EC2, Lambda, EKS, ECS, VPC, S3, RDS, DynamoDB, and more.
The second most popular provider of the Terraform registry is a utility provided by Hashicorp. According to its documentation, the null provider “provides constructs that intentionally do nothing – useful in various situations to help orchestrate tricky behavior or work around limitations.”. An example of that would be to execute a script once the provisioning is completed.
The random provider adds support for randomness within Terraform configurations. It’s a useful provider to generate UUIDs or passwords securely and reliably. The random values generated are held steady until the inputs are changed to preserve Terraform’s fixed-configuration model.
The Azurerm provider enables the lifecycle management of Microsoft Azure using the Azure Resource Manager APIs.
The Google provider is used to configure Google Cloud Platform infrastructure (Compute Engine, Cloud Storage, Cloud SDK, Cloud SQL, GKE, BigQuery, Cloud Functions, …).
The Archive provider generates an archive from content, a file, or directory of files.
The Local provider is used to manage local resources, such as files.
The Kubernetes providers enables the management of Kubernetes resources, including Pods, Services, Policies, Quotas and more using Terraform.
The External provider is a special provider that exists to provide an interface between Terraform and external programs – useful for integrating Terraform with a system for which a first-class provider does not exist.
The Google Beta provider is distinct from the Google provider in that it supports Google Cloud Platform products and features that are in beta, while the Google provider does not.
The Vault provider allows Terraform to read from, write to, and configure Hashicorp Vault.
Manage installed Charts in your Kubernetes cluster, in the same way Helm does, through Terraform.
Provides utilities for working with Transport Layer Security keys and certificates. It provides resources that allow private keys, certificates and certificate requests to be created as part of a Terraform deployment.
Configure infrastructure in Azure Active Directory using the Azure Resource Manager APIs.
The HTTP provider is a utility provider for interacting with generic HTTP servers as part of a Terraform configuration.
The DNS provider is a useful utility to manage DNS servers configured accordingly to RFC 2136 and 2845 with Terraform.
The Consul provider exposes resources used to interact with a Consul cluster, such as adding external services or working with the key/value store
The vSphere provider enables the lifecycle management of VMware vSphere resources, including Virtual Machines, ESXi Hosts, Datastores, vSwitches, and more.
Provision Terraform Cloud or Terraform Enterprise - with Terraform! Management of organizations, workspaces, teams, variables, run triggers, policy sets, and more.
The OCI provider enables the interaction with the resources supported by the Oracle Cloud Infrastructure APIs.
The Scalr Terraform provider can be used to manage the components within Scalr. This will allow you to automate the creation of workspaces, variables, VCS providers and much more.