Overview
Developing and maintaining a comprehensive library of modules requires clearly defined and documented principles to support ongoing iteration and improvement.
These principles serve as a framework for decision-making when multiple valid solutions are available for addressing a problem.
High-level principlesβ
The following high-level principles are intended to continuously improve the quality and reliability of the modules within this library.
If it isn't tested, it's brokenβ
The Terratest testing library was developed to provide an efficient and effective method for testing Infrastructure as Code (IaC) modules.
All modules in this library must have associated tests. Wherever feasible, these tests should cover all critical functionalities and behaviors.
While maintaining a comprehensive suite of tests can be resource-intensive, neglecting testing introduces significantly higher risks and costs due to the library's extensive surface area.
As a best practice, it is more important that a module has basic testing coverage than that it is tested exhaustively.
ποΈ Control Provider Usage
There are two primary methods for managing the provider used in OpenTofu/Terraform operations:
ποΈ Be Judicious with New Features
Introducing new OpenTofu features can enhance module development and expand functionality. However, adopting these features may require users to upgrade to newer OpenTofu versions. This requirement can create challenges for organizations that are unable to update OpenTofu promptly but still wish to utilize the latest module versions.
ποΈ Quality In Depth
Inspired by the concept of Defense in Depth), quality in depth refers to implementing multiple layers of quality assurance to ensure continuous improvement in the quality of modules.