# Runway
[](https://github.com/rackspace/runway/actions?query=workflow%3ACI%2FCD)
[](https://codecov.io/gh/rackspace/runway)
[](https://pypi.org/project/runway/)
[](https://github.com/psf/black)
[](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
- 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).
```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)
Raw data
{
"_id": null,
"home_page": "https://github.com/rackspace/runway",
"name": "runway",
"maintainer": "Kyle Finley",
"docs_url": null,
"requires_python": "<3.13,>=3.9",
"maintainer_email": "kyle@finley.sh",
"keywords": "cli",
"author": "Rackspace Technology, Inc.",
"author_email": "opensource@rackspace.com",
"download_url": "https://files.pythonhosted.org/packages/d1/bf/b4ef9b6ed394d58005d412f352f85c1a7eaa066a9bf311100218c2771168/runway-2.8.0.tar.gz",
"platform": null,
"description": "# Runway\n\n[](https://github.com/rackspace/runway/actions?query=workflow%3ACI%2FCD)\n[](https://codecov.io/gh/rackspace/runway)\n[](https://pypi.org/project/runway/)\n[](https://github.com/psf/black)\n[](https://results.pre-commit.ci/latest/github/rackspace/runway/master)\n\n\n\nRunway is a lightweight integration app designed to ease management of infrastructure tools.\n\nIts 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.\n\n## Features\n\n- Centralized environment-specific configuration\n- Automatic environment identification from git branches\n- Automatic linting/verification\n- Support of IAM roles to assume for each deployment\n- Terraform backend/workspace config management w/per-environment tfvars\n- Automatic kubectl/terraform version management per-environment\n\n### Supported Deployment Tools\n\n- AWS CDK\n- Kubectl\n- Serverless Framework\n- CFNgin (CloudFormation)\n- Static websites (build & deploy to S3+CloudFront)\n- Terraform\n\n## Example\n\nA typical Runway configuration is unobtrusive -- it just lists the deployment order and locations (regions).\n\n```yml\ndeployments:\n - modules:\n - resources.tf # terraform resources\n - backend.sls # serverless lambda functions\n - frontend # static web site\n environments: # Environments\n dev: \"123456789012\" # AWS development Account ID\n prod: \"234567890123\" # AWS production Account ID\n regions:\n - us-east-1\n```\n\nThe 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\n\n## Install\n\n```shell\n$ pip install runway\n$ runway new\n# OR\n$ poetry add --dev runway\n$ poetry run runway new\n```\n\n## Documentation\n\nSee the [doc site](https://runway.readthedocs.io) for full documentation.\n\nQuickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://runway.readthedocs.io/page/quickstart/index.html)\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Simplify infrastructure/app testing/deployment",
"version": "2.8.0",
"project_urls": {
"Bug Tracker": "https://github.com/rackspace/runway/issues",
"Documentation": "https://runway.readthedocs.io",
"Homepage": "https://github.com/rackspace/runway",
"Repository": "https://github.com/rackspace/runway"
},
"split_keywords": [
"cli"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "12ef8f8c50ce5f2039caefa5811e61701db8f7388bba41f294a15287d4ac5cee",
"md5": "6ea745abe8e543053f49e6a2e3d43926",
"sha256": "3045e729b540901205740a9aa3029cd2f93b24796a6dd0c3280251f3b61355cf"
},
"downloads": -1,
"filename": "runway-2.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ea745abe8e543053f49e6a2e3d43926",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9",
"size": 762992,
"upload_time": "2025-01-08T19:30:09",
"upload_time_iso_8601": "2025-01-08T19:30:09.014443Z",
"url": "https://files.pythonhosted.org/packages/12/ef/8f8c50ce5f2039caefa5811e61701db8f7388bba41f294a15287d4ac5cee/runway-2.8.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d1bfb4ef9b6ed394d58005d412f352f85c1a7eaa066a9bf311100218c2771168",
"md5": "5f09c2e51cd006647931ab6f79708cb2",
"sha256": "6ba99bfd8ceaf64f8c2fb95a85754e791f1b57db3db2fd67cf8fb110ac584cc2"
},
"downloads": -1,
"filename": "runway-2.8.0.tar.gz",
"has_sig": false,
"md5_digest": "5f09c2e51cd006647931ab6f79708cb2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9",
"size": 547681,
"upload_time": "2025-01-08T19:30:11",
"upload_time_iso_8601": "2025-01-08T19:30:11.101439Z",
"url": "https://files.pythonhosted.org/packages/d1/bf/b4ef9b6ed394d58005d412f352f85c1a7eaa066a9bf311100218c2771168/runway-2.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-08 19:30:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rackspace",
"github_project": "runway",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "runway"
}