Skip to content

Commit 281fb97

Browse files
committed
fully configurable solution
1 parent 0c12e98 commit 281fb97

File tree

12 files changed

+137
-83
lines changed

12 files changed

+137
-83
lines changed

ibm_catalog.json

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@
4646
],
4747
"flavors": [
4848
{
49-
"label": "Standard",
50-
"name": "standard",
49+
"label": "Fully configurable",
50+
"name": "fully-configurable",
5151
"install_type": "fullstack",
52-
"working_directory": "solutions/standard",
52+
"working_directory": "solutions/fully-configurable",
5353
"compliance": {
5454
"authority": "scc-v3",
5555
"profiles": [
@@ -115,16 +115,13 @@
115115
]
116116
},
117117
{
118-
"key": "use_existing_resource_group"
119-
},
120-
{
121-
"key": "resource_group_name"
118+
"key": "existing_resource_group_name"
122119
},
123120
{
124121
"key": "prefix"
125122
},
126123
{
127-
"key": "name"
124+
"key": "mongodb_name"
128125
},
129126
{
130127
"key": "region",
@@ -204,6 +201,9 @@
204201
{
205202
"key": "plan"
206203
},
204+
{
205+
"key": "service_endpoints"
206+
},
207207
{
208208
"key": "members"
209209
},
@@ -241,10 +241,13 @@
241241
"key": "users"
242242
},
243243
{
244-
"key": "tags"
244+
"key": "mongodb_tags"
245+
},
246+
{
247+
"key": "mongodb_access_tags"
245248
},
246249
{
247-
"key": "access_tags"
250+
"key": "kms_encryption_enabled"
248251
},
249252
{
250253
"key": "use_ibm_owned_encryption_key"
File renamed without changes.

solutions/standard/README.md renamed to solutions/fully-configurable/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
# IBM Cloud Databases for MongoDB
1+
# IBM Cloud Databases for MongoDB
2+
3+
## Prerequisites
4+
- An existing resource group
25

36
This architecture creates an instance of IBM Cloud Databases for MongoDB and supports provisioning of the following resources:
47

5-
- A resource group, if one is not passed in.
68
- A KMS root key, if one is not passed in.
79
- An IBM Cloud Databases for MongoDB instance with KMS encryption.
810
- Autoscaling rules for the database instance, if provided.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"ibmcloud_api_key": $VALIDATION_APIKEY,
3+
"region": "us-south",
4+
"mongodb_tags": $TAGS,
5+
"mongodb_name": $PREFIX,
6+
"existing_resource_group_name": $PREFIX,
7+
"existing_kms_instance_crn": $HPCS_US_SOUTH_CRN,
8+
"kms_encryption_enabled": true,
9+
"use_ibm_owned_encryption_key": false
10+
}

solutions/standard/main.tf renamed to solutions/fully-configurable/main.tf

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,22 @@
22
# Resource Group
33
#######################################################################################################################
44

5+
56
module "resource_group" {
67
source = "terraform-ibm-modules/resource-group/ibm"
78
version = "1.2.0"
8-
resource_group_name = var.use_existing_resource_group == false ? ((var.prefix != null && var.prefix != "") ? "${var.prefix}-${var.resource_group_name}" : var.resource_group_name) : null
9-
existing_resource_group_name = var.use_existing_resource_group == true ? var.resource_group_name : null
9+
existing_resource_group_name = var.existing_resource_group_name
1010
}
1111

1212
#######################################################################################################################
1313
# KMS encryption key
1414
#######################################################################################################################
1515

1616
locals {
17+
prefix = (var.prefix != null && trimspace(var.prefix) != "" ? "${var.prefix}-" : "")
1718
create_new_kms_key = var.existing_mongodb_instance_crn == null && !var.use_ibm_owned_encryption_key && var.existing_kms_key_crn == null ? true : false # no need to create any KMS resources if passing an existing key, or using IBM owned keys
18-
mongodb_key_name = var.prefix != null ? "${var.prefix}-${var.key_name}" : var.key_name
19-
mongodb_key_ring_name = var.prefix != null ? "${var.prefix}-${var.key_ring_name}" : var.key_ring_name
19+
mongodb_key_name = "${local.prefix}${var.key_name}"
20+
mongodb_key_ring_name = "${local.prefix}${var.key_ring_name}"
2021
}
2122

2223
module "kms" {
@@ -269,10 +270,10 @@ data "ibm_database_connection" "existing_connection" {
269270
# Create new instance
270271
module "mongodb" {
271272
count = var.existing_mongodb_instance_crn != null ? 0 : 1
272-
source = "../../modules/fscloud"
273+
source = "../.."
273274
depends_on = [time_sleep.wait_for_authorization_policy, time_sleep.wait_for_backup_kms_authorization_policy]
274275
resource_group_id = module.resource_group.resource_group_id
275-
name = (var.prefix != null && var.prefix != "") ? "${var.prefix}-${var.name}" : var.name
276+
name = "${local.prefix}${var.mongodb_name}"
276277
plan = var.plan
277278
region = var.region
278279
mongodb_version = var.mongodb_version
@@ -282,8 +283,8 @@ module "mongodb" {
282283
backup_encryption_key_crn = local.backup_kms_key_crn
283284
use_same_kms_key_for_backups = local.use_same_kms_key_for_backups
284285
use_default_backup_encryption_key = var.use_default_backup_encryption_key
285-
access_tags = var.access_tags
286-
tags = var.tags
286+
access_tags = var.mongodb_access_tags
287+
tags = var.mongodb_tags
287288
admin_pass = local.admin_pass
288289
users = var.users
289290
members = var.members
@@ -294,6 +295,7 @@ module "mongodb" {
294295
auto_scaling = var.auto_scaling
295296
service_credential_names = var.service_credential_names
296297
backup_crn = var.backup_crn
298+
service_endpoints = var.service_endpoints
297299
}
298300

299301
locals {
@@ -365,10 +367,10 @@ locals {
365367

366368
# Build the structure of the arbitrary credential type secret for admin password
367369
admin_pass_secret = [{
368-
secret_group_name = (var.prefix != null && var.prefix != "") && var.admin_pass_secrets_manager_secret_group != null ? "${var.prefix}-${var.admin_pass_secrets_manager_secret_group}" : var.admin_pass_secrets_manager_secret_group
370+
secret_group_name = "${local.prefix}${var.admin_pass_secrets_manager_secret_group}"
369371
existing_secret_group = var.use_existing_admin_pass_secrets_manager_secret_group
370372
secrets = [{
371-
secret_name = (var.prefix != null && var.prefix != "") && var.admin_pass_secrets_manager_secret_name != null ? "${var.prefix}-${var.admin_pass_secrets_manager_secret_name}" : var.admin_pass_secrets_manager_secret_name
373+
secret_name = "${local.prefix}${var.admin_pass_secrets_manager_secret_name}"
372374
secret_type = "arbitrary"
373375
secret_payload_password = local.admin_pass
374376
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)