Skip to content

Commit d9831fb

Browse files
authored
feat: DA refactor:<br>- The standard variation has been removed and replace by a new Full configurable variation. This new variation is configured with add-ons. (#86)
BREAKING CHANGE: There is no migration path from the `standard` variation to the `Full configurable` variation
1 parent a15446e commit d9831fb

16 files changed

+355
-107
lines changed

.catalog-onboard-pipeline.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ offerings:
66
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
77
offering_id: 30a698d4-ab56-4668-bc01-03cd2135d7e4
88
variations:
9-
- name: standard
9+
- name: fully-configurable
1010
mark_ready: true
1111
install_type: fullstack
1212
scc:
1313
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
1414
region: us-south
15+
scope_resource_group_var_name: existing_resource_group_name

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,5 @@ terraform.rc
5252

5353
# Visual Studio Code
5454
.vscode/
55+
*.code-workspace
56+
**/*.svg.bkp

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Update status and "latest release" badges:
1010
NOTE: This feature is incubating and ONLY available in eu-fr2 region for validation.
1111
DO NOT mark this module as stable/supported BEFORE the feature is GA world wide.
1212
-->
13-
[![Incubating (Not yet consumable)](https://img.shields.io/badge/status-Incubating%20(Not%20yet%20consumable)-red)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)
13+
[![Stable (With quality checks)](https://img.shields.io/badge/Status-Stable%20(With%20quality%20checks)-green)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)
1414
[![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-mq-cloud?logo=GitHub&sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/releases/latest)
1515
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
1616
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)
@@ -143,6 +143,11 @@ statement instead the previous block.
143143

144144
<!-- No permissions are needed to run this module.-->
145145

146+
- IAM services
147+
- **mqcloud** service
148+
- `Editor` platform access
149+
- `Manager` service access
150+
146151

147152
<!-- The following content is automatically populated by the pre-commit hook -->
148153
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

cra-config.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# More info about this file at https://github.com/terraform-ibm-modules/common-pipeline-assets/blob/main/.github/workflows/terraform-test-pipeline.md#cra-config-yaml
22
version: "v1"
33
CRA_TARGETS:
4-
- CRA_TARGET: "solutions/standard" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
4+
- CRA_TARGET: "solutions/fully-configurable" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
55
CRA_IGNORE_RULES_FILE: "cra-tf-validate-ignore-rules.json" # CRA Ignore file to use. If not provided, it checks the repo root directory for `cra-tf-validate-ignore-rules.json`
66
PROFILE_ID: "fe96bd4d-9b37-40f2-b39f-a62760e326a3" # SCC profile ID (currently set to 'IBM Cloud Framework for Financial Services' '1.7.0' profile).
77
CRA_ENVIRONMENT_VARIABLES: # An optional map of environment variables for CRA, where the key is the variable name and value is the value. Useful for providing TF_VARs.
8+
TF_VAR_prefix: "cra"
89
TF_VAR_existing_mq_capacity_crn: "crn:v1:bluemix:public:mqcloud:us-east:a/abac0df06b644a9cabc6e44f55b3880e:9d9a3c00-2097-4da4-a5e4-78e06514b342::"
9-
TF_VAR_resource_group_name: "test"
10+
TF_VAR_existing_resource_group_name: "Default"
1011
TF_VAR_deployment_name: "deployment"
1112
TF_VAR_queue_manager_name: "qm"
1213
TF_VAR_queue_manager_display_name: "qm-display"
14+
TF_VAR_provider_visibility: "public"

ibm_catalog.json

Lines changed: 200 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,40 @@
99
"integration",
1010
"target_terraform",
1111
"terraform",
12-
"solution"
12+
"solution",
13+
"application_modernization"
1314
],
1415
"keywords": [
1516
"MQ",
1617
"MQ on Cloud",
1718
"IaC",
1819
"infrastructure as code",
1920
"terraform",
20-
"solution"
21+
"solution",
22+
"application_modernization"
2123
],
22-
"short_description": "Creates and configures IBM Cloud MQ on Cloud resources",
23-
"long_description": "This architecture supports creating and configuring an IBM MQ on Cloud deployment instance and queue manager.",
24-
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/blob/main/solutions/standard/README.md",
24+
"short_description": "Cloud architecture including instance of IBM Cloud MQ on Cloud with essential security and observability cloud services",
25+
"long_description": "IBM Cloud MQ on Cloud is an end-to-end solution to building and running secure queue managers.<br/>This architecture supports deploying an instance of MQ on Cloud on cloud together with optional security and observability cloud services.<br/>br/>ℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
26+
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/blob/main/solutions/fully-configurable/README.md",
2527
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-mq-cloud/main/images/MQ.svg",
2628
"provider_name": "IBM",
2729
"features": [
2830
{
29-
"title": "Creates an MQ on Cloud deployment instance.",
30-
"description": "Creates and configures an MQ on Cloud deployment Protect instance."
31+
"title": "Supports building, deploying and running IBM Cloud MQ on Cloud",
32+
"description": "Supports building, deploying and running IBM Cloud MQ on Cloud"
33+
},
34+
{
35+
"title": "Supports deploying of optional essential security and observability cloud services",
36+
"description": "Supports deploying an instance of IBM Cloud MQ on Cloud together with optional security and observability cloud services"
3137
}
3238
],
3339
"support_details": "This product is in the community registry, as such support is handled through the originated repo. If you experience issues please open an issue in that repository [https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/issues](https://github.com/terraform-ibm-modules/terraform-ibm-mq-cloud/issues). Please note this product is not supported via the IBM Cloud Support Center.",
3440
"flavors": [
3541
{
36-
"label": "Standard",
37-
"name": "standard",
42+
"label": "Fully configurable",
43+
"name": "fully-configurable",
3844
"install_type": "fullstack",
39-
"working_directory": "solutions/standard",
45+
"working_directory": "solutions/fully-configurable",
4046
"iam_permissions": [
4147
{
4248
"role_crns": [
@@ -46,27 +52,188 @@
4652
"service_name": "mqcloud"
4753
}
4854
],
55+
"dependencies": [
56+
{
57+
"name": "deploy-arch-ibm-secrets-manager",
58+
"description": "Enable to provisions and configures IBM Cloud Secrets Manager for securely storing generated secrets.",
59+
"id": "6d6ebc76-7bbd-42f5-8bc7-78f4fabd5944-global",
60+
"flavors": [
61+
"fully-configurable"
62+
],
63+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
64+
"version": "v2.6.1",
65+
"optional": true,
66+
"on_by_default": true,
67+
"default_flavor": "fully-configurable",
68+
"input_mapping": [
69+
{
70+
"reference_version": true,
71+
"dependency_input": "prefix",
72+
"version_input": "prefix"
73+
},
74+
{
75+
"dependency_output": "secrets_manager_crn",
76+
"version_input": "existing_secrets_manager_crn"
77+
},
78+
{
79+
"value": "us-south",
80+
"dependency_input": "region"
81+
}
82+
]
83+
},
84+
{
85+
"name": "deploy-arch-ibm-observability",
86+
"description": "Configure IBM Cloud Logs, Cloud Monitoring and Activity Tracker event routing for analysing logs and metrics generated by the MQ on Cloud instance.",
87+
"flavors": [
88+
"instances"
89+
],
90+
"id": "a3137d28-79e0-479d-8a24-758ebd5a0eab-global",
91+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
92+
"input_mapping": [
93+
{
94+
"dependency_input": "prefix",
95+
"version_input": "prefix",
96+
"reference_version": true
97+
},
98+
{
99+
"dependency_input": "enable_platform_metrics",
100+
"version_input": "enable_platform_metrics",
101+
"reference_version": true
102+
},
103+
{
104+
"dependency_input": "logs_routing_tenant_regions",
105+
"version_input": "logs_routing_tenant_regions",
106+
"reference_version": true
107+
},
108+
{
109+
"dependency_input": "region",
110+
"version_input": "region",
111+
"reference_version": true
112+
}
113+
],
114+
"optional": true,
115+
"on_by_default": true,
116+
"version": "v3.0.3"
117+
},
118+
{
119+
"name": "deploy-arch-ibm-account-infra-base",
120+
"description": "Cloud automation for account configuration organizes your IBM Cloud account with a ready-made set of resource groups by default. When you enable the “with account settings” option, it also applies baseline security and governance settings.",
121+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
122+
"flavors": [
123+
"resource-group-only",
124+
"resource-groups-with-account-settings"
125+
],
126+
"default_flavor": "resource-group-only",
127+
"id": "63641cec-6093-4b4f-b7b0-98d2f4185cd6-global",
128+
"input_mapping": [
129+
{
130+
"dependency_input": "prefix",
131+
"version_input": "prefix",
132+
"reference_version": true
133+
},
134+
{
135+
"dependency_output": "workload_resource_group_name",
136+
"version_input": "existing_resource_group_name"
137+
}
138+
],
139+
"optional": true,
140+
"on_by_default": false,
141+
"version": "v3.0.7"
142+
}
143+
],
144+
"dependency_version_2": true,
49145
"configuration": [
50146
{
51147
"key": "ibmcloud_api_key"
52148
},
53149
{
54-
"key": "use_existing_resource_group"
150+
"key": "provider_visibility",
151+
"hidden": true,
152+
"options": [
153+
{
154+
"displayname": "private",
155+
"value": "private"
156+
},
157+
{
158+
"displayname": "public",
159+
"value": "public"
160+
},
161+
{
162+
"displayname": "public-and-private",
163+
"value": "public-and-private"
164+
}
165+
]
55166
},
56167
{
57-
"key": "resource_group_name",
58-
"required": true
168+
"key": "existing_resource_group_name",
169+
"display_name": "resource_group",
170+
"custom_config": {
171+
"type": "resource_group",
172+
"grouping": "deployment",
173+
"original_grouping": "deployment",
174+
"config_constraints": {
175+
"identifier": "rg_name"
176+
}
177+
}
59178
},
60179
{
61180
"key": "region",
62181
"required": true,
63-
"default_value": "us-east"
182+
"options": [
183+
{
184+
"displayname": "Washington (us-east)",
185+
"value": "us-east"
186+
},
187+
{
188+
"displayname": "Dallas (us-south)",
189+
"value": "us-south"
190+
},
191+
{
192+
"displayname": "London (eu-gb)",
193+
"value": "eu-gb"
194+
},
195+
{
196+
"displayname": "Frankfurt (eu-de)",
197+
"value": "eu-de"
198+
}
199+
]
200+
},
201+
{
202+
"key": "prefix",
203+
"required": true
204+
},
205+
{
206+
"key": "enable_platform_metrics",
207+
"type": "string",
208+
"default_value": "true",
209+
"description": "When set to `true`, the IBM Cloud Monitoring instance will be configured to collect platform metrics from the provided region. You can configure 1 instance only of the IBM Cloud Monitoring service per region to collect platform metrics in that location. Check with the account or service administrator if another monitoring instance has already been configured. You may not have permissions to see all monitoring instances in the region. [Learn more](https://cloud.ibm.com/docs/monitoring?topic=monitoring-platform_metrics_enabling).",
210+
"required": true,
211+
"virtual": true
64212
},
65213
{
66-
"key": "resource_tags"
214+
"key": "logs_routing_tenant_regions",
215+
"type": "list(string)",
216+
"default_value": "[]",
217+
"description": "To manage platform logs that are generated by IBM Cloud services in a region of IBM Cloud, you must create a tenant in each region that you operate. Pass a list of regions to create a tenant in. [Learn more](https://cloud.ibm.com/docs/logs-router?topic=logs-router-about-platform-logs).",
218+
"required": true,
219+
"virtual": true,
220+
"custom_config": {
221+
"grouping": "deployment",
222+
"original_grouping": "deployment",
223+
"config_constraints": {
224+
"type": "string"
225+
}
226+
}
67227
},
68228
{
69-
"key": "prefix"
229+
"key": "resource_tags",
230+
"custom_config": {
231+
"grouping": "deployment",
232+
"original_grouping": "deployment",
233+
"config_constraints": {
234+
"type": "string"
235+
}
236+
}
70237
},
71238
{
72239
"key": "existing_mq_capacity_crn",
@@ -124,7 +291,21 @@
124291
"key": "existing_secrets_manager_crn"
125292
},
126293
{
127-
"key": "secrets_manager_endpoint_type"
294+
"key": "secrets_manager_ibmcloud_api_key"
295+
},
296+
{
297+
"key": "secrets_manager_endpoint_type",
298+
"hidden": true,
299+
"options": [
300+
{
301+
"displayname": "Public",
302+
"value": "public"
303+
},
304+
{
305+
"displayname": "Private",
306+
"value": "private"
307+
}
308+
]
128309
},
129310
{
130311
"key": "existing_secret_group_id"
@@ -136,12 +317,8 @@
136317
"architecture": {
137318
"features": [
138319
{
139-
"title": "Creates an MQ on Cloud deployment instance.",
140-
"description": "Creates and configures an MQ on Cloud deployment instance."
141-
},
142-
{
143-
"title": "Creates a queue manager",
144-
"description": "Creates a queue manager"
320+
"title": " ",
321+
"description": "Configured to use IBM secure by default standards, but can be edited to fit your use case."
145322
}
146323
],
147324
"diagrams": [

reference-architecture/deployable-architecture-mqcloud.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Cloud automation for MQ on Cloud (Fully configurable)
2+
3+
:exclamation: **Important:** This solution is not intended to be called by other modules because it contains a provider configuration and is not compatible with the `for_each`, `count`, and `depends_on` arguments. For more information, see [Providers Within Modules](https://developer.hashicorp.com/terraform/language/modules/develop/providers).

solutions/standard/catalogValidationValues.json.template renamed to solutions/fully-configurable/catalogValidationValues.json.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"ibmcloud_api_key": $VALIDATION_APIKEY,
33
"region": "us-east",
4-
"resource_group_name": $PREFIX,
4+
"existing_resource_group_name": "geretain-test-resources",
55
"existing_mq_capacity_crn": $MQ_CAPACITY_CRN,
66
"deployment_name": $PREFIX,
77
"queue_manager_name": "da_qm",

0 commit comments

Comments
 (0)