aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap
AWS::RDS::DBCluster - [BUG] - Resolving drift with Parameter Group always restarts the instances
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
### Name of the resource
AWS::RDS::DBCluster
### Resource Name
_No response_
### Issue Description
I've been using the Aurora Blue/Green deployment to conduct major version upgrades. Since CloudFormation does not natively support this (see #1483), the process is basically:
1. Create a new parameter group for the new major version via CDK.
2. Create the Blue/Green cluster manually via the console (using the parameter group from step 1).
3. Switchover to the green cluster via the console.
4. Resolve CDK drift by syncing the `EngineVersion` and `DBClusterParameterGroupName` values.
In effect, Step 4 is a no-op, since this change was applied manually via the console.
### Expected Behavior
When I update the `EngineVersion` property to sync with reality (e.g., a major version via the process above, or to sync a CloudFormation template with an auto-minor upgrade that occurred), CloudFormation "knows" that it's a no-op and simply applies the template without trying to force an upgrade to a different version.
Therefore, when I sync the `DBClusterParameterGroupName` from the old value in the template to the new value in reality, I do not expect a reboot of all instances to occur (which causes an interruption to availability).
### Observed Behavior
When I update `DBClusterParameterGroupName` to sync it with reality, CloudFormation always triggers a reboot of all cluster instances, even though the parameter group was already applied.
### Test Cases
You can follow my steps above, inspired by the blogs linked here: https://github.com/aws-cloudformation/cloudformation-coverage-roadmap/issues/1483#issuecomment-2059814738
When you resolve the drift by updating the CloudFormation template to have the same `DBClusterParameterGroupName` as reality, you'll observe that all DB cluster instances will restart.
### Other Details
_No response_
Contributor guide
Research direction
Start by reviewing the reproduction steps in this issue and the related CloudFormation coverage issue #1483, then reproduce the Aurora Blue/Green drift-resolution flow through the console. Done means syncing EngineVersion and DBClusterParameterGroupName without triggering an unnecessary restart of the cluster instances.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100