Kit Module
A kit module is a standard terraform module implementing lightweight conventions that enable construction kit tooling.
Kit modules must be stored in the /kit
path of the construction kit repository, e.g. /kit/aws/my-module/
. The id
of the module is its path relative to the kit/
folder, e.g. aws/my-module
in the given example.
At a minimum, a kit module must consist of a terraform module main.tf
and README.md
file meeting the following conventions.
Module README.md
The readme contains module documentation and structured kit module metadata in YAML frontmatter. The frontmatter must contain two mandatory property keys name
and summary
describing each module:
---
name: My Module name
summary: |
describe what the module does
compliance: # optional
- control: framework/control # control id (relative path to the control's .md file without extension)
statement: |
describe how this module implements the control
---
# My Module
Your extensive module description here...
TIP
collie foundation docs
leverages the name
and summary
properties to render references to the module in the documentation of platforms that apply this module.
Compliance Statements
Kit modules can also have optional additional compliance
statements. Compliance statements document how a module implence controls imposed by the foundation's compliance frameworks. See compliance for more details.
A compliance statement must have these properties
control
references theid
of the compliance control. The id is the path to the control configuration file relative to thecompliance/ directory
without the.md
extensionstatement
is a human-readable text that describes how the kit module implements the compliance control
Terraform Module
A kit module is a standard terraform module that adheres to the following conventions.
Documentation Output
The terraform module has
- an input variable
output_md_file
describing the path where the module will render a markdown file documenting its configuration in a human-readable form for landing zone stakeholders - a
resource local_file "output_md"
that writes to the path specified byoutput_md_file
Module Documentation
The terraform module should document all it's variables and outputs. This means that every variable should have a description
field:
variable "aws_root_account_id" {
type = string
description = "The id of your AWS Organization's root account"
}
TIP
collie foundation docs
will attempt to generate this documentation using terraform-docs
and appends this to the kit module's README.md
.