Foundation
A foundation is made from platforms. This enables a cloud foundation team to manage separate environments, e.g. a production and development environment that use different AWS Root Accounts, GCP Organizations etc.
Platform Configurations
A cloud platform configuration object in a construction kit repository needs to match this glob pattern:
foundations/*/platforms/*/README.md
Platform configurations are stored as yaml frontmatter in these files. This section documents the mandatory and optional configuration properties for each type of cloud platform. Note that you can include additional keys in your configuration to capture data that's useful for automation.
Common Settings
Settings under the cli
key will be used by collie
to set environment variables when invoking the underlying cloud cli tools. These environment variables will be set verbatim, so please consult the documentation of the respective cli tool for the configuration possibilities.
Note that many terraform providers (e.g. azurerm
or google
) support using the credentials managed by their respective cloud cli tools. This is especially useful for bootstrapping landing zone deployment.
cli:
aws: # environment used ot invoke the aws cli tool
az: # environment used ot invoke the az cli tool
gcloud: # environment used ot invoke the az cli tool
AWS
---
aws:
accountId: "123456789012" # required
accountAccessRole: "OrganizationAccountAccessRole" # required
cli:
aws:
AWS_PROFILE: default # required
AWS_CONFIG_FILE: ./credentials/bootstrap # optional
---
Azure
---
azure:
aadTenantId: 00000000-0000-0000-0000-000000000000 # required
subscriptionId: 00000000-0000-0000-0000-000000000000 # required
cli:
az:
AZURE_CONFIG_DIR: ./az # optional
---
GCP
---
gcp:
organization: "1234567890" # required
project: foundation-12345 # required
billingExport: # optional, required for collie tenant cost functionalits
project: billing-data-1234
dataset: billing_export
view: collie_billing_view
cli:
gcloud:
CLOUDSDK_ACTIVE_CONFIG_NAME: default # required
---