Skip to content

Commit 1f80075

Browse files
feat: added deployable architecture for IBM catalog(#226)
1 parent b713881 commit 1f80075

16 files changed

+474
-4
lines changed

.catalog-onboard-pipeline.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
apiVersion: v1
3+
offerings:
4+
- name: deploy-arch-secrets-manager-public-cert-engine
5+
kind: solution
6+
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
7+
offering_id: 79d8474b-7105-4c36-81d7-989f042bce0e
8+
variations:
9+
- name: fully-configurable
10+
mark_ready: true
11+
install_type: fullstack
12+
scc:
13+
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
14+
region: us-south

.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
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ No modules.
192192
| <a name="input_ibmcloud_cis_api_key"></a> [ibmcloud\_cis\_api\_key](#input\_ibmcloud\_cis\_api\_key) | Optional, when not using IAM authorization, use an API key for CIS DNS configuration | `string` | `null` | no |
193193
| <a name="input_internet_service_domain_id"></a> [internet\_service\_domain\_id](#input\_internet\_service\_domain\_id) | (optional) Specific domain in the CIS to authorize Secrets Manager access to. | `string` | `null` | no |
194194
| <a name="input_internet_services_crn"></a> [internet\_services\_crn](#input\_internet\_services\_crn) | CRN of the CIS instance to authorize Secrets Manager against | `string` | `null` | no |
195-
| <a name="input_lets_encrypt_environment"></a> [lets\_encrypt\_environment](#input\_lets\_encrypt\_environment) | Let's Encrtyp environment (staging, production) | `string` | `"production"` | no |
195+
| <a name="input_lets_encrypt_environment"></a> [lets\_encrypt\_environment](#input\_lets\_encrypt\_environment) | Let's Encrypt environment (staging, production) | `string` | `"production"` | no |
196196
| <a name="input_private_key_secrets_manager_instance_guid"></a> [private\_key\_secrets\_manager\_instance\_guid](#input\_private\_key\_secrets\_manager\_instance\_guid) | The Secrets Manager instance GUID of the Secrets Manager containing your ACME private key. Required if acme\_letsencrypt\_private\_key is not set. | `string` | `null` | no |
197197
| <a name="input_private_key_secrets_manager_region"></a> [private\_key\_secrets\_manager\_region](#input\_private\_key\_secrets\_manager\_region) | The region of the Secrets Manager instance containing your ACME private key. (Only needed if different from the region variable) | `string` | `null` | no |
198198
| <a name="input_private_key_secrets_manager_secret_id"></a> [private\_key\_secrets\_manager\_secret\_id](#input\_private\_key\_secrets\_manager\_secret\_id) | The secret ID of your ACME private key. Required if acme\_letsencrypt\_private\_key is not set. If both are set, this value will be used as the private key. | `string` | `null` | no |

ibm_catalog.json

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
{
2+
"products": [
3+
{
4+
"name": "deploy-arch-secrets-manager-public-cert-engine",
5+
"label": "Cloud automation for Secrets Manager public certificates engine",
6+
"product_kind": "solution",
7+
"tags": [
8+
"ibm_created",
9+
"target_terraform",
10+
"terraform",
11+
"solution",
12+
"security"
13+
],
14+
"keywords": [
15+
"Public certificates engine",
16+
"Secrets Manager",
17+
"IaC",
18+
"infrastructure as code",
19+
"terraform",
20+
"solution"
21+
],
22+
"short_description": "Creates and configures a Secrets Manager Public Certificates Engine.",
23+
"long_description" : "This deployable architecture is used to configure an Internet Service DNS configuration, establish authorization between Secrets Manager and the Internet Service, and set up Let's Encrypt as the certificate authority. This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) asset collection, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These 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.",
24+
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-secrets-manager-public-cert-engine/blob/main/README.md",
25+
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-secrets-manager-public-cert-engine/main/images/secrets_manager_public_cert_engine.svg",
26+
"provider_name": "IBM",
27+
"features": [
28+
{
29+
"title": "Configures Internet Service DNS",
30+
"description": "Configures Internet Service DNS."
31+
},
32+
{
33+
"title": "Creates Secrets Manager Internet Service authorization",
34+
"description": "Creates authorization between Secrets Manager and Internet Service."
35+
},
36+
{
37+
"title": "Configures Let's Encrypt certificate authority",
38+
"description": "Configures Let's Encrypt certificate authority."
39+
}
40+
],
41+
"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-secrets-manager-public-cert-engine/issues](https://github.com/terraform-ibm-modules/terraform-ibm-secrets-manager-public-cert-engine/issues). Please note this product is not supported via the IBM Cloud Support Center.",
42+
"flavors": [
43+
{
44+
"label": "Fully configurable",
45+
"name": "fully-configurable",
46+
"install_type": "fullstack",
47+
"working_directory": "solutions/fully-configurable",
48+
"architecture": {
49+
"descriptions": "This architecture supports creating and configuring a Secrets Manager Public Certificates Engine.",
50+
"features": [
51+
{
52+
"title": "Internet Service DNS",
53+
"description": "Configures Internet Service DNS configuration."
54+
},
55+
{
56+
"title": "Authorization between Secrets Manager and Internet Service",
57+
"description": "Creates authorization between Secrets Manager and Internet Service."
58+
},
59+
{
60+
"title": "Let's Encrypt certificate authority",
61+
"description": "Provisions a Let's Encrypt certificate authority."
62+
}
63+
],
64+
"diagrams": [
65+
{
66+
"diagram": {
67+
"caption": "Secrets Manager Public Certificates Engine",
68+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-secrets-manager-public-cert-engine/main/reference-architecture/secrets_manager_public_cert_engine.svg",
69+
"type": "image/svg+xml"
70+
},
71+
"description": "This architcture supports creating secrets manager public certificates engine within a secrets manager instance."
72+
}
73+
]
74+
},
75+
"iam_permissions": [
76+
{
77+
"service_name": "iam-access-groups",
78+
"role_crns": [
79+
"crn:v1:bluemix:public:iam::::role:Editor"
80+
]
81+
},
82+
{
83+
"service_name": "iam-identity",
84+
"role_crns": [
85+
"crn:v1:bluemix:public:iam::::role:Operator"
86+
]
87+
},
88+
{
89+
"service_name": "resource-group",
90+
"role_crns": [
91+
"crn:v1:bluemix:public:iam::::role:Viewer"
92+
]
93+
},
94+
{
95+
"service_name": "secrets-manager",
96+
"role_crns": [
97+
"crn:v1:bluemix:public:iam::::serviceRole:Administrator",
98+
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
99+
]
100+
}
101+
],
102+
"configuration": [
103+
{
104+
"key": "ibmcloud_api_key"
105+
},
106+
{
107+
"key": "existing_secrets_manager_crn",
108+
"required": true
109+
},
110+
{
111+
"key": "prefix",
112+
"required": true
113+
},
114+
{
115+
"key": "ibmcloud_cis_api_key"
116+
},
117+
{
118+
"key": "internet_services_crn"
119+
},
120+
{
121+
"key": "internet_services_account_id"
122+
},
123+
{
124+
"key": "internet_service_domain_id"
125+
},
126+
{
127+
"key": "dns_config_name"
128+
},
129+
{
130+
"key": "ca_config_name"
131+
},
132+
{
133+
"key": "lets_encrypt_environment",
134+
"options": [
135+
{
136+
"displayname": "staging",
137+
"value": "staging"
138+
},
139+
{
140+
"displayname": "production",
141+
"value": "production"
142+
}
143+
]
144+
},
145+
{
146+
"key": "acme_letsencrypt_private_key"
147+
},
148+
{
149+
"key":"private_key_secrets_manager_secret_crn"
150+
},
151+
{
152+
"key":"skip_iam_authorization_policy"
153+
}
154+
],
155+
"dependencies": [
156+
{
157+
"name": "deploy-arch-ibm-secrets-manager",
158+
"description":"Configures Secrets Manager instance for the public certificates engine to be provisioned in.",
159+
"id": "6d6ebc76-7bbd-42f5-8bc7-78f4fabd5944-global",
160+
"version": "v2.6.1",
161+
"flavors": [
162+
"fully-configurable"
163+
],
164+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
165+
"optional": true,
166+
"on_by_default": true,
167+
"input_mapping": [
168+
{
169+
"dependency_output": "secrets_manager_crn",
170+
"version_input": "existing_secrets_manager_crn"
171+
}
172+
]
173+
}
174+
],
175+
"dependency_version_2": true
176+
}
177+
]
178+
}
179+
]
180+
}

0 commit comments

Comments
 (0)