Skip to content

Commit 4e5157d

Browse files
feat: Dependency support for account settings
* Added dependency support for account settings * Improved catalog experience * update rotation_interval_month default value to 12 in variable definitions and override to 3 in json --------- Co-authored-by: Daniel Butler <dannyeb@gmail.com>
1 parent ddbd9d2 commit 4e5157d

File tree

7 files changed

+137
-215
lines changed

7 files changed

+137
-215
lines changed

cra-config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ CRA_TARGETS:
66
PROFILE_ID: "48279384-3d29-4089-8259-8ed354774b4a" # SCC profile ID (currently set to 'CIS IBM Cloud Foundations Benchmark v1.1.0' '1.1.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.
88
TF_VAR_provider_visibility: "public"
9+
TF_VAR_prefix: "kms-fc"
910
- CRA_TARGET: "solutions/security-enforced" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
1011
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`
1112
PROFILE_ID: "48279384-3d29-4089-8259-8ed354774b4a" # SCC profile ID (currently set to 'CIS IBM Cloud Foundations Benchmark v1.1.0' '1.1.0' profile).
1213
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.
1314
TF_VAR_provider_visibility: "public"
15+
TF_VAR_prefix: "kms-se"

ibm_catalog.json

Lines changed: 81 additions & 203 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"products": [
33
{
44
"name": "deploy-arch-ibm-kms",
5-
"label": "Cloud automation for Key Management Services",
5+
"label": "Cloud automation for Key Protect",
66
"product_kind": "solution",
77
"tags": [
88
"ibm_created",
@@ -22,18 +22,22 @@
2222
"solution"
2323
],
2424
"short_description": "Creates and configures IBM Cloud Key Management resources",
25-
"long_description": "This architecture supports creating and configuring an IBM Key Protect instance, Key Rings, and Keys.",
25+
"long_description": "This architecture supports creating and configuring an IBM Key Protect instance, Key Rings, and Keys. For more details on Key Protect, [see here](https://cloud.ibm.com/docs/key-protect/index.html).",
2626
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/blob/main/solutions/fully-configurable/README.md",
2727
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/main/images/key_protect_icon.svg",
2828
"provider_name": "IBM",
2929
"features": [
3030
{
31-
"title": "Creates a Key Protect instance.",
32-
"description": "Creates and configures a Key Protect instance."
31+
"title": "Creates a Key Protect instance",
32+
"description": "For more details on Key Protect instances, [see here](https://cloud.ibm.com/catalog/services/key-protect#about)."
3333
},
3434
{
3535
"title": "Creates Key Rings and Keys",
36-
"description": "Creates Key Rings and Keys in a KMS instance (Key Protect or HPCS)."
36+
"description": "For more details on Key Rings and Keys in a KMS instance (Key Protect or HPCS), [see here](https://github.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/blob/main/solutions/fully-configurable/DA-keys.md)."
37+
},
38+
{
39+
"title": "Creates Context-Based Restriction rules for Key Protect instance",
40+
"description": "For more details on Context-Based Restriction rules, [see here](https://github.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/blob/main/solutions/fully-configurable/DA-cbr_rules.md)."
3741
}
3842
],
3943
"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-kms-all-inclusive/issues](https://github.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/issues). Please note this product is not supported via the IBM Cloud Support Center.",
@@ -58,7 +62,15 @@
5862
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
5963
"crn:v1:bluemix:public:iam::::role:Editor"
6064
],
61-
"service_name": "kms"
65+
"service_name": "kms",
66+
"notes": "[Optional] Required if you are creating a new Key Protect Instance."
67+
},
68+
{
69+
"role_crns": [
70+
"crn:v1:bluemix:public:iam::::role:Administrator"
71+
],
72+
"service_name": "iam-identity",
73+
"notes": "[Optional] Required if Cloud automation for account configuration is enabled."
6274
}
6375
],
6476
"configuration": [
@@ -67,7 +79,9 @@
6779
},
6880
{
6981
"key": "existing_resource_group_name",
70-
"required": true,
82+
"display_name": "resource_group",
83+
"required": false,
84+
"default_value": "Default",
7185
"custom_config": {
7286
"type": "resource_group",
7387
"grouping": "deployment",
@@ -143,11 +157,15 @@
143157
"displayname": "public-and-private",
144158
"value": "public-and-private"
145159
}
146-
]
160+
],
161+
"hidden": true
147162
},
148163
{
149164
"key": "key_protect_instance_name"
150165
},
166+
{
167+
"key": "existing_kms_instance_crn"
168+
},
151169
{
152170
"key": "key_protect_plan",
153171
"options": [
@@ -162,46 +180,15 @@
162180
]
163181
},
164182
{
165-
"key": "key_protect_allowed_network",
166-
"options": [
167-
{
168-
"displayname": "Public and private",
169-
"value": "public-and-private"
170-
},
171-
{
172-
"displayname": "Private only",
173-
"value": "private-only"
174-
}
175-
]
176-
},
177-
{
178-
"key": "key_protect_resource_tags",
179-
"custom_config": {
180-
"grouping": "deployment",
181-
"original_grouping": "deployment",
182-
"config_constraints": {
183-
"type": "string"
184-
}
185-
}
186-
},
187-
{
188-
"key": "key_protect_access_tags",
189-
"custom_config": {
190-
"grouping": "deployment",
191-
"original_grouping": "deployment",
192-
"config_constraints": {
193-
"type": "string"
194-
}
195-
}
196-
},
197-
{
198-
"key": "rotation_interval_month"
183+
"key": "keys"
199184
},
200185
{
201-
"key": "existing_kms_instance_crn"
186+
"key": "rotation_interval_month",
187+
"default_value": 3
202188
},
203189
{
204190
"key": "kms_endpoint_type",
191+
"hidden": true,
205192
"options": [
206193
{
207194
"displayname": "Public",
@@ -214,157 +201,15 @@
214201
]
215202
},
216203
{
217-
"key": "keys"
218-
},
219-
{
220-
"key": "key_protect_instance_cbr_rules"
221-
}
222-
],
223-
"architecture": {
224-
"descriptions": "This architecture supports creating and configuring an Key Protect instance.",
225-
"features": [
226-
{
227-
"title": "Creates a Key Protect instance.",
228-
"description": "Creates and configures a Key Protect instance."
229-
},
230-
{
231-
"title": "Creates Key Rings and Keys",
232-
"description": "Creates Key Rings and Keys in a KMS instance (Key Protect or HPCS)."
233-
}
234-
],
235-
"diagrams": [
236-
{
237-
"diagram": {
238-
"caption": "IBM Key Management Services",
239-
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/main/reference-architecture/key_protect.svg",
240-
"type": "image/svg+xml"
241-
},
242-
"description": "This architecture supports creating and configuring IBM Key Management resources"
243-
}
244-
]
245-
}
246-
},
247-
{
248-
"label": "Security enforced",
249-
"name": "security-enforced",
250-
"install_type": "fullstack",
251-
"working_directory": "solutions/security-enforced",
252-
"compliance": {
253-
"authority": "scc-v3",
254-
"profiles": [
255-
{
256-
"profile_name": "CIS IBM Cloud Foundations Benchmark v1.1.0",
257-
"profile_version": "1.1.0"
258-
}
259-
]
260-
},
261-
"iam_permissions": [
262-
{
263-
"role_crns": [
264-
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
265-
"crn:v1:bluemix:public:iam::::role:Editor"
266-
],
267-
"service_name": "kms"
268-
}
269-
],
270-
"configuration": [
271-
{
272-
"key": "ibmcloud_api_key"
273-
},
274-
{
275-
"key": "existing_resource_group_name",
276-
"required": true,
277-
"custom_config": {
278-
"type": "resource_group",
279-
"grouping": "deployment",
280-
"original_grouping": "deployment",
281-
"config_constraints": {
282-
"identifier": "rg_name"
283-
}
284-
}
285-
},
286-
{
287-
"key": "region",
288-
"required": true,
289-
"default_value": "",
290-
"options": [
291-
{
292-
"displayname": "Dallas (us-south)",
293-
"value": "us-south"
294-
},
295-
{
296-
"displayname": "Frankfurt (eu-de)",
297-
"value": "eu-de"
298-
},
299-
{
300-
"displayname": "London (eu-gb)",
301-
"value": "eu-gb"
302-
},
303-
{
304-
"displayname": "Madrid (eu-es)",
305-
"value": "eu-es"
306-
},
307-
{
308-
"displayname": "Osaka (jp-osa)",
309-
"value": "jp-osa"
310-
},
311-
{
312-
"displayname": "Sao Paulo (br-sao)",
313-
"value": "br-sao"
314-
},
315-
{
316-
"displayname": "Sydney (au-syd)",
317-
"value": "au-syd"
318-
},
319-
{
320-
"displayname": "Tokyo (jp-tok)",
321-
"value": "jp-tok"
322-
},
323-
{
324-
"displayname": "Toronto (ca-tor)",
325-
"value": "ca-tor"
326-
},
327-
{
328-
"displayname": "Washington (us-east)",
329-
"value": "us-east"
330-
}
331-
]
332-
},
333-
{
334-
"key": "prefix",
335-
"required": true,
336-
"description": "The prefix to add to all resources that this solution creates. To not use any prefix value, you can enter the string `__NULL__`."
337-
},
338-
{
339-
"key": "provider_visibility",
204+
"key": "key_protect_allowed_network",
340205
"options": [
341206
{
342-
"displayname": "private",
343-
"value": "private"
344-
},
345-
{
346-
"displayname": "public",
347-
"value": "public"
348-
},
349-
{
350-
"displayname": "public-and-private",
207+
"displayname": "Public and private",
351208
"value": "public-and-private"
352-
}
353-
]
354-
},
355-
{
356-
"key": "key_protect_instance_name"
357-
},
358-
{
359-
"key": "key_protect_plan",
360-
"options": [
361-
{
362-
"displayname": "Tiered Pricing",
363-
"value": "tiered-pricing"
364209
},
365210
{
366-
"displayname": "Cross Region Resiliency",
367-
"value": "cross-region-resiliency"
211+
"displayname": "Private only",
212+
"value": "private-only"
368213
}
369214
]
370215
},
@@ -388,29 +233,24 @@
388233
}
389234
}
390235
},
391-
{
392-
"key": "rotation_interval_month"
393-
},
394-
{
395-
"key": "existing_kms_instance_crn"
396-
},
397-
{
398-
"key": "keys"
399-
},
400236
{
401237
"key": "key_protect_instance_cbr_rules"
402238
}
403239
],
404240
"architecture": {
405-
"descriptions": "This architecture supports creating and configuring an Key Protect instance.",
241+
"description": "This architecture supports creating and configuring a Key Protect instance.",
406242
"features": [
407243
{
408-
"title": "Creates a Key Protect instance.",
244+
"title": "Key Protect instance",
409245
"description": "Creates and configures a Key Protect instance."
410246
},
411247
{
412-
"title": "Creates Key Rings and Keys",
413-
"description": "Creates Key Rings and Keys in a KMS instance (Key Protect or HPCS)."
248+
"title": "Key Rings and Keys",
249+
"description": "Creates Key Rings and Keys for either Key Protect or Hyper Protect Crypto Services instances."
250+
},
251+
{
252+
"title": "Context-Based Restriction rules",
253+
"description": "Creates Context-Based Restriction rules for Key Protect instance."
414254
}
415255
],
416256
"diagrams": [
@@ -420,10 +260,48 @@
420260
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-kms-all-inclusive/main/reference-architecture/key_protect.svg",
421261
"type": "image/svg+xml"
422262
},
423-
"description": "This architecture supports creating and configuring IBM Key Management resources"
263+
"description": ""
424264
}
425265
]
266+
},
267+
"dependencies": [
268+
{
269+
"name": "deploy-arch-ibm-account-infra-base",
270+
"description": "This module prepares your IBM Cloud account with the necessary configurations to ensure a secure and organized environment for your architecture.",
271+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
272+
"flavors": [
273+
"resource-group-only",
274+
"resource-groups-with-account-settings"
275+
],
276+
"default_flavor": "resource-group-only",
277+
"id": "63641cec-6093-4b4f-b7b0-98d2f4185cd6-global",
278+
"input_mapping": [
279+
{
280+
"dependency_output": "security_resource_group_name",
281+
"version_input": "existing_resource_group_name"
282+
},
283+
{
284+
"dependency_input": "prefix",
285+
"version_input": "prefix",
286+
"reference_version": true
287+
},
288+
{
289+
"dependency_input": "provider_visibility",
290+
"version_input": "provider_visibility",
291+
"reference_version": true
292+
},
293+
{
294+
"version_input": "use_existing_resource_group",
295+
"value": true
296+
}
297+
],
298+
"optional": true,
299+
"on_by_default": false,
300+
"version": "v3.0.4"
426301
}
302+
],
303+
"dependency_version_2": true,
304+
"terraform_version": "1.10.5"
427305
}
428306
]
429307
}

0 commit comments

Comments
 (0)