Start your Cloud Foundation

This series of tutorials will lead you through the steps to get started with collie. This first tutorial will show you how to

  • initialize a new repository to work with collie
  • add your first cloud platform
  • import a reusable kit module from collie hub
  • create and review documentation for your cloud foundation

Throughout our tutorials, we are goin to use "Likvid Bank" as the name of a fictional organization that we are building a cloud foundation for.

Verify Collie Installation

Let's first review whether we have collie and the dependencies on other tools that we are going to need correctly installed.

$ collie info
collie v0.17.0

Runtime:
deno 1.34.2 x86_64-apple-darwin

Installed dependencies:
aws 2.12.6
az 2.49.0
gcloud 433.0.1
git 2.38.1
terraform v1.5.2
terragrunt v0.48.0
terraform-docs v0.16.0
npm 9.5.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

The other tools are however required to use all of collie's capabilities. If one of the tools lists as not installed or unsupported version, please review the installation instructionsopen in new window to fix this.

When all tools are correctly installed and detected by collie, we can continue with the next step.

Initialize Collie Repository

Collie manages all of your cloud platforms and landing zone configurations in a git repository called a collie repository.

Let's create this repository using the following command.

# Initialize a collie git repository
collie init likvid-foundation

# Change into the directory
cd likvid-foundation
1
2
3
4
5

Create a Foundation

TIP

Depending on the cloud platforms you plan on working with, you may not need all of aws, az and gcloud installed.

After running this command, let's create a new cloud foundation. We will call this likvid-prod.

Let's run collie foundation new likvid-prod to start an interactive configuration for this foundation.

collie foundation new output

Add a platform

Follow the interactive prompt + add cloud platform and select the type of cloud platform you want to add (AWS, Azure or GCP). Then follow the instructions to complete the configuration.

collie foundation new add platform

After completing the prompts, chose ✔ save & exit to persist this configuration in your collie repository.

Review Collie Repository

After completing these steps, let's now review the structure of our collie repository:

$ tree
.
├── README.md
├── compliance
├── foundations
│   └── likvid-prod
│       ├── README.md
│       └── platforms
│           └── az
│               └── README.md
└── kit
    └── README.md

6 directories, 4 files
1
2
3
4
5
6
7
8
9
10
11
12
13
14

As you can see our platform has a 1:1 representation in the filesystem under foundations/likvid-prod/platforms/az/README.md. These files are collie configuration objects and they're the approach how collie stores all of its data about your cloud foundation.

Generate Documentation

When you develop a cloud foundation and start delivering landing zones to application teams in your organization, it's important that you are able to clearly articulate how the landing zones are designed and built.

For this purpose, collie includes features to generate and automatically maintain documentation from the landing zones defined in your collie repository.

TIP

Since this documentation includes everything that is in your repository, it's also a great way of reviewing your progress as you are building up landing zones for your organization.

Import Documentation Template

We will start our documentation by importing a template.

collie kit import foundation/docs
1

Next let's generate the docs and open a local webserver to preview them

collie foundation docs --preview
1

Next Steps

In the next tutorial, we are going to learn how to deploy our first kit module to our cloud platform.

TIP

Now is a good time to commit your changes to git.

git add . && git commit -m "initialized likvid-prod"
1