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