Skip to content

Commit 72b4206

Browse files
authored
test: allow existing sm to be passed in api example (#190)
* test: allow existing sm to be passed in api example * fix: put vars in right spot * fix: use crn parser
1 parent c0f1a31 commit 72b4206

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

examples/api_key_auth/main.tf

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
locals {
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

68
module "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+
1423
module "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" {
2737
module "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
}

examples/api_key_auth/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ variable "resource_group" {
2929
default = null
3030
}
3131

32+
variable "existing_sm_instance_crn" {
33+
type = string
34+
description = "Existing Secrets Manager CRN. If not provided a new instance will be provisioned"
35+
default = null
36+
}
37+
3238
variable "cis_id" {
3339
type = string
3440
description = "Cloud Internet Service ID"

tests/pr_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ func TestPrivateInSchematics(t *testing.T) {
8080
{Name: "private_key_secrets_manager_instance_guid", Value: permanentResources["acme_letsencrypt_private_key_sm_id"], DataType: "string"},
8181
{Name: "private_key_secrets_manager_secret_id", Value: permanentResources["acme_letsencrypt_private_key_secret_id"], DataType: "string"},
8282
{Name: "private_key_secrets_manager_region", Value: permanentResources["acme_letsencrypt_private_key_sm_region"], DataType: "string"},
83+
{Name: "existing_sm_instance_crn", Value: permanentResources["privateOnlySecMgrCRN"], DataType: "string"},
84+
{Name: "existing_sm_instance_region", Value: permanentResources["privateOnlySecMgrRegion"], DataType: "string"},
8385
}
8486

8587
err := options.RunSchematicTest()

0 commit comments

Comments
 (0)