Skip to content

Commit fd96468

Browse files
jor2Jordan-Williams2
andauthored
fix: Add workaround to ignore groups config when provisioning instance using backup CRN (#166)
* feat: add workaround for groups * fix: if condition --------- Co-authored-by: Jordan-Williams2 <[email protected]>
1 parent 7113b30 commit fd96468

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

main.tf

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ locals {
2525
# Determine if host_flavor is used
2626
host_flavor_set = var.member_host_flavor != null ? true : false
2727

28+
# Determine if restore, from backup or point in time recovery
29+
recovery_mode = var.backup_crn != null || var.pitr_id != null
30+
2831
# Determine what KMS service is being used for database encryption
2932
kms_service = var.kms_key_crn != null ? (
3033
can(regex(".*kms.*", var.kms_key_crn)) ? "kms" : (
@@ -82,11 +85,15 @@ resource "ibm_database" "mysql_db" {
8285
}
8386
}
8487

88+
# Workaround for https://github.ibm.com/GoldenEye/issues/issues/11359
89+
# means that no `group` block is added when restoring from backup
90+
# or point in time recovery
91+
8592
## This for_each block is NOT a loop to attach to multiple group blocks.
8693
## This is used to conditionally add one, OR, the other group block depending on var.local.host_flavor_set
8794
## This block is for if host_flavor IS set to specific pre-defined host sizes and not set to "multitenant"
8895
dynamic "group" {
89-
for_each = local.host_flavor_set && var.member_host_flavor != "multitenant" ? [1] : []
96+
for_each = local.host_flavor_set && var.member_host_flavor != "multitenant" && !local.recovery_mode ? [1] : []
9097
content {
9198
group_id = "member" # Only member type is allowed for IBM Cloud Databases
9299
host_flavor {
@@ -106,7 +113,7 @@ resource "ibm_database" "mysql_db" {
106113

107114
## This block is for if host_flavor IS set to "multitenant"
108115
dynamic "group" {
109-
for_each = local.host_flavor_set && var.member_host_flavor == "multitenant" ? [1] : []
116+
for_each = local.host_flavor_set && var.member_host_flavor == "multitenant" && !local.recovery_mode ? [1] : []
110117
content {
111118
group_id = "member" # Only member type is allowed for IBM Cloud Databases
112119
host_flavor {
@@ -132,7 +139,7 @@ resource "ibm_database" "mysql_db" {
132139

133140
## This block is for if host_flavor IS NOT set
134141
dynamic "group" {
135-
for_each = local.host_flavor_set ? [] : [1]
142+
for_each = !local.host_flavor_set && !local.recovery_mode ? [1] : []
136143
content {
137144
group_id = "member" # Only member type is allowed for IBM Cloud Databases
138145
memory {
@@ -192,6 +199,8 @@ resource "ibm_database" "mysql_db" {
192199

193200
timeouts {
194201
create = "120m" # Extending provisioning time to 120 minutes
202+
update = "120m"
203+
delete = "15m"
195204
}
196205
}
197206

0 commit comments

Comments
 (0)