Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BREAKING CHANGE: update module to allow for control over individual cluster instances and latest features #243

Merged

Conversation

bryantbiggs
Copy link
Member

Description

See UPGRADE-6.0.md for full list of changes, updates, etc.

  • Added create_db_subnet_group variable to control whether a DB subnet group is created or not; previously if db_subnet_group_name was specified then an existing subnet group was used. Now the combination of create_db_subnet_group and db_subnet_group_name determine the name of the subnet group AND whether to create anew or use existing
  • Minimum version of AWS provider increased to v3.63.0 to support features added
  • Added random_password_length to give users control over the length of the random password that can be created; defaults to prior existing value of 10
  • Local variable check added on aws_rds_cluster for attributes database_name, master_username and master_pass to support secondary clusters (global cluster, replication cluster, etc.)
  • Conditional creation check for is_serverless added to aws_rds_cluster_instance, aws_appautoscaling_target, and aws_appautoscaling_policy since these are not applicable for serverless clusters
  • Added availability_zone, copy_tags_to_snapshot attributes to aws_rds_cluster_instance which are now accessible via the instances map
  • Removed engine_version from aws_rds_cluster_instance lifecycle ignore block now that this has been patched in upstream AWS provider
  • New resource aws_rds_cluster_endpoint added to allow for creation of custom, additional endpoints
  • New resource aws_rds_cluster_role_association added to allow for association IAM roles with the cluster
  • Where applicable, variable default values have been set to null to use upstream AWS provider default values
  • Update variable descriptions from upstream provider docs

List of backwards incompatible changes

  • Coalesce of previous, default IAM enhanced monitoring role name has been removed (this was marked as a TODO to remove at next breaking change)
  • Name tag removed from DB subnet group and enhanced monitoring role; the name is now set by the provider resource and this is no longer necessary
  • iam_roles removed from aws_rds_cluster resource with the addition of aws_rds_cluster_role_association; per the docs this will cause conflicts and only one should be used and the role association resource contains more functionality/features
  • replication_source_identifier added to aws_rds_cluster ignore lifecycle block to support secondary, replication clusters per the docs
  • global_cluster_identifier added to aws_rds_clsuter ignore lifecycle block to support global clusters per the docs
  • replica_countreplaced with instances; instances are now controlled by a map of maps, allowing users to create a homogenous cluster or a heterogenous cluster with fine grain control over the instances provisioned through the use of the new map attributes. This means the aws_rds_cluster_instance no longer uses count and now uses for_each for better stability and isolated change control.
  • iam_roles variable has been re-purposed from a list of IAM roles to associate with the cluster via the aws_rds_cluster resource and instead is now a map of maps to associate roles via the new aws_rds_cluster_role_association resource
  • aws_appautoscaling_target resource identifier changed from read_replica_count to this to follow conventions. This change requires either re-creation or a Terraform state rename to avoid disruption (see below)

Motivation and Context

Closes #105
Closes #106
Closes #129
Closes #147
Closes #151
Closes #162
Closes #179
Closes #189
Closes #190
Closes #193
Closes #222
Closes #224
Closes #227
Closes #231
Closes #233
Closes #236
Closes #237

Breaking Changes

How Has This Been Tested?

  • I have tested and validated these changes using ALL of the examples in examples/*

…o specify per instance attributes with a map of maps
@bryantbiggs
Copy link
Member Author

@antonbabenko I still need to finish up the state move commands for the migration doc, and something seems to have changed that causes the s3 import example to not complete - but wanted to open it up a bit early to get any feedback while I finish it up

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
examples/global_cluster/main.tf Show resolved Hide resolved
@bryantbiggs bryantbiggs force-pushed the breaking/module-updates branch 2 times, most recently from 30fe054 to 5daa5ca Compare October 25, 2021 17:56
@bryantbiggs bryantbiggs force-pushed the breaking/module-updates branch from 5daa5ca to 26c5e5a Compare October 25, 2021 18:03
@bryantbiggs bryantbiggs marked this pull request as ready for review October 25, 2021 18:05
@bryantbiggs
Copy link
Member Author

ok this should be ready for review if you get some time @antonbabenko 🙏🏽

Copy link
Member

@antonbabenko antonbabenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks pretty good. Should I merge it and cut a major release? Or is there anything else remaining to be done before the merge?

@bryantbiggs
Copy link
Member Author

nothing else to add at this time, re-confirmed the examples this morning and also verified the state move commands - should be all set to cut the major release. I'll keep any eye on any issues if they pop up

@antonbabenko antonbabenko merged commit 52b2a14 into terraform-aws-modules:master Oct 25, 2021
@bryantbiggs bryantbiggs deleted the breaking/module-updates branch October 25, 2021 19:32
@antonbabenko
Copy link
Member

Here we go! 🎉

v6.0.0 has been just released.

DanK-Ops pushed a commit to usertesting/terraform-aws-rds-aurora that referenced this pull request Nov 18, 2021
* terraform-aws-modules-master: (32 commits)
  chore: Giving up on releaserc config (for now) (terraform-aws-modules#257)
  chore(release): version 6.1.3 [skip ci]
  fix: Revert small useless change in main.tf (terraform-aws-modules#256)
  chore(release): version 6.1.2 [skip ci]
  fix: Small useless change in main.tf to test semantic-release (last one, I promise) (terraform-aws-modules#255)
  fix: Small useless change in main.tf to test semantic-release (terraform-aws-modules#254)
  chore: Updated .releaserc config and tf file (to trigger release) (terraform-aws-modules#253)
  chore: Updated .releaserc config (terraform-aws-modules#252)
  chore(release): version 6.1.1 [skip ci]
  chore: Added workflow_dispatch to allow manual releases (terraform-aws-modules#251)
  fix: update CI/CD process to enable auto-release workflow (terraform-aws-modules#250)
  Updated CHANGELOG
  feat: Add security group egress rule support, fix documentation links (terraform-aws-modules#249)
  Updated CHANGELOG
  chore: Updated release Makefile
  Updated CHANGELOG
  BREAKING CHANGE: update module to allow for control over individual cluster instances and latest features (terraform-aws-modules#243)
  chore: update CI workflow to use composite actions, update pre-commit versions (terraform-aws-modules#242)
  Updated CHANGELOG
  feat: Add support for restore_to_point_in_time (terraform-aws-modules#194)
  ...
@github-actions
Copy link

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 14, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.