runway


Namerunway JSON
Version 2.8.0 PyPI version JSON
download
home_pagehttps://github.com/rackspace/runway
SummarySimplify infrastructure/app testing/deployment
upload_time2025-01-08 19:30:11
maintainerKyle Finley
docs_urlNone
authorRackspace Technology, Inc.
requires_python<3.13,>=3.9
licenseApache-2.0
keywords cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Runway

[![CI/CD](https://github.com/rackspace/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/rackspace/runway/actions?query=workflow%3ACI%2FCD)
[![codecov](https://codecov.io/gh/rackspace/runway/branch/master/graph/badge.svg?token=Ku28I0RY80)](https://codecov.io/gh/rackspace/runway)
[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)
[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/rackspace/runway/master.svg)](https://results.pre-commit.ci/latest/github/rackspace/runway/master)

![runway-example.gif](https://raw.githubusercontent.com/rackspace/runway/master/docs/source/images/runway-example.gif)

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[![CI/CD](https://github.com/rackspace/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/rackspace/runway/actions?query=workflow%3ACI%2FCD)\n[![codecov](https://codecov.io/gh/rackspace/runway/branch/master/graph/badge.svg?token=Ku28I0RY80)](https://codecov.io/gh/rackspace/runway)\n[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)\n[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/rackspace/runway/master.svg)](https://results.pre-commit.ci/latest/github/rackspace/runway/master)\n\n![runway-example.gif](https://raw.githubusercontent.com/rackspace/runway/master/docs/source/images/runway-example.gif)\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"
}
        
Elapsed time: 1.48952s