Deploy your First Landing Zone

Note: this section of the documentation is under construction

This tutorial will lead you through the steps to get started with landing zone construction kit

  • Install collieopen in new window
  • Create a Foundation
  • Add a cloud platform to your foundation
  • Create and deploy a landing zone to this cloud platform (using an existing kit module)

The kit is meant to be comfortably used with collie cliopen in new window using a "fork and own" approach - you will ulitmately build your own kit to meet your organizations unique requirements based on the public examples in this kit. After installing collie, start by creating a new git repository and creating a new foundation.

git init my-foundation-kit
cd my-foundation-kit
collie init
collie foundation new my-foundation-dev

A foundation describes a number of cloud platforms (e.g. AWS and GCP), landing zones, cloud customers (development teams in your organization) and their cloud tenants (e.g. AWS Accounts and GCP projects). The collie cli will interactively prompt you for about the configuration settings it needs to successfully connect to your cloud platforms. After setting up your first foundation, your repository will look like this:

$ tree
.
└── foundations
    └── my-foundation-dev
        ├── README.md
        └── platforms
            └── gcp
                └── README.md

Next, let's create our first kit module and apply it to our platform.

collie kit new "my-first-gcp-module"
collie kit apply "my-first-gcp-module" --foundation my-foundation-dev --platform gcp

This generated a new executable terraform module at kit/my-first-gcp-module and a terragrunt module wrapper that simplifies executing that module (e.g. by managing common backend and provider configurations). at foundations/my-foundation-dev/platforms/gcp.

22:07 $ tree
.
├── foundations
│   └── my-foundation-dev
│       ├── README.md
│       └── platforms
│           └── gcp
│               ├── README.md
│               └── terragrunt.hcl
└── kit
    └── my-first-gcp-module
        ├── README.md
        ├── documentation.tf
        └── main.tf

Inside the kit module, you can define any reusable set of functionality that your cloud foundation needs. A common module you will want to add to your kit is setting up organization-wide constraints at the root of the cloud resource hierarchy. Since a kit module is a standard terraform module, you can leverage official modules like terraform-google-modules/org-policy/google to set up organization policies.

After you're done with your first module, collie can help you deploy your cloud foundation, running terragrunt transparently under the hood for you:

collie foundation deploy my-foundation
deploying (plan) foundations/my-foundation ...
deploying (plan) foundations/my-foundation/gcp ...

Next Steps

To go from this simple introduction to a productive use of the landing zone construction kit we recommend reviewing our example implementation of a cloud foundation.

  • add a second (productive) cloud foundation collie foundation new my-foundation-prod
  • review kit module usage collie kit tree to ensure/dev-prod parity
  • build an interactive documentation for your cloud foundation using collie docs
  • document compliance controls and their implementation using collie compliance