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.
- Fixed
bucket_obj_admandbucket_obj_vwrvariables causing "Invalid for_each argument" error when used withappend_random_suffix = true. Thefor_eachkey for IAM member resources now uses the static input bucket name instead of the dynamically generated name (with random suffix).
-
BREAKING CHANGE for existing users of
bucket_obj_adm/bucket_obj_vwr: Thefor_eachkey forgoogle_storage_bucket_iam_member.default_storage_adminandgoogle_storage_bucket_iam_member.default_storage_viewerresources has changed from<generated_bucket_name>--<member>to<input_bucket_name>--<member>.Example: If your bucket input name is
myappand it gets a random suffixa1b2, the key changes frommyapp-a1b2--group:admins@example.comtomyapp--group:admins@example.com.Impact: Terraform will plan to destroy and recreate the IAM bindings. This is safe - the IAM permissions will be briefly removed and immediately recreated. No data loss occurs.
Migration: No action required. Run
terraform applyto recreate the IAM bindings with the new keys. If you want to avoid the brief permission gap, you can useterraform state mvto rename the resources before applying.
- Added
additional_transfer_job_excluded_prefixesvariable to allow excluding specific prefixes from the transfer job.
- Add lifecycle policy rules to dr buckets (default retention: 60 days after becoming non current).
- Add disable soft delete as default behaviour.
- Add label
scope = drto dr buckets.
- Added lifecycle policy rules to buckets (default retention: 30 days after becoming non current)
- Fix
append_random_suffixis now compatible with tagging buckets
- Added
soft_delete_retention_secondsproperty to manage bucket soft delete policy
- Fix
generated_bucket_namesoutput
- Added an output with the list of bucket names generated by the module.
- Fix bucket name for tag binding, it was missing the random suffix if present.
- BREAKING CHANGES: tags are now passed using a user-friendly name as
<TAG_KEY_SHORTNAME>/<TAG_VALUE_SHORTNAME>instead of the tag value. - Support global tags to be applied to all buckets. If a bucket specify a list of tags, the global tags will be overridden and replaced by those specified for the bucket.
- Removed
${bucket.bucket_location}--from tag binding key since it can be null.
- Added support for default admin/viewer roles
- Added support for bucket label and Google Tags
- ATTENTION - BREAKING CHANGE: Remove the
roles/storage.objectViewerrole as default for all buckets. - Optionally the role
roles/storage.legacyObjectReadercan be added using the newset_all_users_as_viewerproperty in thebuckets_listvariable.
- Renamed the disaster recovery bucket name to stick with existing nomenclature
- Changed output variable
buckets_access_credentialsfrom a list to a map - Moved the force_destroy variable to the buckets_list object list
- Init project.