BREAKING CHANGES:
- It is now possible, with a validation check, to destroy the bootstrap.
- Bootstrap and the example component have been completely rewritten.
.terraform
andbackend_tfscaffold.tf
no longer removed during bootstrap cleanup- Bootstrap and examples now configured to use terraform >= 1.10.0.
- Bootstrap and examples now require terraform > 1.0.0.
- Bootstrap and examples now require AWS Provider ~> 5.79.0.
- tfscaffold tagging default have changed to prefix tag keys with tfscaffold:
FEATURES:
- Bootstraps can now be fully and cleanly destroyed, however only interactively, requiring a manual text input to confirm.
- A DynamoDB lock table has been added to Bootstrap.
- Bootstrap now uses AWS Provider v4+ S3 Bucket property resources instead of declaring all configuration in a single bucket resource.
- The example component has been rewritten to reflect modern naming standards, and idempotency structures.
- An example module has been added, which is called from the example component.
- Example region changed to eu-west-2.
bin/docs.sh
has been added to recursively apply terraform-docs (https://github.com/terraform-docs/terraform-docs) to all directories beneath the project root that contain a variables.tf file.- Remove unnecessary compatability log entry for auto-approve.
- Remove unnecessary non-current version transitions from the bootstrap bucket.
BUG FIXES:
- Do not write
.terraform.output.json
after a destroy. -compact-warnings
is no longer passed toterraform init
CHORES:
.gitignore
updated
BUG FIXES:
- Correct
terraform.output.json
to.terraform.output.json
BUG FIXES:
- Add
**/terraform.output.json
to the default .gitignore
FEATURES:
- Apply/Refresh/Destroy actions now output a terraform.output.json file containing the contents of terraform output -json -no-color. On by default, can be disabled.
- Ignore -w/--compact-warnings for commands that don't support it so the user can specify it all the time without worrying which commands support it.
BUG FIXES:
- Fix plugin-cache base directory from
$(pwd)
to${base_path}
so it is correctly located if terraform.sh is invoked from somewhere other than the project root.
CHORES:
- Fix inappropriate double-quoting of non-interpolated strings.
BUG FIXES:
- Correct selection of
lockfile_or_upgrade
, thanks to @edmundcraske-bjss
FEATURES:
- New options:
- -l/--lockfile: Local lock file
- -t/--lock-table: Lock with DynamoDB Table
- Bootstrap:
- New multi-resource approach to S3 Bucket
- KMS Key Alias for S3 Bucket KMS Key, for easy data-sourcing elsewhere
- New tfscaffold: prefix for tfscaffold tags
- Updated the warning for duplicate input variables
BUG FIXES:
- Some alignment and ordering
- Merged into 1.9.0
- Explicitly declare and clear out, refresh and destroy in case someone exports them
- Added custom action
shell
: a bash login shell between component init and cleanup
FEATURES:
- Added
-d/--detailed-exitcode
to propagate terraform exit codes to shell - Added
-n/--no-color
appends -co-color to all tf calls - Added
-w/--compact-warnings
appends -compact-warnings to all terraform calls
BUG FIXES:
- Getopt fixes
- Various small fixes
NOTES:
- Support for early versions of terraform has been dropped (<0.11)
- Default backend bucket name has changed, pass in -b to overwrite
- Scaffold bootstrap updated
- Remove extraneous eval from secret parsing
- Remove deprecated/irrelevant module-depth parameter
- Add an init with -backend=false in bootstrap mode, otherwise providers are not downloaded
- Fix bootstrap output that was using a now deprecated bucket resource attribute
- Add an indicative .terraform-version file for tfenv support in bootstrap
- Remove
-upgrade
from init. Added prematurely. Can go back in when 0.9 support is dropped.
- Support terraform 0.10/0.11, bypassing new built-in approval mechanism.
- Explicitly cache plugin downloads.
- Set TF_IN_AUTOMATION.
- Change from error to warn on non-presence of requested group variables file
- Introduce the group variables file functionality
- Merge bootstrap functionality into the main script
- Global and Region scoped variables files
- Support the use of .terraform-version file in components when in the presence of tfenv
- Provide a case for import that requires the variable file parameters
- Fix 0.9.2+ support for bootstrap.sh
- Move from terraform-0.8 to terraform-0.9
- Change remote state from manual config to temporary-file "backend"
- Complain in the code comments about Hashicorp forcing my hand on this
- Don't push state any more; there's no persisted local copy to push
- Same change for bootstrap.sh (UNTESTED!)
- Bugfix: Duplicate variable warning conditional to presence of duplicates
- Add CHANGELOG.md
- Add version and help parameters to bin/terraform.sh
- Add optional unencrypted S3 parameters
- Move secrets S3 key path to more appropriate place
- Test and Warn on duplicate variables
- Support arbitrary terraform actions
- Additional comments