Runway Documentation

Runway is a lightweight wrapper around infrastructure deployment (e.g. CloudFormation, Terraform, Serverless) & linting (e.g. yamllint) tools to ease management of per-environment configs & deployment.

Very simple configuration to:

  • Perform automatic linting/verification

  • Ensure deployments are only performed when an environment config is present

  • Define an IAM role to assume for each deployment

  • Wrangle Terraform backend/workspace configs w/ per-environment tfvars

  • Avoid long-term tool lock-in

    • Runway is a simple wrapper around standard tools. It simply helps to avoid convoluted Makefiles / CI jobs

Module Configuration

AWS Cloud Development Kit (CDK)

The CDK module type is deployed using the AWS Cloud Development Kit (CDK). Runway uses system installed npm to install the CDK per-module. This means that the CDK must be included as a dev dependency in the package.json of the module.

CloudFormation & Troposphere

The CloudFormation module type is deployed using Runway’s CloudFormation engine (CFNgin). It is able to deploy raw CloudFormation templates (JSON & YAML) and Troposphere templates that are written in the form of a Blueprints.

Serverless Framework

The Serverless module type is deployed using the Serverless Framework. Runway uses system installed npm to install Serverless per-module. This means that Serverless must be included as a dev dependency in the package.json of the module.

Terraform

Runway provides a simple way to run the Terraform versions you want with variable values specific to each environment. Terraform does not need to be installed prior to using this module type. Runway maintains a cache of Terraform versions on a system, downloading and installing different versions as needed.

Indices and tables