This HashiCorp Learn tutorial will teach you about our recommended enterprise patterns for modules so that you can apply them to your organization’s workflows.
HashiCorp Terraform modules are pre-built configurations of infrastructure as code. By organizing your infrastructure into modules, your team can reuse them in future configurations which can save time and reduce costly errors. While there are many ways to design modules, there are coding best practices you should adhere to whenever possible, such as clear organization and the DRY ("Don't Repeat Yourself") principle.
In the first tutorial for our Recommended Enterprise Patterns for Terraform collection, Module Creation - Recommended Pattern, you will learn the architectural recommendations for module creation. This tutorial discusses principles for writing composable, shareable, and reusable infrastructure modules, distilled from our engagements with large enterprises using Terraform. These architectural recommendations can be helpful to enterprises using any edition of Terraform, including open source.
The tutorial also includes a scoping exercise where you’ll learn how to break the following architecture down into Terraform modules.
By the end of this tutorial, you will be familiar with our recommended enterprise patterns for modules and be able to apply them to your organization’s workflows.
To learn more about Terraform modules, refer to the Terraform Modules documentation. For step-by-step tutorials on using and creating Terraform modules, refer to the Reuse Configuration with Modules tutorials on HashiCorp Learn.
The CDK for Terraform 0.5 introduces code generation from HCL and a new cdktf watch workflow for serverless workloads.
Follow our new tutorial to build your summer playlist with Terraform using a community-authored Spotify provider. Hear from the author and share your playlist for a chance to win a free HashiCorp T-shirt.
Learn how to build an automated HashiCorp Vault onboarding system with Terraform using sensible naming standards, ACL policy templates, pre-created application entities, and workflows driven by VCS and CI/CD.