A deploy tool for AWS projects
Project description
Airmail
A CLI tool for deploying projects to AWS
Introduction/Philosophy
The point of Airmail is to make deploying projects into AWS a little easier. It was inspired as a binding layer between Terraformed infrastructure and deploying applications to AWS ECS. At NYMag we wanted to manage infrastructure with Terraform and then allow applications to be more declarative about how they run without caring about the infrastructure. A developer should be able to change easily declare where and how their application will run and then be able to easily configure resources in Terraform to support that. Airmail is designed to deploy code with the assumption that the underlying infrastructure is there to support the project.
How To
Airmail needs to be run in a project with a .deploy
directory. It will look inside this directory for configuration files that will tell the tool how to deploy to ECS.
<project dir>
├── app # The directory of your application
├── .deploy # The directory holding the config
│ ├── config.yml # Holds the primary config declarations
│ └── <env>.env # Environment variable configuration for the container
└── ...
Config File
The config.yml
file contains all the information that Airmail needs to build the service and task definitions to deploy to ECS. For an example file click here.
Commands
A list of commands and corresponding arguments/environment variables can be found here.
AWS Configuration
Airmail assumes your local env is configured per Boto3 configuration. The tool uses Boto3 to execute requests to AWS and does not do anything to setup your local environment.
Local Development
Clone and run python3 setup.py install
or download Watchcode and run watchcode
in the root of the project./
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.