Overview
Authoring a large library of modules like this requires that certain principles be decided and documented for iteration.
These principles help guide decision making when multiple valid approaches exist for tackling a problem.
High Level Principlesβ
These are some documented high level principles that should be followed in order to encourage continuous increase in the quality of modules in the library.
If Isn't Tested It's Brokenβ
The Terratest testing library was created in order to provide a way to efficiently test IAC modules in an easy way. All modules in the library should have tests associated with them, and whenever possible, should have tests that test all the most important behaviors.
It can be expensive to maintain this many tests, but it is more expensive not to, when dealing with surface area this large.
As a matter of general practice, it is more important that a module is tested at all than that it is tested comprehensively
ποΈ Control Provider Usage
There are two main methods for controlling the provider used in OpenTofu/Terraform operations:
ποΈ Be Judicious with New Features
New OpenTofu features can streamline module authoring and provide more features, but may also require that consumers adopt newer OpenTofu versions. This requirement can pose challenges for organizations that cannot upgrade OpenTofu versions promptly, but want to keep using the latest version of our modules.
ποΈ Quality In Depth
Similar to the notion of Defense in Depth), quality in depth is a concept relating to how multiple layers of quality assurance can be used to ensure that modules continuously improve in quality over time.