11locals {
22 # Certificate issuance is rate limited by domain, by default pick different domains to avoid rate limits during testing
33 cert_common_name = var. cert_common_name == null ? " ${ var . prefix } .goldeneye.dev.cloud.ibm.com" : var. cert_common_name
4+ sm_guid = var. existing_sm_instance_crn == null ? module. secrets_manager [0 ]. secrets_manager_guid : module. existing_sm_crn_parser [0 ]. service_instance
5+ sm_region = var. existing_sm_instance_crn == null ? var. region : module. existing_sm_crn_parser [0 ]. region
46}
57
68module "resource_group" {
@@ -11,7 +13,15 @@ module "resource_group" {
1113 existing_resource_group_name = var. resource_group
1214}
1315
16+ module "existing_sm_crn_parser" {
17+ count = var. existing_sm_instance_crn == null ? 0 : 1
18+ source = " terraform-ibm-modules/common-utilities/ibm//modules/crn-parser"
19+ version = " 1.1.0"
20+ crn = var. existing_sm_instance_crn
21+ }
22+
1423module "secrets_manager" {
24+ count = var. existing_sm_instance_crn == null ? 1 : 0
1525 source = " terraform-ibm-modules/secrets-manager/ibm"
1626 version = " 1.23.3"
1727 resource_group_id = module. resource_group . resource_group_id
@@ -27,8 +37,8 @@ module "secrets_manager" {
2737module "secrets_manager_secret_group" {
2838 source = " terraform-ibm-modules/secrets-manager-secret-group/ibm"
2939 version = " 1.2.2"
30- region = var . region
31- secrets_manager_guid = module . secrets_manager . secrets_manager_guid
40+ region = local . sm_region
41+ secrets_manager_guid = local . sm_guid
3242 secret_group_name = " ${ var . prefix } -certificates-secret-group" # checkov:skip=CKV_SECRET_6: does not require high entropy string as is static value
3343 secret_group_description = " secret group used for public certificates" # tfsec:ignore:general-secrets-no-plaintext-exposure
3444 endpoint_type = " private"
@@ -45,8 +55,8 @@ module "public_secret_engine" {
4555 ibm.secret-store = ibm.secret- store
4656 }
4757 depends_on = [module . secrets_manager ] # Required to wait for instance to fully start
48- secrets_manager_guid = module . secrets_manager . secrets_manager_guid
49- region = var . region
58+ secrets_manager_guid = local . sm_guid
59+ region = local . sm_region
5060 ibmcloud_cis_api_key = var. ibmcloud_api_key # key with manager authorization to CIS
5161 internet_services_crn = var. cis_id
5262 dns_config_name = var. dns_provider_name
@@ -74,8 +84,8 @@ module "secrets_manager_public_certificate" {
7484 secrets_manager_ca_name = var. ca_name
7585 secrets_manager_dns_provider_name = var. dns_provider_name
7686
77- secrets_manager_guid = module . secrets_manager . secrets_manager_guid
78- secrets_manager_region = var . region
87+ secrets_manager_guid = local . sm_guid
88+ secrets_manager_region = local . sm_region
7989
8090 service_endpoints = " private"
8191}
0 commit comments