Skip to content

Releases: cloudtools/stacker

1.2.0rc1

15 Feb 21:44
1.2.0rc1
2a569c6
Compare
Choose a tag to compare
1.2.0rc1 Pre-release
Pre-release

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 of N 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

26 Jan 17:10
1.1.4
80a7196
Compare
Choose a tag to compare

1.1.4 (2018-01-26)

  • Add blueprint.to_json for standalone rendering [GH-459]
  • Add global config for troposphere template indent [GH-505]
  • Add serverless transform/CREATE changeset types [GH-517]

1.1.3

24 Dec 06:03
1.1.3
6c91230
Compare
Choose a tag to compare

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.

  • Add S3 remote package sources [GH-487]
  • Make blueprint dump always create intermediate directories [GH-499]
  • Allow duplicate keys for most config mappings except stacks [GH-507]
  • Remove un-submitted changesets [GH-513]

1.1.2

02 Nov 00:10
1.1.2
38cc516
Compare
Choose a tag to compare

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

11 Oct 16:36
1.1.1
0342895
Compare
Choose a tag to compare

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

08 Oct 19:33
1.1.0
8ab76a9
Compare
Choose a tag to compare

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

07 Jul 17:24
1.0.4
6146085
Compare
Choose a tag to compare

A quick, minor release to deal with a simple but nasty little bug.

1.0.4 (2017-07-07)

  • Fix issue w/ tail being required (but not existing) on diff/info/etc [GH-429]

1.0.3

06 Jul 21:22
1.0.3
ec5b70a
Compare
Choose a tag to compare

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]

1.0.2

10 May 18:37
1.0.2
89dc9bc
Compare
Choose a tag to compare

1.0.2 (2017-05-10)

  • fix lambda hook determinism [GH-372]
  • give lambda hook ability to upload to a prefix [GH-376]
  • fix bad argument for approval in interactive provider [GH-381]

1.0.1

24 Apr 15:59
1.0.1
3184d0a
Compare
Choose a tag to compare

1.0.1 (2017-04-24)

  • rxref lookup [GH-328]
  • Cleaned up raise statement in blueprints [GH-348]
  • Fix missing default provider for build_parameters [GH-353]
  • Setup codecov [GH-354]
  • Added blueprint testing harness [GH-362]
  • context hook_data lookup [GH-366]