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

Allow AWS::ElastiCache::GlobalReplicationGroup to update Engine Version for Replication Groups on creation.

Open
#1,539 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.