Skip to content

Commit 73eced2

Browse files
fix: fix crn parser bug (#241)
1 parent f800a0f commit 73eced2

File tree

3 files changed

+39
-6
lines changed

3 files changed

+39
-6
lines changed

main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,14 @@ resource "ibm_sm_public_certificate_configuration_dns_cis" "public_dns_config" {
6464

6565
data "ibm_sm_arbitrary_secret" "ibm_secrets_manager_secret" {
6666
provider = ibm.secret-store
67-
count = var.private_key_secrets_manager_instance_guid != null ? 1 : 0
67+
count = var.acme_letsencrypt_private_key == null ? 1 : 0
6868
region = var.private_key_secrets_manager_region != null ? var.private_key_secrets_manager_region : var.region
6969
instance_id = var.private_key_secrets_manager_instance_guid
7070
secret_id = var.private_key_secrets_manager_secret_id
7171
}
7272

7373
locals {
74-
acme_letsencrypt_private_key = var.private_key_secrets_manager_instance_guid != null ? data.ibm_sm_arbitrary_secret.ibm_secrets_manager_secret[0].payload : var.acme_letsencrypt_private_key
74+
acme_letsencrypt_private_key = var.acme_letsencrypt_private_key == null ? data.ibm_sm_arbitrary_secret.ibm_secrets_manager_secret[0].payload : var.acme_letsencrypt_private_key
7575
}
7676

7777
# CA config - LetsEncrypt

solutions/fully-configurable/main.tf

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

55
locals {
6-
prefix = var.prefix != null ? trimspace(var.prefix) != "" ? "${var.prefix}-" : "" : ""
6+
prefix = var.prefix != null ? trimspace(var.prefix) != "" ? "${var.prefix}-" : "" : ""
7+
parse_acme_lets_encrypt_private_key = var.acme_letsencrypt_private_key_secrets_manager_secret_crn != null ? 1 : 0
78
}
89

910
module "secrets_manager_crn_parser" {
@@ -13,6 +14,7 @@ module "secrets_manager_crn_parser" {
1314
}
1415

1516
module "secret_crn_parser" {
17+
count = local.parse_acme_lets_encrypt_private_key
1618
source = "terraform-ibm-modules/common-utilities/ibm//modules/crn-parser"
1719
version = "1.1.0"
1820
crn = var.acme_letsencrypt_private_key_secrets_manager_secret_crn
@@ -22,8 +24,8 @@ locals {
2224
existing_secrets_manager_guid = module.secrets_manager_crn_parser.service_instance
2325
existing_secrets_manager_region = module.secrets_manager_crn_parser.region
2426

25-
secret_region = module.secret_crn_parser.region
26-
secret_id = module.secret_crn_parser.resource
27+
secret_region = local.parse_acme_lets_encrypt_private_key == 0 ? null : module.secret_crn_parser[0].region
28+
secret_id = local.parse_acme_lets_encrypt_private_key == 0 ? null : module.secret_crn_parser[0].resource
2729
}
2830

2931
module "secrets_manager_public_cert_engine" {

tests/pr_test.go

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"os"
77
"testing"
88

9+
"github.com/gruntwork-io/terratest/modules/logger"
10+
"github.com/gruntwork-io/terratest/modules/terraform"
911
"github.com/stretchr/testify/assert"
1012
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/common"
1113
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
@@ -150,7 +152,7 @@ func TestRunSolutionsFullyConfigurableUpgradeSchematics(t *testing.T) {
150152
{Name: "prefix", Value: options.Prefix, DataType: "string"},
151153
{Name: "existing_secrets_manager_crn", Value: permanentResources["secretsManagerCRN"], DataType: "string"},
152154
{Name: "acme_letsencrypt_private_key_secrets_manager_secret_crn", Value: permanentResources["acme_letsencrypt_private_key_secret_crn"], DataType: "string"},
153-
{Name: "dns_config_name", Value: "cert-dns", DataType: "string"},
155+
{Name: "dns_config_name", Value: "cer-dns", DataType: "string"},
154156
{Name: "internet_services_crn", Value: permanentResources["cisInstanceId"], DataType: "string"},
155157
{Name: "skip_iam_authorization_policy", Value: true, DataType: "bool"}, // A permanent cis-sm auth policy already exists in the account
156158
}
@@ -160,3 +162,32 @@ func TestRunSolutionsFullyConfigurableUpgradeSchematics(t *testing.T) {
160162
assert.Nil(t, err, "This should not have errored")
161163
}
162164
}
165+
166+
func TestPlanValidation(t *testing.T) {
167+
168+
options := testhelper.TestOptionsDefault(&testhelper.TestOptions{
169+
Testing: t,
170+
TerraformDir: fullyConfigurableDir,
171+
Prefix: "val-plan",
172+
ResourceGroup: resourceGroup,
173+
})
174+
options.TestSetup()
175+
options.TerraformOptions.NoColor = true
176+
options.TerraformOptions.Logger = logger.Discard
177+
options.TerraformOptions.Vars = map[string]interface{}{
178+
"prefix": options.Prefix,
179+
"existing_secrets_manager_crn": permanentResources["secretsManagerCRN"],
180+
"acme_letsencrypt_private_key": "PRIVATE_KEY_VALUE", // pragma: allowlist secret
181+
"skip_iam_authorization_policy": true,
182+
"provider_visibility": "public",
183+
}
184+
185+
// Init
186+
_, initErr := terraform.InitE(t, options.TerraformOptions)
187+
assert.Nil(t, initErr, "Terraform init should not error")
188+
189+
// Plan
190+
planOutput, planErr := terraform.PlanE(t, options.TerraformOptions)
191+
assert.Nil(t, planErr, "Terraform plan should not error")
192+
assert.NotNil(t, planOutput, "Expected Terraform plan output")
193+
}

0 commit comments

Comments
 (0)