@@ -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