Simplify infrastructure/app testing/deployment
Project description
Runway
Runway is a lightweight integration app designed to ease management of infrastructure tools.
Its main goals are to encourage GitOps best-practices, avoid convoluted Makefiles/scripts (enabling identical deployments from a workstation or CI job), and enable developers/admins to use the best tool for any given job.
Features
- Centralized environment-specific configuration
- Automatic environment identification from git branches
- Automatic linting/verification
- Support of IAM roles to assume for each deployment
- Terraform backend/workspace config management w/per-environment tfvars
- Automatic kubectl/terraform version management per-environment
Supported Deployment Tools
- AWS CDK
- Kubectl
- Serverless Framework
- CFNgin (CloudFormation)
- Static websites (build & deploy to S3+CloudFront)
- Terraform
Example
A typical Runway configuration is unobtrusive -- it just lists the deployment order and locations (regions).
deployments:
- modules:
- resources.tf # terraform resources
- backend.sls # serverless lambda functions
- frontend # static web site
environments: # Environments
dev: "123456789012" # AWS development Account ID
prod: "234567890123" # AWS production Account ID
regions:
- us-east-1
The example above contains enough information for Runway to deploy all resources, lambda functions and a static website backed by S3 and Cloudfront in either dev or prod environments
Install
Runway is available via any of the following installation methods. Use whatever works best for your project/team (it's the same application no matter how you obtain it).
HTTPS Download (e.g cURL)
Use one of the endpoints below to download a single-binary executable version of Runway based on your operating system.
Operating System | Endpoint |
---|---|
Linux | https://oni.ca/runway/latest/linux |
macOS | https://oni.ca/runway/latest/osx |
Windows | https://oni.ca/runway/latest/windows |
$ curl -L oni.ca/runway/latest/osx -o runway
$ chmod +x runway
$ ./runway new
Suggested use: CloudFormation or Terraform projects
npm
$ npm i -D @onica/runway
$ npx runway new
Suggested use: Serverless or AWS CDK projects
pip (or poetry, etc)
$ pip install runway
$ runway new
# OR
$ poetry add --dev runway
$ poetry run runway new
Suggested use: Python projects
Documentation
See the doc site for full documentation.
Quickstart documentation, including CloudFormation templates and walkthrough can be found here
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file runway-2.6.0.tar.gz
.
File metadata
- Download URL: runway-2.6.0.tar.gz
- Upload date:
- Size: 549.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c4bdf74def27fe98ea3aff5f430b5889fb32b345c1ac40d902c08619e310616 |
|
MD5 | a4c51353925a37ce4baf33ea5319d700 |
|
BLAKE2b-256 | 24615f7489511e25ff442c6649a591a6023e3a801af5e7df87a1011bae0a2e27 |
File details
Details for the file runway-2.6.0-py3-none-any.whl
.
File metadata
- Download URL: runway-2.6.0-py3-none-any.whl
- Upload date:
- Size: 746.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.8.12 Linux/5.11.0-1028-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 345237b027aa719601fea627fda8675db8a9ea26fd0b1e2d1713815775173187 |
|
MD5 | 804e1d76a510a6af2243b98914c99472 |
|
BLAKE2b-256 | 2f1f48cbfd40a8b47046d16098b9fef1ed281d6edc151388b205ccedbd3abe72 |