runway


Namerunway JSON
Version 1.18.0 PyPI version JSON
download
home_pagehttps://github.com/onicagroup/runway
SummarySimplify infrastructure/app testing/deployment
upload_time2021-01-14 02:07:01
maintainer
docs_urlNone
authorOnica Group LLC
requires_python>=2.6
licenseApache License 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/onicagroup/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/onicagroup/runway/actions?query=workflow%3ACI%2FCD)
[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)
[![npm](https://img.shields.io/npm/v/@onica/runway?style=flat)](https://www.npmjs.com/package/@onica/runway)
[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)

![runway-example.gif](https://raw.githubusercontent.com/onicagroup/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
* 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).

```yml
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> |

```shell
$ curl -L oni.ca/runway/latest/osx -o runway
$ chmod +x runway
$ ./runway init
```

**Suggested use:** CloudFormation or Terraform projects


### npm

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

**Suggested use:** Serverless or AWS CDK projects


### pip (or pipenv,poetry,etc)

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

**Suggested use:** Python projects


## Documentation

See the [doc site](https://docs.onica.com/projects/runway) for full documentation.

Quickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://docs.onica.com/projects/runway/en/release/quickstart/index.html)

## Community Chat

Drop into the [#runway channel](https://kiwiirc.com/client/irc.freenode.net/?nick=RunwayHelp?#runway) for discussion/questions.
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/onicagroup/runway",
    "name": "runway",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=2.6",
    "maintainer_email": "",
    "keywords": "cli",
    "author": "Onica Group LLC",
    "author_email": "opensource@onica.com",
    "download_url": "https://files.pythonhosted.org/packages/31/05/a4af7b32c6e6189f3c41e0269160a362f9d6369efbca452fe88d15d671af/runway-1.18.0.tar.gz",
    "platform": "",
    "description": "# Runway\n\n[![CI/CD](https://github.com/onicagroup/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/onicagroup/runway/actions?query=workflow%3ACI%2FCD)\n[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)\n[![npm](https://img.shields.io/npm/v/@onica/runway?style=flat)](https://www.npmjs.com/package/@onica/runway)\n[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)\n\n![runway-example.gif](https://raw.githubusercontent.com/onicagroup/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\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* Stacker (CloudFormation)\n* Static websites (build & deploy to S3+CloudFront)\n* Terraform\n\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:  # Environment settings\n        dev:\n            foo: dev-bar\n        prod:\n            foo: prod-bar\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\n## Install\n\nRunway 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).\n\n### HTTPS Download (e.g cURL)\n\nUse one of the endpoints below to download a single-binary executable version of Runway based on your operating system.\n\n| Operating System | Endpoint                               |\n|------------------|----------------------------------------|\n| Linux            | <https://oni.ca/runway/latest/linux>   |\n| macOS            | <https://oni.ca/runway/latest/osx>     |\n| Windows          | <https://oni.ca/runway/latest/windows> |\n\n```shell\n$ curl -L oni.ca/runway/latest/osx -o runway\n$ chmod +x runway\n$ ./runway init\n```\n\n**Suggested use:** CloudFormation or Terraform projects\n\n\n### npm\n\n```shell\n$ npm i -D @onica/runway\n$ npx runway init\n```\n\n**Suggested use:** Serverless or AWS CDK projects\n\n\n### pip (or pipenv,poetry,etc)\n\n```shell\n$ pip install runway\n$ runway init\n# OR\n$ pipenv install runway\n$ pipenv run runway init\n```\n\n**Suggested use:** Python projects\n\n\n## Documentation\n\nSee the [doc site](https://docs.onica.com/projects/runway) for full documentation.\n\nQuickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://docs.onica.com/projects/runway/en/release/quickstart/index.html)\n\n## Community Chat\n\nDrop into the [#runway channel](https://kiwiirc.com/client/irc.freenode.net/?nick=RunwayHelp?#runway) for discussion/questions.",
    "bugtrack_url": null,
    "license": "Apache License 2.0",
    "summary": "Simplify infrastructure/app testing/deployment",
    "version": "1.18.0",
    "split_keywords": [
        "cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "af1b7a2a25f2577bbd21a070fb214bde",
                "sha256": "7ff5d09b9030ccf360ed8abe709174a395ac8dd22ca184842d6cea04c247edc9"
            },
            "downloads": -1,
            "filename": "runway-1.18.0.tar.gz",
            "has_sig": false,
            "md5_digest": "af1b7a2a25f2577bbd21a070fb214bde",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=2.6",
            "size": 11298939,
            "upload_time": "2021-01-14T02:07:01",
            "upload_time_iso_8601": "2021-01-14T02:07:01.394711Z",
            "url": "https://files.pythonhosted.org/packages/31/05/a4af7b32c6e6189f3c41e0269160a362f9d6369efbca452fe88d15d671af/runway-1.18.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2021-01-14 02:07:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": null,
    "github_project": "onicagroup",
    "error": "Could not fetch GitHub repository",
    "lcname": "runway"
}
        
Elapsed time: 0.24413s