From f5d724e01952cdcc76c922227ab14add33971b3c Mon Sep 17 00:00:00 2001 From: Jordan-Williams2 Date: Thu, 21 Nov 2024 11:58:10 +0000 Subject: [PATCH 1/2] feat: add workaround for groups --- main.tf | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/main.tf b/main.tf index 5b4a79d6..802fa979 100644 --- a/main.tf +++ b/main.tf @@ -25,6 +25,9 @@ locals { # Determine if host_flavor is used host_flavor_set = var.member_host_flavor != null ? true : false + # Determine if restore, from backup or point in time recovery + recovery_mode = var.backup_crn != null || var.pitr_id != null + # Determine what KMS service is being used for database encryption kms_service = var.kms_key_crn != null ? ( can(regex(".*kms.*", var.kms_key_crn)) ? "kms" : ( @@ -82,11 +85,15 @@ resource "ibm_database" "mysql_db" { } } + # Workaround for https://github.ibm.com/GoldenEye/issues/issues/11359 + # means that no `group` block is added when restoring from backup + # or point in time recovery + ## This for_each block is NOT a loop to attach to multiple group blocks. ## This is used to conditionally add one, OR, the other group block depending on var.local.host_flavor_set ## This block is for if host_flavor IS set to specific pre-defined host sizes and not set to "multitenant" dynamic "group" { - for_each = local.host_flavor_set && var.member_host_flavor != "multitenant" ? [1] : [] + for_each = local.host_flavor_set && var.member_host_flavor != "multitenant" && !local.recovery_mode ? [1] : [] content { group_id = "member" # Only member type is allowed for IBM Cloud Databases host_flavor { @@ -106,7 +113,7 @@ resource "ibm_database" "mysql_db" { ## This block is for if host_flavor IS set to "multitenant" dynamic "group" { - for_each = local.host_flavor_set && var.member_host_flavor == "multitenant" ? [1] : [] + for_each = local.host_flavor_set && var.member_host_flavor == "multitenant" && !local.recovery_mode ? [1] : [] content { group_id = "member" # Only member type is allowed for IBM Cloud Databases host_flavor { @@ -132,7 +139,7 @@ resource "ibm_database" "mysql_db" { ## This block is for if host_flavor IS NOT set dynamic "group" { - for_each = local.host_flavor_set ? [] : [1] + for_each = local.host_flavor_set && !local.recovery_mode ? [] : [1] content { group_id = "member" # Only member type is allowed for IBM Cloud Databases memory { @@ -192,6 +199,8 @@ resource "ibm_database" "mysql_db" { timeouts { create = "120m" # Extending provisioning time to 120 minutes + update = "120m" + delete = "15m" } } From 3032ad31c3380fe23e89214a76114cb7009905b3 Mon Sep 17 00:00:00 2001 From: Jordan-Williams2 Date: Mon, 25 Nov 2024 13:22:08 +0000 Subject: [PATCH 2/2] fix: if condition --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index babc61b6..d1d2be7b 100644 --- a/main.tf +++ b/main.tf @@ -139,7 +139,7 @@ resource "ibm_database" "mysql_db" { ## This block is for if host_flavor IS NOT set dynamic "group" { - for_each = local.host_flavor_set && !local.recovery_mode ? [] : [1] + for_each = !local.host_flavor_set && !local.recovery_mode ? [1] : [] content { group_id = "member" # Only member type is allowed for IBM Cloud Databases memory {