Skip to main content

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.

Environment Variables

You can use a few environment variables to control how Airmail is run.

  • AWS_PROFILE: will run the Boto3 commands under the local profile you have configured
  • AIRMAIL_ENV: automatically chooses which environment to run commands for. Good for CI/CD so the prompt is not triggered.
  • AIRMAIL_DRY_RUN: will run all of the command except the actual call to AWS
  • AIRMAIL_CONFIG_FILE (default: config.yml): specifies the file to read from in the .deploy directory for application configuration. The file must be a valid YAML file.
  • AIRMAIL_VERBOSE: will log in verbose mode. Good for debugging.

Local Development

Clone and run python3 setup.py install or download Watchcode and run watchcode in the root of the project./

Metadata

Release files for airmail 0.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for airmail 0.0.8
File Size Uploaded Provenance Actions
airmail-0.0.8.tar.gz 11.9 kB Without provenance Details for airmail-0.0.8.tar.gz

Release files / airmail-0.0.8.tar.gz

Download URL airmail-0.0.8.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f5828de39db34b072e3ade8ce3b7a0a4706bceabec0d572859bf007b890698b7
BLAKE2b-256 checksum
How to use checksums
9908679a6da8d704edb3c61bdae2779a839be51486f47c16e277578e017b6966
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

Security for airmail 0.0.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page