Skip to content

Commit 98c1073

Browse files
authored
feat: Added Secrets Manager DA to IBM catalog (#54)
1 parent 20517f9 commit 98c1073

19 files changed

+454
-8
lines changed

.catalog-onboard-pipeline.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
apiVersion: v1
3+
offerings:
4+
- name: deploy-arch-ibm-secrets-manager
5+
kind: solution
6+
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
7+
offering_id: 6d6ebc76-7bbd-42f5-8bc7-78f4fabd5944
8+
variations:
9+
- name: standard
10+
mark_ready: true
11+
install_type: fullstack

.releaserc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
}],
1111
["@semantic-release/exec", {
1212
"successCmd": "echo \"SEMVER_VERSION=${nextRelease.version}\" >> $GITHUB_ENV"
13+
}],
14+
["@semantic-release/exec",{
15+
"publishCmd": "./ci/trigger-catalog-onboarding-pipeline.sh --version=v${nextRelease.version}"
1316
}]
1417
]
1518
}

.secrets.baseline

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.sum|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2023-12-11T14:47:09Z",
6+
"generated_at": "2024-03-11T11:41:39Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -82,7 +82,7 @@
8282
"hashed_secret": "33da8d0e8af2efc260f01d8e5edfcc5c5aba44ad",
8383
"is_secret": true,
8484
"is_verified": false,
85-
"line_number": 32,
85+
"line_number": 34,
8686
"type": "Secret Keyword",
8787
"verified_result": null
8888
}

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ This module is used to provision and configure an IBM Cloud [Secrets Manager](ht
2222
* [Contributing](#contributing)
2323
<!-- END OVERVIEW HOOK -->
2424

25+
## Reference architectures
26+
- [Secrets Manager - Standard variation](https://github.com/terraform-ibm-modules/terraform-ibm-secrets-manager/tree/main/solutions/standard)
2527

2628
## terraform-ibm-secrets-manager
2729

@@ -106,7 +108,10 @@ You need the following permissions to run this module.
106108

107109
| Name | Description |
108110
|------|-------------|
109-
| <a name="output_secrets_manager_guid"></a> [secrets\_manager\_guid](#output\_secrets\_manager\_guid) | GUID of Secrets-Manager instance |
111+
| <a name="output_secrets_manager_crn"></a> [secrets\_manager\_crn](#output\_secrets\_manager\_crn) | CRN of the Secrets Manager instance |
112+
| <a name="output_secrets_manager_guid"></a> [secrets\_manager\_guid](#output\_secrets\_manager\_guid) | GUID of Secrets Manager instance |
113+
| <a name="output_secrets_manager_id"></a> [secrets\_manager\_id](#output\_secrets\_manager\_id) | ID of the Secrets Manager instance |
114+
| <a name="output_secrets_manager_name"></a> [secrets\_manager\_name](#output\_secrets\_manager\_name) | Name of the Secrets Manager instance |
110115
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
111116

112117
<!-- Leave this section as is so that your module has a link to local development environment set up steps for contributors to follow -->

ibm_catalog.json

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
{
2+
"products": [
3+
{
4+
"name": "deploy-arch-ibm-secrets-manager",
5+
"label": "Secrets Manager",
6+
"product_kind": "solution",
7+
"tags": [
8+
"ibm_created",
9+
"target_terraform",
10+
"terraform",
11+
"solution",
12+
"security"
13+
],
14+
"keywords": [
15+
"Secrets",
16+
"Secrets Manager",
17+
"IaC",
18+
"infrastructure as code",
19+
"terraform",
20+
"solution"
21+
],
22+
"short_description": "Creates and configures a Secrets Manager instance.",
23+
"long_description": "This solution is used to provision and configure an IBM Cloud Secrets Manager instance.",
24+
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-secrets-manager/blob/main/solutions/standard/README.md",
25+
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-secrets-manager/main/images/secrets_manager.svg",
26+
"provider_name": "IBM",
27+
"features": [
28+
{
29+
"title": "Creates a Secrets Manager instance.",
30+
"description": "Creates an IBM Secrets Manager instance."
31+
},
32+
{
33+
"title": "Sets up authorization policy.",
34+
"description": "Sets up IBM IAM authorization policy between IBM Secrets Manager instance and IBM Key Management Service (KMS) instance. It also supports Event Notification authorization policy."
35+
},
36+
{
37+
"title": "Configures lifecycle notifications for the Secrets Manager instance.",
38+
"description": "Configures lifecycle notifications for the IBM Secrets Manager instance by connecting an IBM Event Notifications service. The DA supports optionally creating a KMS key ring and key, or using an already existing one to encrypt data."
39+
}
40+
],
41+
"flavors": [
42+
{
43+
"label": "Standard",
44+
"name": "standard",
45+
"install_type": "fullstack",
46+
"working_directory": "solutions/standard",
47+
"compliance": {
48+
"authority": "scc-v3",
49+
"profiles": [
50+
{
51+
"profile_name": "IBM Cloud Framework for Financial Services",
52+
"profile_version": "1.5.0"
53+
}
54+
]
55+
},
56+
"architecture": {
57+
"descriptions": "This architecture supports creating and configuring a Secrets Manager instance.",
58+
"features": [
59+
{
60+
"title": "Creates a Secrets Manager instance.",
61+
"description": "Creates and configures an IBM Secrets Manager instance."
62+
},
63+
{
64+
"title": "Sets up authorization policy.",
65+
"description": "Sets up IBM IAM authorization policy between IBM Secrets Manager instance and IBM Key Management Service (KMS) instance. It also supports Event Notification authorization policy."
66+
},
67+
{
68+
"title": "Configures lifecycle notifications for the Secrets Manager instance.",
69+
"description": "Configures lifecycle notifications for the IBM Secrets Manager instance by connecting an IBM Event Notifications service. The DA supports optionally creating a KMS key ring and key, or using an already existing one to encrypt data."
70+
}
71+
],
72+
"diagrams": [
73+
{
74+
"diagram": {
75+
"caption": "Secrets Manager",
76+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-secrets-manager/main/reference-architecture/secrets_manager.svg",
77+
"type": "image/svg+xml"
78+
},
79+
"description": "This architecture supports creating and configuring IBM Secrets Manager instance."
80+
}
81+
]
82+
}
83+
}
84+
]
85+
}
86+
]
87+
}

images/secrets_manager.svg

Lines changed: 1 addition & 0 deletions
Loading

outputs.tf

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,22 @@
44

55
output "secrets_manager_guid" {
66
value = local.secrets_manager_guid
7-
description = "GUID of Secrets-Manager instance"
7+
description = "GUID of Secrets Manager instance"
8+
}
9+
10+
output "secrets_manager_id" {
11+
value = ibm_resource_instance.secrets_manager_instance.id
12+
description = "ID of the Secrets Manager instance"
13+
}
14+
15+
output "secrets_manager_name" {
16+
value = ibm_resource_instance.secrets_manager_instance.name
17+
description = "Name of the Secrets Manager instance"
18+
}
19+
20+
output "secrets_manager_crn" {
21+
value = ibm_resource_instance.secrets_manager_instance.crn
22+
description = "CRN of the Secrets Manager instance"
823
}
924

1025
##############################################################################

reference-architecture/secrets_manager.svg

Lines changed: 4 additions & 0 deletions
Loading

renovate.json

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3-
"extends": ["github>terraform-ibm-modules/common-dev-assets:commonRenovateConfig"]
3+
"extends": ["github>terraform-ibm-modules/common-dev-assets:commonRenovateConfig"],
4+
"packageRules": [
5+
{
6+
"description": "Allow the locked in provider version to be updated to the latest for deployable architectures",
7+
"enabled": true,
8+
"matchFileNames": ["solutions/**"],
9+
"matchManagers": ["terraform"],
10+
"matchDepTypes": ["required_provider"],
11+
"rangeStrategy": "bump",
12+
"semanticCommitType": "fix",
13+
"group": true,
14+
"groupName": "required_provider",
15+
"commitMessageExtra": "to latest for the deployable architecture solution"
16+
}
17+
]
418
}

solutions/standard/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Secrets Manager solution
2+
3+
This solution supports the following:
4+
- Creating a new resource group, or taking in an existing one.
5+
- Provisioning and configuring of a Secrets Manager instance.
6+
- Configuring KMS encryption using a newly created key, or passing an existing key.
7+
8+
**NB:** This solution is not intended to be called by one or more other modules since it contains a provider configurations, meaning it 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)

0 commit comments

Comments
 (0)