Skip to content

Waffle CLI Quickstart

The Waffle CLI keeps track of every deployment created with it in a local config file. Creating a deployment means that a settings file is created, and AWS components are created based on the settings using CloudFormation. It's possible to change the settings later on, the Waffle CLI can invoke AWS CloudFormation to update the existing AWS components accordingly.

The idea is that the settings files should be added to a repository. It can be either an isolated repo, or part of a monolith repo that holds the rest of the project.

Installing the Waffle CLI

pip install waffle-cli

Creating a settings file

First create the settings file locally. The settings file will be created in the current .waffle folder: it's going to be a .json file with the chosen deployment id.

For the choice of deployment id check out the terminology above for detailed explanation. Here well use dev in the examples below.

waffle create_deployment_settings dev

Setting up a local AWS profile

waffle configure_aws_profile dev

Deploying DNS settings and SSL certification

waffle configure_deployment_domain dev dev.example.com
waffle create_deployment_certificate dev

Deploying foundational stacks

waffle deploy_vpc dev
waffle deploy_auth dev
waffle deploy_api dev
waffle deploy_alerts dev
waffle deploy_github dev
waffle deploy_deployment dev