Pull out vpc, iam, fleeting and gitlab into top-level modules

This change moves GRIT to a structure with top-level composable modules. This structure reduces the complexity of each module and provides a place to "bring your own" configuration. For example GitLab registration is now a separate module, as-is creation of an independent VPC.

This first MR addresses the aws provider which is where most of the code is. Subsequent MR's will migrate the google provider to the new structure.

The best way to review this MR is by reading about the desired usage in the README.md changes. And looking at the e2e test and examples folders for how the modules are used. Then look at the end state which should be consistent.

There is a new mechanism in modules/validation for applying consistent validation to all top-level modules. And common metadata (name, labels and sometimes support level) are collected into a metadata field.

Because individual pieces can now be consumed through the test modules types, there is no need for a dev type module anymore. So all references to dev modules and directories are removed.

The convention of keeping all defaults in the test and prod folder variables.tf files remains. And all description entries are moved there as well, so those are the documented API for GRIT.

Fixes #49 (closed)

Edited by Joe Burnett

Merge request reports

Loading