Construction Kit Repository

A landing zone construction kit is always stored in a git (or other VCS) repository. This repository contains infrastructure as code and configuration files enabling a well-structured, opinionated workflow. The collieopen in new window cli tool understands this structure and helps you work with it.

The top-level of this hierarchy contains these folders:

  • foundations/ stores foundations defining a set of cloud platforms and their configuration
  • kit/ stores kit modules to assemble landing zones on your foundations' cloud platforms
  • compliance/ stores compliance controls that your kit modules implement

Configuration Objects

Configuration objects are stored in this repository directory hierarchy in the form of "literate" config files - markdown config files with YAML frontmatter. Most configuration files in a collie repository are sitting at the root of their respective folder hierarchy. A markdown file with frontmatter generally looks like this:

key: value

# Description

Human readable description of this object to be included in generated

  • the frontmatter contains a YAML configuration object, meant for consumption by automation tools
  • the markdown should describe the configuration in a human readable format that is friendly to other stakeholders (e.g. developers, security auditors) working with your landing zones

The collie cli tool validates configuration objects in the repository and reports any errors found.


A foundation generally has the following folder structure

├──                         # the foundation configuration file
└── platforms
    ├── my-cloud-platform
    │   ├──                 # the platform configuration file
    │   ├── admin                     # platform modules to configure the landing zone (administrative workload)
    │   │   └── tenant                # the admin/tenant platform module, 
    │   │       ├──           # documentation output rendered by the kit module
    │   │       └── terragrunt.hcl      # terragrunt configuration invoking kit module, e.g. //kit/admin/tenant
    │   ├── bootstrap                 # a bootstrap platform module, 1:1 
    │   │   └── terragrunt.hcl          # terragrunt configuration invoking kit module, e.g. //kit/bootstrap
    │   ├── tenants                   # infrastructure as code for customer workloads
    │   │   ├── customer-1            
    │   │   └── ...                   
    │   └── platform.hcl              # shared terragrunt config for the platform, e.g. backend and provider settings
    └── my-other-platform
        ├── ...