Description
Describe the Bug
Hi all.
The use-cases where the database has to be recreated from a snapshot, results in an error due to a conflicting name.
I noticed that create_before_destroy = true
is on both of these resources
aws_rds_cluster_instance
aws_rds_cluster_parameter_group
aws_db_parameter_group
The second aws_rds_cluster_parameter_group
and third aws_db_parameter_group
ones correctly has the option to either use name
or name_prefix
which can avoid the recreation issue, but the first aws_rds_cluster_instance
only uses identifier
without an option to use identifier_prefix
.
terraform-aws-rds-cluster/main.tf
Lines 349 to 351 in d13a56c
terraform-aws-rds-cluster/main.tf
Lines 404 to 408 in d13a56c
terraform-aws-rds-cluster/main.tf
Lines 429 to 433 in d13a56c
Even if the flag identifier_prefix
was set to presumably avoid this naming conflict issue, the flag create_before_destroy = true
for these resources doesn't make sense to me since if the old database was going to be destroyed, creating a brand new one wouldn't prevent an outage. Is this flag really providing value?
Two ways to solve this and both solutions could also be employed
- Provide an option to use
identifier_prefix
foraws_rds_cluster_instance
- Remove
create_before_destroy = true
flag for these resources
Expected Behavior
Recreation without naming conflict
Steps to Reproduce
- terraform apply an empty database
- provide the snapshot identifier arn which will result in a recreation
- terraform apply
You should see the error now
Screenshots
N/A
Environment
terraform 1.11.0
module v1.18.0
Additional Context
- reopen #192 #213
- Docs regarding the
create_before_destroy
flag foraws_db_parameter_group
and there is no equivalent foraws_rds_cluster_instance
but one can predict if there was, it would most likely recommendidentifier_prefix
.