Over the last few years, one of the most popular topics on our YouTube channel, in person at conferences, and in other discussions has been writing, using, refactoring, and collaborating on complex configurations using Terraform modules. Modules are a key part of writing maintainable, shareable Terraform configurations.
Use and create your first Terraform modules by following our new step-by-step command-line guides in the Learn modules track.
HashiCorp recommends using modules for almost any Terraform configuration. Modules allow you to organize, encapsulate, and re-use your configuration. Organizations can use modules to ensure consistent use of security features and other best practices.
If you’re unfamiliar with Terraform modules, review the Modules Overview to learn what modules are, and when and why to use them.
The Terraform Registry hosts hundreds of modules contributed by the Terraform community. Modules from the Registry and other locations can be used to enhance your Terraform configurations.
In this guide, you will use modules from the Terraform Registry to provision an example environment on AWS.
As your Terraform configurations become more complex, modules can be used to organize and simplify them. You can also share modules within your organization or with the Terraform community.
In this guide, you will create a module to manage AWS S3 buckets used to host static websites.
Terraform Sentinel policies are now available in the Terraform Registry so you can publish policies you want to share and search the Registry for policies you need.
Cloud Development Kit for Terraform (CDKTF) has reached its first GA release, adding full support for Go and providing a GitHub action to use with Terraform Cloud.
In the journey toward a modern service-based networking solution, core workflows are needed for discovering services, securing service communications, automating networking tasks, and controlling access.