Skip to main content

Simplify infrastructure/app testing/deployment

Project description

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

  • Stacker (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:  # Environment settings
        dev:
            foo: dev-bar
        prod:
            foo: prod-bar

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 init

Suggested use: CloudFormation or Terraform projects

npm

$ npm i -D @onica/runway
$ npx runway init

Suggested use: Serverless or AWS CDK projects

pip (or pipenv,poetry,etc)

$ pip install runway
$ runway init
# OR
$ pipenv install runway
$ pipenv run runway init

Suggested use: Python projects

Documentation

See the doc site for full documentation.

Quickstart documentation, including CloudFormation templates and walkthrough can be found here

Community Chat

Drop into the #runway channel for discussion/questions.

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

runway-1.4.0.tar.gz (450.5 kB view details)

Uploaded Source

File details

Details for the file runway-1.4.0.tar.gz.

File metadata

  • Download URL: runway-1.4.0.tar.gz
  • Upload date:
  • Size: 450.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for runway-1.4.0.tar.gz
Algorithm Hash digest
SHA256 1e1dbcfeb1dd0672a2b275e0368d7ba6415d64dfe56908538858bd02cc72d8d2
MD5 42f6bf167155f42ec965717c835d7d69
BLAKE2b-256 7a3a8cefe5dbcdbc6e21aa4e64972157b5608e9992426674de479ff673f59b98

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page