aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap
Allow AWS::ElastiCache::GlobalReplicationGroup to update Engine Version for Replication Groups on creation.
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
### Name of the resource
AWS::ElastiCache::GlobalReplicationGroup
### Resource name
AWS::ElastiCache::GlobalReplicationGroup
### Description
When creating AWS::ElastiCache::ReplicationGroup and AWS::ElastiCache::GlobalReplicationGroup with EngineVersion specified in AWS::ElastiCache::GlobalReplicationGroup, it ignores the version in AWS::ElastiCache::GlobalReplicationGroup and doesn't throw any error. At this point we can't upgrade the AWS::ElastiCache::GlobalReplicationGroup to the specified version and now have to manually correct drift, because updating the template with the same EngineVersion will result in no changes (From the perspective of CloudFormation).
The engine version for a Global Replication Group can only be set in the update resource API, ModifyGlobalReplicationGroup [1]. During initial creation, the Global Cluster will assume the engine version of its primary replica target [2].
Currently, when creating a Global Replication Group with Engine Version defined, it will only conduct the create API [3].
In order to have its member replication groups match its engine version, CloudFormation must call the update global replication group API with the new engine version after its creation finalizes.
Feature Request, either:
- During the creation of the Global Replication Group, call ModifyGlobalReplicationGroup if the Engine Version of the Global Replication Group differs from the Engine Version of the defined Replication Groups.
OR
- During the creation of the AWS::ElastiCache::GlobalReplicationGroup, throw an error if its Engine Version differs from the Engine Version of the associated AWS::ElastiCache::ReplicationGroup resources
### Other Details
[1] https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyGlobalReplicationGroup.html
[2] https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Redis-Global-Datastores-Console.html#Redis-Global-Datastores-Console-Create-Primary
[3] https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-global-replication-group.html
Contributor guide
Research direction
Start by reviewing the AWS::ElastiCache::GlobalReplicationGroup creation behavior alongside the CreateGlobalReplicationGroup and ModifyGlobalReplicationGroup API documentation linked in the issue. Determine whether creation should apply the requested engine version after finalization or reject a mismatch with the associated replication groups. Done means the resource no longer silently ignores EngineVersion and the resulting behavior is reflected in coverage tests or validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100