All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.15.0 - 2024-07-15
- Always report at least a small fragment of the backtrace. (#381)
2.14.1 - 2024-03-07
-
Improve the error reporting from invalid format. (#379, #380).
-
Internal readability improvement. (#378).
2.14.0 - 2024-02-05
-
Test on Ruby 3.3 in the CI build (#376).
-
Introduce
user_data_file
,user_data_file_as_lines
, andinclude_file
convenience methods to the YAML ERB template compiler (#377).
2.13.4 - 2023-08-02
- Resolve SparkleFormation template error caused by
SortedSet
class being removed from theset
library in Ruby 3 (#374).
2.13.3 - 2023-02-01
- Pass an options hash to the AWS SDK, instead of keyword arguments (#371).
- Widen the version constraint on the
cfn-nag
runtime dependency (#364). Allow >= 0.6.7 and < 0.9.0.
- Resolve Ruby deprecation: replace
File.exists?
withFile.exist?
(#372).
2.13.2 - 2022-01-25
- Add support for ActiveSupport 7 (#368)
2.13.1 - 2021-10-11
- Avoid an API call to check account aliases if all
allowed_accounts
look like AWS account IDs (#363) - Provide a more contextual error message if fetching account aliases failed during allowed accounts check (#363)
2.13.0 - 2021-02-10
- Use GitHub Actions for the CI build instead of Travis CI (#353).
- Update
cfn-nag
requirement from~> 0.6.7
to>= 0.6.7, < 0.8.0
(#354). - Templates compiled with
cfndsl
have a pretty format (#356). - Update
cfndsl
requirement from< 1.0
to~> 1
(#356). The changes in version 1 are potentially breaking for projects usingcfndsl
templates.
2.12.0 - 2020-10-22
- Added YAML/ERB support, allowing a YAML CloudFormation template to be pre-processed via ERB, with compile-time parameters. (#350)
2.11.0 - 2020-10-02
- Support for empty strings in compile time parameters.
2.10.0 - 2020-07-02
- A new command,
stack_master nag
, uses the open-source cfn_nag tool to perform static analysis of templates for patterns that may indicate insecure infrastructure - Print available regions if the specified stack is not available in the chosen one.
2.9.0 - 2020-06-24
- Added
--timeout 120
option to drift command with a default of 2 minutes.
2.8.0 - 2020-06-24
- A new command,
stack_master drift
, uses the CloudFormation drift APIs to detect and display resources that have changed outside of the CloudFormation stack.
- The diff in
stack_master apply
andstack_master diff
has been improved to no longer display temporary file path context, and remove the empty newline
2.7.0 - 2020-06-15
parameters_dir
is now configurable to match the existingtemplate_dir
.parameter_files
configures an array of parameter files relative toparameters_dir
that will be used instead of automatic parameter file globs based on region and stack name.parameters
configures stack parameters directly on the stack definition rather than requiring an external parameter file.
- JSON template bodies with whitespace on leading lines would incorrectly be
identified as YAML, leading to
diff
issues. (#335)
2.6.0 - 2020-05-15
- Replaced GPL-licensed
colorize
dependency with MIT-licensedrainbow
gem (#333).
2.5.0 - 2020-05-08
-
Include the license document in the gem package (#328).
-
Add an option
stack_master validate --no-validate-template-parameters
that disables the validation of template parameters (#331).
2.4.0 - 2020-04-03
-
stack_master validate
checks for missing parameter values (#323). -
stack_master apply
prints names of parameters with missing values (#322). -
allowed_accounts
stack definition property supports specifying account aliases along with account IDs (#325). This change requires theiam:ListAccountAliases
permission to work.
- Error assuming role when default aws region not configured in the environment (#324)
2.3.0 - 2020-03-19
- Print backtrace when given the
--trace
option, for in-process rescued errors (#319).StackMaster::TemplateCompiler::TemplateCompilationFailed
andAws::CloudFormation::Errors::ServiceError
are two such errors.
-
Load fewer Ruby files: remove several ActiveSupport core extensions and Rubygems
require
s (#318). -
When a stack name includes a dash (
-
), the corresponding parameter files can have either dash, or underscore (_
) in the filename (#321).stack_master init
will use filenames that match the provided stack name.
-
stack_master apply
prints list of parameter file locations if no stack parameters files found (#316). -
stack_master apply
exits with status1
if there are missing stack parameters (#317). -
Don't print unreadable error backtrace on template compilation errors (#319).
-
Exit status is now managed by the
StackMaster::CLI
class rather than thestack_master
binstub (#310). The Cucumber test suite can now accurately validate the exit status of each command line invocation. -
Unpin and use the latest release of the
commander
gem (#314). This latest release includes fixes for the global option parsing defect reported in #248. -
Speed up CI: Only run one build job on macOS (#315).
-
Add CAPABILITY_AUTO_EXPAND to support macros (#312).
-
stack_master --version
now returns an exit status0
(#310). -
delete
,outputs
, andresources
commands now exit with a status1
if the specified stack is not in AWS (#313). -
The
delete
command now exits with status1
if using a disallowed AWS account (#313).
2.1.0 - 2020-03-06
stack_master tidy
command (#305). This provides a way to identify unused parameter files or templates.
-
Updated README to be explicit about using underscores in parameter file names (#306).
-
Restrict
sparkle_formation
to version 3 (#307). -
Build one gem for all Platforms (#309). This includes adding the
diff-lcs
gem as dependency. Previously, this was only a dependency for the Windows release.
2.0.1 - 2020-01-22
- Pin cfndsl to below 1.0
2.0.0 - 2020-01-22
- Test against Ruby 2.7, (#296).
- Some method calls changed to be explicit about converting hashes to keyword arguments. Resolves warnings raised by Ruby 2.7, (#296).
- Bump the minimum required Ruby version from 2.1 to 2.4 (#297).
- Extracted GPG secret parameter resolving to a separate gem. Please add stack_master-gpg_parameter_resolver to your bundle to continue using this functionality (#295).
1.18.0 - 2019-12-23
-
A change log document (#293).
-
Project metadata to the gemspec (#293).
-
Enable cross-account parameter resolving (#292)
1.17.1 - 2019-10-3
- Fix error when the EJSON secret key can't be found (#291).
1.17.0 - 2019-8-20
-
Move
sparkle_pack_template
from the stack definition tocompiler_options
(#289).stacks: us-east-1: sparkle_pack_test: template: template_with_dynamic_from_pack compiler: sparkle_formation compiler_options: sparkle_pack_template: true sparkle_packs: - my_sparkle_pack
-
Changed
TemplateCompiler
interface to take the template directory and the template (name), instead of the directory and the full path (#289).
- Improve
SparkleFormation
compiler specs. They were very brittle. Changed them to run SparkleFormation without stubbing it out (#289).
1.16.0 - 2019-8-16
- Enable reading templates from Sparkle packs (#286).
1.15.0 - 2019-8-9
-
Add a parameter resolver for EJSON files (#264).
my_param: ejson: "my_secret"
- Use the
hashdiff
's v1 namespace:Hashdiff
(#285).
1.14.0 - 2019-7-3
- Add ability to restrict in which AWS accounts a stack can be applied in (#283).
-
stack_master lint
provides helpful instruction ifcfn-lint
is not installed (#281). -
Fixed Windows build Docker image (#284).
1.13.1 - 2019-3-20
-
stack_master apply
exits with status code 0 when there are no changes (#280). -
stack_master validate
exit status code reflects validity of stack (#280).
1.13.0 - 2019-2-17
- Return non-zero exit status when command fails (#276).
1.12.0 - 2019-1-11
- Add
--quiet
command line option to surpresses stack event output (#272).
-
Add Ruby 2.6 to the CI matrix, and remove 2.1 and 2.2 (#269).
-
Test against the latest versions of Rubygems and Bundler in the CI build (#271).
-
Output helpful error when container parameter provider finds no images matching the provided tag (#258).
-
Always convert underscores to hyphen in stack name in
stack_master delete
command (#263).
1.11.1 - 2018-10-16
- Display changeset before asking for confirmation (#254).
1.11.0 - 2018-10-9
- Add
--yes-param
option for single-param update auto-confim onapply
(#252).
1.10.0 - 2018-9-14
1.9.1 - 2018-9-3
- Improve error reporting: print backtrace when template compilation fails (#251).
1.9.0 - 2018-8-24
-
Add parameter resolver for identifying the latest container image in an AWS ECR (#250).
container_image_id: latest_container: repository_name: "nginx" registry_id: "012345678910" region: "us-east-1" tag: "latest"
1.8.2 - 2018-8-24
- Fix
stack_master init
problem by includingstacktemplates
directory in the gem package (#247).
1.8.1 - 2018-8-17
- Pin
commander
gem to<= 4.4.5
to fix defect in the parsing of global options (#249).
1.8.0 - 2018-7-5
-
Add parameter resolver for AWS ACM certificates (#227).
cert: acm_certificate: "www.example.com"
-
Add
lint
andcompile
sub commands (#245).
1.7.2 - 2018-7-5
-
Fix
STDIN#getch
error on Windows (#241). -
Display informative message if
stack_master.yml
cannot be parsed (#243).
1.7.1 - 2018-6-8
-
Display informative message if the stack has
REVIEW_IN_PROGRESS
status (#233). -
Fix diffing on Windows by adding a runtime dependency on the
diff-lcs
gem (#240).
1.7.0 - 2018-5-15
-
Add 1Password parameter resolver (#220).
database_password: one_password: title: "production database" vault: "Shared" type: "password"
-
Add convenience scripts for building Windows release (#229, #230).
1.6.0 - 2018-5-11
-
Add release for Windows (#228).
gem install stack_master --platform x86-mingw32
1.5.0 - 2018-5-7
- Include the stack name in the AWS Cloudformation changeset name (#224).
1.4.0 - 2018-4-19
- Add a code of conduct (#212).
- Move from AWS SDK v2 to v3 (#222).
-
Ensure
SecureRandom
has been required (#200). -
Fix error when the
oj
gem is installed. Configuremulti_json
to use thejson
gem (#215). -
Readme clean up (#218).
1.3.1 - 2018-3-18
- Support China-region S3 URLs (#217).
1.3.0 - 2018-3-1
- Support loading Sparkle Packs (#216).
1.2.1 - 2018-2-23
-
Add an 'AWS SSM Parameter Store' parameter resolver (#211).
stack_parameter: parameter_store: "ssm_name"
1.1.0 - 2018-2-21
-
Support
yaml
file extension for parameter files. Both.yml
and.yaml
now work (#203). -
Test against Ruby 2.5 (#206) in CI build.
-
Add license, version and build status badges to the readme (#208).
-
Add an environment parameter resolver (#209).
db_username: env: "DB_USERNAME"
-
Make output more readable: separate proposed change set with whitespace and border (#210).
1.0.1 - 2017-12-15
- Don't leave behind failed changesets (#202).
1.0.0 - 2017-12-11
- First stable release!