Releases: cloudtools/stacker
1.2.0rc1
This release of stacker brings a large performance improvement, simpler logging and some fixes to long standing issues.
Parallelism
The stacker build
and stacker destroy
commands now execute stack updates in parallel, when possible. We've seen this provide a 5-10x improvement in total run time in most cases.
We've also introduced a -j/--max-parallel
flag that can be used to control the level of parallelism. By default, stacker will execute an unlimited number of stacks in parallel, based on what the underlying stack dependencies allow. You can use the following values with the flag:
0
: Unlimited parallelism, controlled by the graph topology.1
: No parallelism and multi-threading disabled.>=2
: Execute a maximum ofN
stacks in parallel at any time.
We've also worked on optimizing stacker's API calls to CloudFormation to keep API throttling to a minimum and exponentially backoff when rate limits are hit.
Automatic dependency resolution for --stacks
In the past, the --stacks
flag would only build the provided stack. If the stack had dependencies, stacker would crash.
Now, stacker will automatically build any transitive dependencies of the given stacks.
Simplified logging
In the past, stacker used ANSI escape sequences to try to produce pretty output. Unfortunately, this had a number of issues and didn't scale well on large stack configs.
With this release, logging has been moved to a simple sequential logger that doesn't use ANSI escape sequences to move the cursor around. You'll also get color output when using --interactive
mode, if your terminal is attached to a TTY!
Raw template support
You can now specify a template_path
pointing to a raw json or yaml CloudFormation template. In some cases, this can help with transitioning legacy non-troposphere templates to be managed by stacker.
Refer to the docs for more information.
Special thanks to @troyready for this contribution!
Full Changes
- assertRenderedBlueprint always dumps current results [GH-528]
- stacker now builds a DAG internally [GH-523]
- The
--stacks
flag now automatically builds dependencies of the given stack [GH-523] - an unecessary DescribeStacks network call was removed [GH-529]
- support stack json/yaml templates [GH-530]
stacker {build,destroy}
now executes stacks in parallel. Parallelism can be controled with a-j
flag. [GH-531]- logging output has been simplified and no longer uses ANSI escape sequences to clear the screen [GH-532]
- logging output is now colorized in
--interactive
mode if the terminal has a TTY [GH-532]
1.1.4
1.1.3
1.1.3 (2017-12-23)
Bugfix release- primarily to deal with a bug that's been around since the
introduction of interactive mode/changesets. The bug primarily deals with the
fact that we weren't deleting Changesets that were not submitted. This didn't
affect anyone for the longest time, but recently people have started to hit
limits on the # of changesets in an account. The current thinking is that the
limits weren't enforced before, and only recently has been enforced.
1.1.2
1.1.2 (2017-11-01)
This is a minor update to help deal with some of the issues between stacker
and stacker_blueprints
both having dependencies on troposphere
. It loosens
the dependencies, allowing stacker to work with any reasonably new version
of troposphere (anything greater than 1.9.0
). stacker_blueprints
will
likely require newer versions of troposphere, as new types are introduced to
the blueprints, but it's unlikely we'll change the troposphere
version string
for stacker, since it relies on only the most basic parts of the troposphere
API.
1.1.1
1.1.1 (2017-10-11)
This release is mostly about updating the dependencies for stacker to newer
versions, since that was missed in the last release.
1.1.0
1.1.0 (2017-10-08)
--max-zones
removed from CLI [GH-427]- Ami lookup: add region specification [GH-433]
- DynamoDB Lookup [GH-434]
- Environment file is optional now [GH-436]
- New functional test suite [GH-439]
- Structure config object using Schematics [GH-443]
- S3 endpoint fallback [GH-445]
- Stack specific tags [GH-450]
- Allow disabling of stacker bucket (direct CF updates) [GH-451]
- Uniform deprecation warnings [GH-452]
- Remote configuration support [GH-458]
- TroposphereType updates [GH-462]
- Fix replacements-only issue [GH-464]
- testutil enhancments to blueprint testing [GH-467]
- Removal of Interactive Provider (now combined w/ default provider) [GH-469]
- protected stacks [GH-472]
- MUCH Better handling of stack rollbacks & recreations [GH-473]
- follow_symlinks argument for aws lambda hook [GH-474]
- Enable service_role for cloudformation operations [GH-476]
- Allow setting stack description from config [GH-477]
- Move S3 templates into sub-directories [GH-478]
1.0.4
1.0.3
1.0.3 (2017-07-06)
There was some reworking on how regions are handled, specifically around
s3 and where the buckets for both stacker and the awslambda lookup are created.
Now the stacker bucket will default to being created in the region where the
stacks are being created (ie: from the --region
argument). If you want to
have the bucket be in a different region you now can set the
stacker_bucket_region
top level config value.
For the awslambda hook, you also have the option of using bucket_region
as
an argument, provided you are using a custom bucket
for the hook. If you
are not using a custom bucket, then it will use the logic used above.
- add ami lookup [GH-360]
- Add support for Property objects in TroposphereType variables [GH-379]
- Add debugging statements to sys.path appending [GH-385]
- Catch undefined variable value [GH-388]
- Exponential backoff waiting for AWS changeset to stabilize [GH-389]
- Add parameter changes to diff output [GH-394]
- Add CODE_OF_CONDUCT.md [GH-399]
- Add a hint for forbidden bucket access [GH-401]
- Fix issues w/ "none" as variable values [GH-405]
- Remove extra '/' in blueprint tests [GH-409]
- Fix dump provider interaction with lookups [GH-410]
- Add ssmstore lookup docs [GH-411]
- Fix issue w/ s3 buckets in different regions [GH-413, GH-417]
- Disable loop logger whe --tail is provided [GH-414]
- Add envvar lookup [GH-418]