Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
gliptak and jdamick Correct forked Travis builds
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
Latest commit ec523d4 Jun 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
artifacts Correct typo Jun 17, 2019
cmd reworked the role assumption, works better now for non-role assumptio… Apr 3, 2017
docs Delete mascot1.png Nov 18, 2016
graph license update (#15) Feb 16, 2017
images reworked the role assumption, works better now for non-role assumptio… Apr 3, 2017
main license update (#15) Feb 16, 2017
providers
resources added env substitution to the cft files.. Aug 29, 2017
sdt license update (#15) Feb 16, 2017
stacks
utils apply directives in some normalized way to the cft.. more refactoring… Aug 30, 2017
vendor switched to go dep Aug 29, 2017
versioning license update (#15) Feb 16, 2017
.gitignore initial import from internal Nov 17, 2016
.travis.yml Correct forked Travis builds Jun 17, 2019
Gopkg.lock switched to go dep Aug 29, 2017
Gopkg.toml switched to go dep Aug 29, 2017
LICENSE.txt initial import from internal Nov 17, 2016
Makefile version from tag Mar 6, 2017
README.md updated from cli output (#13) Dec 15, 2016

README.md

Join the chat at https://gitter.im/capitalone/stack-deployment-tool Build Status Go Report Card

Stack Deployment Tool

Tool that codeifies packaging & delivery best-practices. It extends stack configuration with local templating and associating multiple CloudFormation stacks for lifecycle management: deployment, updating, and destroying.

stacks.yml

Provides Enhanced Capabilities to CloudFormation Stacks:

  • Ability to capture parameters for a CloudFormation stack creation into a stacks.yml which can be checked into a vcs
  • Ability to reference the output of one CloudFormation stack in the creation of a new CloudFormation stack
  • Ability to reference environment variables in a template
  • Ability to store user data scripts separately and include them in a CloudFormation template
  • Stack configuration (stacks.yml) utilizes handlebars for templatizing

Features

  • CloudFormation

  • Multiple Stack definitions in a single file (stacks.yml)

  • Holds parameters & tags for stacks for multiple stacks & multiple environments

  • Carry stack outputs as input parameters to new stack creations

  • Stack create, update, destroy

  • Include separate user data script files

  • Versioning

  • version tracking for projects by way of a 'version.properties'

  • support bumping major,minor,patch

  • add metadata from git commit

  • add build data from environment vars (BUILD_NUMBER) or user-timestamp

  • Artifacts

  • upload, promotion, and download of artifacts to s3 buckets and/or nexus repositories

Getting Started

Guide

Dev from source

Command Line Help

$ ./build/darwin_amd64/sdt 
Stack Deployment Tool
	that will help with deploying multiple CloudFormation stacks

Usage:
  stack-deployment-tool [command]

Available Commands:
  artifacts   artifacts functions, like finding uploading, downloading, promoting
  stacks      Stack manipulation commands
  version     Print the version number of Stack Deployment Tool
  versions    versioning commands

Flags:
      --config string   config file (default is $HOME/.stack-deployment-tool.yaml)
  -d, --debug           enable debug
  -q, --drymode         enable dry mode
  -h, --help            help for stack-deployment-tool
  -t, --toggle          Help message for toggle

Use "stack-deployment-tool [command] --help" for more information about a command.

Example Stack Deploy:

$ sdt stacks deploy resources/bluegreen/stack_blue.yaml -s dev.bluegreen-2

INFO[0018] Waiting for stack operation to complete      
+-----------------------------------------------+--------------------------------+--------------------------------+
|                                        Status |                           Type |                      LogicalID |
+-----------------------------------------------+--------------------------------+--------------------------------+
|                            CREATE_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                            CREATE_IN_PROGRESS | AWS::CloudFormation::WaitCo... |               DeployWaitHandle |
|                            CREATE_IN_PROGRESS | AWS::ElasticLoadBalancing::... |                   LoadBalancer |
|                            CREATE_IN_PROGRESS | AWS::CloudFormation::WaitCo... |               DeployWaitHandle |
|                               CREATE_COMPLETE | AWS::CloudFormation::WaitCo... |               DeployWaitHandle |
|                            CREATE_IN_PROGRESS | AWS::ElasticLoadBalancing::... |                   LoadBalancer |
|                               CREATE_COMPLETE | AWS::ElasticLoadBalancing::... |                   LoadBalancer |
|                            CREATE_IN_PROGRESS | AWS::CloudFormation::WaitCo... |            DeployWaitCondition |
|                            CREATE_IN_PROGRESS | AWS::CloudFormation::WaitCo... |            DeployWaitCondition |
|                            CREATE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                            CREATE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                               CREATE_COMPLETE | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                            CREATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            CREATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                               CREATE_COMPLETE | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                               CREATE_COMPLETE | AWS::CloudFormation::WaitCo... |            DeployWaitCondition |
|                               CREATE_COMPLETE |     AWS::CloudFormation::Stack |                      bluegreen |
|                            UPDATE_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                                 UPDATE_FAILED | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                   UPDATE_ROLLBACK_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                               UPDATE_COMPLETE | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|  UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                               DELETE_COMPLETE | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                      UPDATE_ROLLBACK_COMPLETE |     AWS::CloudFormation::Stack |                      bluegreen |
|                            UPDATE_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                               UPDATE_COMPLETE | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                            UPDATE_IN_PROGRESS | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|                               UPDATE_COMPLETE | AWS::AutoScaling::AutoScali... |                   BlueGreenAsg |
|           UPDATE_COMPLETE_CLEANUP_IN_PROGRESS |     AWS::CloudFormation::Stack |                      bluegreen |
|                            DELETE_IN_PROGRESS | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                               DELETE_COMPLETE | AWS::AutoScaling::LaunchCon... |                   LaunchConfig |
|                               UPDATE_COMPLETE |     AWS::CloudFormation::Stack |                      bluegreen |
+-----------------------------------------------+--------------------------------+--------------------------------+
INFO[0600] Stacks Create Complete                       

Roadmap

Contributors

We welcome your interest in Capital One’s Open Source Projects (the “Project”). Any Contributor to the Project must accept and sign a CLA indicating agreement to the license terms. Except for the license granted in this CLA to Capital One and to recipients of software distributed by Capital One, You reserve all right, title, and interest in and to your Contributions; this CLA does not impact your rights to use your own contributions for any other purpose.

[Link to CLA] (https://docs.google.com/forms/d/19LpBBjykHPox18vrZvBbZUcK6gQTj7qv1O5hCduAZFU/viewform)

This project adheres to the Open Source Code of Conduct. By participating, you are expected to honor this code.

Contribution Guidelines

We encourage any contributions that align with the intent of this project and add more functionality or languages that other developers can make use of. To contribute to the project, please submit a PR for our review. Before contributing any source code, familiarize yourself with the Apache License 2.0 (license.md), which controls the licensing for this project.

You can’t perform that action at this time.