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:
- Manage multiple stacks in a way that makes sense from the same directory.
- Jinja2 templating for things that are horrible to repeat. Example given below.
- Notion of having a set of config files.
- CLI tool which translates from YAML into JSON and watches the CloudFormation update.
- Cross-stack referencing using a Jinja template method (ie: pull X from the Outputs of
stack1and inject its ARN or whatever intostack2somewhere.
Bad Things:
- Documentation is sparse at best.
- How does config actually work? Does it use CloudFormation mappings? I want named environments with corresponding c12n mappings.
- Documentation is confusing.
- You still have one giant template, though it's now in YAML rather than JSON.
- Mixing Jinja2 templating into YAML natively is going to be really weird on your linter.
- I don't want one giant template, I want to be able to include files and directories ie
resources/*.ymletc.