Skip to content

Manage CloudFormation sanely with templates written in YAML

License

Notifications You must be signed in to change notification settings

cfstacks/stacks

Repository files navigation

stacks

Build Status Documentation Status

Stacks is CloudFormation management tool that allows you to define AWS resources configuration in YAML with Jinja2 templating.

Using stacks, you create flexible and declarative templates that deploy various AWS resources.

Use stacks to define and configure the infrastructure for your services, to create repeatable deployments that you can reuse, to create different deployment environments. For example, you can use stacks to deploy production, staging, and development environments for the same service, and take advantage of stacks's templating syntax so you can selectively roll out or test new features.

Stacks does not make any assumptions how you should manage your infrastructure. If you use CloudFormation JSON templates already, you can just convert them to YAML and start using stacks and grow from there.

Features

  • Templates written in YAML
  • For loops, conditionals and more with the power of Jinja2
  • Cross-stack resource referencing
  • Reusable snippets support
  • Multiple environments
  • Flexible configuration
  • Stack events streaming

Quickstarts

Guides

Contribution

Please get involved in helping us improve stacks! It's very easy to get started.

Before you make a change it's best to file the bug or feature as a github issues so that no one else is working on a similar change.

You can use pip to install stacks in editable mode. This means changes you make to the checkout will affect the global stacks command.

$ git clone https://github.com/cfstacks/stacks.git && cd stacks
$ mkvirtualenv --python=python3 venv
$ source ./venv/bin/activate
$ pip install -r requirements.txt
$ pip install -e .

Once you've got a change please open a pull-request to master then we'll review and merge the change!