aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap

AWS::RDS::DBCluster - [BUG] - Resolving drift with Parameter Group always restarts the instances

Open
#2,206 0 comments 4 reactions 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.