Skip to content

Instantly share code, notes, and snippets.

@naftulikay
Last active May 5, 2016 21:53
Show Gist options
  • Save naftulikay/c8c3ea116969f79947e0998346e71a21 to your computer and use it in GitHub Desktop.
Save naftulikay/c8c3ea116969f79947e0998346e71a21 to your computer and use it in GitHub Desktop.
How to Make CloudFormation Not Suck So Bad

CloudFormation Victory

Or: "How to Make CloudFormation Not Suck So Bad." Basically, we need to incorporate all of the best-of features of various wrapper projects.

Good Things:

  1. Manage multiple stacks in a way that makes sense from the same directory.
  2. Jinja2 templating for things that are horrible to repeat. Example given below.
  3. Notion of having a set of config files.
  4. CLI tool which translates from YAML into JSON and watches the CloudFormation update.
  5. Cross-stack referencing using a Jinja template method (ie: pull X from the Outputs of stack1 and inject its ARN or whatever into stack2 somewhere.

Bad Things:

  1. Documentation is sparse at best.
  2. How does config actually work? Does it use CloudFormation mappings? I want named environments with corresponding c12n mappings.
  3. Documentation is confusing.
  4. You still have one giant template, though it's now in YAML rather than JSON.
  5. Mixing Jinja2 templating into YAML natively is going to be really weird on your linter.
  6. I don't want one giant template, I want to be able to include files and directories ie resources/*.yml etc.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment