Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/brettswift/cdk-git-config

Store configs from a git directory in AWS
https://github.com/brettswift/cdk-git-config

aws aws-cdk aws-cdk-constructs aws-ssm cdk ssm

Last synced: 7 days ago
JSON representation

Store configs from a git directory in AWS

Awesome Lists containing this project

README

        

# CDK Git Config

An AWS CDK construct that will replicate a directory structure of yaml files into AWS SSM. (Or other providers like DynamoDB / S3 in the future).

## Motivation

In Continuous Delivery, you need to tweak configuration in production at runtime, quickly, without flowing through your entire dev --> staging --> prod pipeline. This can be called "out of band" configuration. Alternative to "in-band" configuration which is committed to your software git repo, and updates when the software is deployed.

One popular way of storing out of band configuration is SSM. However this can get out of hand quickly.

Having configuration stored in git, with a simple interface (yaml) is nice. So lets do that, and replicate the directory via CDK / Cloudformation into AWS SSM!

Key advantages:

* history of out of band configuration
* easy to revert to previous configuration
* Pull Requests, added options for reviewing configuration (prod & dev)
* Easy to replicate into new accounts.

## Example

See the examples folder for a deployable stack you can use to evaluate.

## Deficiencies / TODO

* Secure parameters - currently not supported
* Include a CodePipeline construct, as automating this is critical.

## Releasing

1. Merge PR to master
2. Run the release script according to what type of release this should be
* `npm run release-[major|minor|patch]`
* This will:
* create the appropriate release number in package.json
* create the tag, and commit
* Finally push the tag and commit up
* Travis will run the build and release to NPM.

## Contributing

PR's welcome. Issues / requests welcome.