https://github.com/rackspace/runway
Simplify infrastructure/app deployment.
https://github.com/rackspace/runway
aws aws-lambda cloudformation deployment iac infrastructure-as-code serverless serverless-framework terraform
Last synced: about 1 month ago
JSON representation
Simplify infrastructure/app deployment.
- Host: GitHub
- URL: https://github.com/rackspace/runway
- Owner: rackspace
- License: apache-2.0
- Created: 2018-02-22T20:12:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-02T22:52:20.000Z (about 1 month ago)
- Last Synced: 2025-04-03T12:14:51.925Z (about 1 month ago)
- Topics: aws, aws-lambda, cloudformation, deployment, iac, infrastructure-as-code, serverless, serverless-framework, terraform
- Language: Python
- Homepage: https://runway.readthedocs.io
- Size: 27.4 MB
- Stars: 166
- Watchers: 7
- Forks: 70
- Open Issues: 51
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Runway
[](https://github.com/rackspace/runway/actions/workflows/cicd.yml)
[](https://codecov.io/gh/rackspace/runway)
[](https://pypi.org/project/runway/)
[](https://github.com/astral-sh/ruff)
[](https://results.pre-commit.ci/latest/github/rackspace/runway/master)
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
- 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).
```yml
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
```shell
$ pip install runway
$ runway new
# OR
$ poetry add --dev runway
$ poetry run runway new
```## Documentation
See the [doc site](https://runway.readthedocs.io) for full documentation.
Quickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://runway.readthedocs.io/page/quickstart/index.html)