HashiCorp Terraform provides infrastructure as code to provision and manage any infrastructure. When we initially launched the Terraform Module Registry, we wanted to give our growing community of Terraform users a place to find and share all the Terraform modules they might need in one location. Our goal was to make reusing infrastructure as code really easy, and that theme continues as we head into the future.
Today, we’re excited to announce the beginnings of a new direction for the Registry. We're renaming it as the Terraform Registry and expanding it to include Terraform providers as well as modules. The first set of providers will be ones that HashiCorp maintains and these are now available at registry.terraform.io. Our goal is to make it easy for everyone (HashiCorp, partners, and community members) to share providers they’ve built for Terraform alongside modules built for those providers.
» Terraform Providers and Modules
One of the most basic ways to couple and reuse resources is modules. Modules allow you to package infrastructure as code for even quicker reuse and dynamism, and make standardizing Terraform across teams and clouds really easy. While providers enable a service (like, say, AWS), modules are what really build that service into something you can quickly and easily start using. Modules group together resources that depend on each other (using our AWS example, resources could include VPC, EFS, SSL, etc.) so you can set them up all at once. While modules typically work with a specific provider, they can work with more than one in select cases.
Terraform providers are the plugins that make it easy for Terraform to interact with all the services you need to run successful infrastructure. There are three kinds of providers:
- Providers that we maintain (HashiCorp providers)
- Providers our technology partners maintain (Partner providers),
- And providers our community members maintain (Community providers).
» Terraform Registry with Providers
Historically, the Terraform Registry has been a one-stop shop for Terraform modules of all kinds. You could search for modules by name, author, or keyword, and filter your results by major cloud provider type. And you could look over basic information about how to provision the module, see where the module lives on GitHub, and check out the readme and reference info.
Today, you can find both modules and HashiCorp providers to get started with Terraform. The module pages work much the same as before, and you'll notice some similarities with the provider pages. But providers include their full documentation for you to look through and reference.
For now, you will only be able to find providers that we here at HashiCorp maintain. Today you can still find excellent providers from our partners and community at terraform.io. Eventually, all of these will be available on the Registry.
» Next Steps
We're really excited to begin the work to open up the Terraform Registry to our partners and community. We have to make a few changes to how providers are obtained before we can do that, and watch for future posts as that work progresses.
Eventually, you will be able to browse providers the same way you browse modules. You'll be able to clearly see all of the modules and providers a given author has published. And you'll likely see some nice UI updates to the module pages and cards as well.
If you're a partner or community member who already has a published provider, you'll be hearing from us soon about what you need to do to switch -- and when. Our goal is to make it possible for you to search for everything in one place. There is still a lot of work ahead, but we’re pleased to share our progress so far.
We are excited to introduce the new Terraform Registry and introduce the first phase of providers into it. We hope you enjoy the changes. If you're interested in beta testing upcoming workflows for publishing providers, contact us here. To learn more about Terraform, visit https://learn.hashicorp.com/terraform or to get started visit https://www.hashicorp.com/products/terraform.