Skip to content

Commit acdaa5a

Browse files
authored
fix: add fix for #132 (#143)
1 parent a221e85 commit acdaa5a

File tree

1 file changed

+14
-5
lines changed
  • solutions/fully-configurable

1 file changed

+14
-5
lines changed

solutions/fully-configurable/main.tf

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#######################################################################################################################
44

55
locals {
6+
67
prefix = var.prefix != null ? (var.prefix != "" ? var.prefix : null) : null
78

89
default_cos_region = var.cos_region != null ? var.cos_region : var.region
@@ -11,7 +12,7 @@ locals {
1112
cos_key_name = try("${local.prefix}-${var.cos_key_name}", var.cos_key_name)
1213
activity_tracker_cos_target_bucket_name = try("${local.prefix}-${var.activity_tracker_cos_target_bucket_name}", var.activity_tracker_cos_target_bucket_name)
1314

14-
cos_instance_guid = element(split(":", var.existing_cos_instance_crn), length(split(":", var.existing_cos_instance_crn)) - 3)
15+
cos_instance_guid = try(module.cos_crn_parser[0].service_instance, null)
1516

1617
use_kms_module = var.kms_encryption_enabled_buckets && var.existing_cos_kms_key_crn == null
1718
existing_kms_guid = var.kms_encryption_enabled_buckets ? (var.existing_kms_instance_crn != null ? module.kms_instance_crn_parser[0].service_instance : module.existing_kms_key_crn_parser[0].service_instance) : null
@@ -68,8 +69,9 @@ locals {
6869
target_ids = [module.activity_tracker.activity_tracker_targets[local.cloud_logs_target_name].id]
6970
}] : []
7071

71-
create_cross_account_auth_policy = !var.skip_cos_kms_auth_policy && var.ibmcloud_kms_api_key != null ? 1 : 0
72-
activity_tracker_routes = concat(local.activity_tracker_cos_route, local.activity_tracker_cloud_logs_route)
72+
create_cross_account_cos_kms_auth_policy = !var.skip_cos_kms_auth_policy && var.ibmcloud_kms_api_key != null && var.existing_cos_instance_crn != null ? 1 : 0
73+
create_cross_account_atracker_cos_auth_policy = var.ibmcloud_cos_api_key != null && !var.skip_activity_tracker_cos_auth_policy && var.existing_cos_instance_crn != null ? 1 : 0
74+
activity_tracker_routes = concat(local.activity_tracker_cos_route, local.activity_tracker_cloud_logs_route)
7375

7476
}
7577

@@ -117,7 +119,7 @@ resource "time_sleep" "wait_for_atracker_cos_authorization_policy" {
117119
}
118120

119121
resource "ibm_iam_authorization_policy" "atracker_cos" {
120-
count = var.ibmcloud_cos_api_key != null && !var.skip_activity_tracker_cos_auth_policy ? 1 : 0
122+
count = local.create_cross_account_atracker_cos_auth_policy
121123
provider = ibm.cos
122124
source_service_account = data.ibm_iam_account_settings.iam_account_settings.account_id
123125
source_service_name = "atracker"
@@ -180,6 +182,13 @@ module "kms" {
180182
# COS
181183
#######################################################################################################################
182184

185+
module "cos_crn_parser" {
186+
count = var.existing_cos_instance_crn != null ? 1 : 0
187+
source = "terraform-ibm-modules/common-utilities/ibm//modules/crn-parser"
188+
version = "1.3.0"
189+
crn = var.existing_cos_instance_crn
190+
}
191+
183192
# workaround for https://github.com/IBM-Cloud/terraform-provider-ibm/issues/4478
184193
resource "time_sleep" "wait_for_authorization_policy" {
185194
depends_on = [ibm_iam_authorization_policy.policy]
@@ -195,7 +204,7 @@ data "ibm_iam_account_settings" "iam_cos_account_settings" {
195204

196205
# Create IAM Authorization Policy to allow COS to access KMS for the encryption key
197206
resource "ibm_iam_authorization_policy" "policy" {
198-
count = local.create_cross_account_auth_policy
207+
count = local.create_cross_account_cos_kms_auth_policy
199208
# Conditionals with providers aren't possible, using ibm.kms as provider incase cross account is enabled
200209
provider = ibm.kms
201210
source_service_account = data.ibm_iam_account_settings.iam_cos_account_settings.account_id

0 commit comments

Comments
 (0)