Introduction
Expertly crafted Terraform modules ready for use in your infrastructure. Designed for simplicity, customization, and featuring open-source transparency.
What is infra/brettwporter?
This is not a Terraform module hosted in GitHub or in a registry that you’ve typically used. This is a collection of Terraform modules that are designed to be copied into YOUR infrastructure and organization.
Pick the modules you need, then fork or copy and paste into your own repo. Host it as a private module in your own registry, or use it as a local module. YOU own it.
EXTEND it to your organization’s needs.
FAQ
Why copy and paste instead of a public module?
Why copy and paste instead of a public module?
The rationale is to provide you with autonomy and control over the code, enabling you to determine the setup of your infrastructure.
Some of the drawbacks of public modules are that they are not always maintained, and they may not be designed to fit your organization’s needs. They do not have the same structure and typically include more complexity which makes them harder to utilize.
Also, since Terraform lacks a normal package manager, this approach allows you to design the modules in your own version control system, adhering to software development best practices.
Can I use this in my project?
Can I use this in my project?
Absolutely. You are welcome to utilize this for both personal and commercial projects. There is no need for attribution. The license is here. If you do utilize it in a project, please consider sponsoring the project.
Why is the only framework supported Terraform?
Why is the only framework supported Terraform?
Terraform is the most widely used infrastructure as code tool. It is also the most flexible and has the most community support.
However, with Hashicorp’s recent changes to the open source licensing model, it is important to be aware of the implications of using Terraform in your organization. OpenTofu is a project that aims to provide an open source alternative to Terraform and may be more suitable for you to use.
Why are the modules designed by application type?
Why are the modules designed by application type?
The design of the modules mirrors the structure of an application, enhancing their comprehensibility and integration. They are crafted to be easily grasped by a typical developer, not exclusively for a DevOps or Cloud engineer.
A website is just that - a website, not a ‘website with 6 lambdas and a VPC’. Similarly, an API is just an API, not an ‘API with a EC2 and a security group’. This is the way the modules are designed. They are designed to be simple and easy to understand.