Skip to content

Commit 59a9e73

Browse files
feat: created DA solution for IBM catalog (#101)
1 parent 0c1df2a commit 59a9e73

18 files changed

+506
-19
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-ibm-icd-elasticsearch
5+
kind: solution
6+
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
7+
offering_id: 7ee5876d-6e30-49d1-be25-259a442085e8
8+
variations:
9+
- name: secure
10+
mark_ready: true
11+
install_type: fullstack
12+
scc:
13+
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
14+
region: us-south

.github/settings.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ repository:
2626

2727
# Uncomment this topics property
2828
# and add a comma-separated list of topics to set on the repo.
29-
topics: core-team, terraform, ibm-cloud, terraform-module, ibm-database, icd-elasticsearch, elasticsearch, supported, graduated
29+
topics: core-team, terraform, ibm-cloud, terraform-module, ibm-database, icd-elasticsearch, elasticsearch, supported, graduated, deployable-architecture

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

common-dev-assets

ibm_catalog.json

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
{
2+
"products": [
3+
{
4+
"name": "deploy-arch-ibm-icd-elasticsearch",
5+
"label": "Databases for Elasticsearch",
6+
"product_kind": "solution",
7+
"tags": [
8+
"ibm_created",
9+
"target_terraform",
10+
"terraform",
11+
"databases",
12+
"solution"
13+
],
14+
"keywords": [
15+
"elasticsearch",
16+
"IaC",
17+
"infrastructure as code",
18+
"terraform",
19+
"solution",
20+
"elasticsearch secure",
21+
"database",
22+
"nosql"
23+
],
24+
"short_description": "Creates and configures an instance of IBM Cloud Databases for Elasticsearch.",
25+
"long_description": "This architecture supports creating and configuring an Elasticsearch instance with KMS encryption on IBM Cloud.",
26+
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-icd-elasticsearch/blob/main/README.md",
27+
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-icd-elasticsearch/main/images/elasticsearch_icon.svg",
28+
"provider_name": "IBM",
29+
"features": [
30+
{
31+
"title": "Creates an instance of Databases for Elasticsearch.",
32+
"description": "Creates and configures an Elasticsearch instance on the IBM Cloud."
33+
},
34+
{
35+
"title": "Supports KMS encryption",
36+
"description": "Provides the KMS encryption feature."
37+
},
38+
{
39+
"title": "Supports autoscaling",
40+
"description": "Provides the autoscaling feature."
41+
},
42+
{
43+
"title": "Attaches access tags",
44+
"description": "Attaches access tags to the Elasticsearch instance."
45+
}
46+
],
47+
"flavors": [
48+
{
49+
"label": "Secure",
50+
"name": "secure",
51+
"install_type": "fullstack",
52+
"working_directory": "solutions/secure",
53+
"compliance": {
54+
"authority": "scc-v3",
55+
"profiles": [
56+
{
57+
"profile_name": "IBM Cloud Framework for Financial Services",
58+
"profile_version": "1.5.0"
59+
}
60+
]},
61+
"iam_permissions": [
62+
{
63+
"role_crns": [
64+
"crn:v1:bluemix:public:iam::::serviceRole:Editor"
65+
],
66+
"service_name": "databases-for-elasticsearch"
67+
}
68+
],
69+
"architecture": {
70+
"descriptions": "This architecture creates an Elasticsearch instance on IBM Cloud with KMS encryption and supports autoscaling.",
71+
"features": [
72+
{
73+
"title": " Creates an Elasticsearch instance on IBM Cloud.",
74+
"description": "This architecture creates an Elasticsearch instance on IBM Cloud with KMS encryption, supports provisioning of a resource group and provides autoscaling feature."
75+
}
76+
],
77+
"diagrams": [
78+
{
79+
"diagram": {
80+
"caption": "Elasticsearch instance on IBM Cloud",
81+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-icd-elasticsearch/main/reference-architecture/deployable-architecture-elasticsearch.svg",
82+
"type": "image/svg+xml"
83+
},
84+
"description": "This architecture supports creating and configuring an Elasticsearch instance with KMS encryption."
85+
}
86+
]
87+
}
88+
}
89+
]
90+
}
91+
]
92+
}

images/elasticsearch_icon.svg

Lines changed: 18 additions & 0 deletions
Loading

modules/fscloud/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ No resources.
3636
| <a name="input_backup_crn"></a> [backup\_crn](#input\_backup\_crn) | The CRN of a backup resource to restore from. The backup is created by a database deployment with the same service ID. The backup is loaded after provisioning and the new deployment starts up that uses that data. A backup CRN is in the format crn:v1:<…>:backup:. If omitted, the database is provisioned empty. | `string` | `null` | no |
3737
| <a name="input_cbr_rules"></a> [cbr\_rules](#input\_cbr\_rules) | (Optional, list) List of CBR rules to create | <pre>list(object({<br> description = string<br> account_id = string<br> rule_contexts = list(object({<br> attributes = optional(list(object({<br> name = string<br> value = string<br> }))) }))<br> enforcement_mode = string<br> }))</pre> | `[]` | no |
3838
| <a name="input_elasticsearch_version"></a> [elasticsearch\_version](#input\_elasticsearch\_version) | Version of the Elasticsearch instance. If no value is passed, the current preferred version of IBM Cloud Databases is used. | `string` | `null` | no |
39-
| <a name="input_existing_kms_instance_guid"></a> [existing\_kms\_instance\_guid](#input\_existing\_kms\_instance\_guid) | The GUID of the Hyper Protect Crypto Services instance. | `string` | n/a | yes |
39+
| <a name="input_existing_kms_instance_guid"></a> [existing\_kms\_instance\_guid](#input\_existing\_kms\_instance\_guid) | The GUID of the Hyper Protect Crypto Services instance. It is only required while creating authorization policy. | `string` | `null` | no |
4040
| <a name="input_kms_key_crn"></a> [kms\_key\_crn](#input\_kms\_key\_crn) | The root key CRN of the Hyper Protect Crypto Service (HPCS) to use for disk encryption. | `string` | n/a | yes |
4141
| <a name="input_member_cpu_count"></a> [member\_cpu\_count](#input\_member\_cpu\_count) | Allocated dedicated CPU per member. For shared CPU, set to 0. For more information, see https://cloud.ibm.com/docs/databases-for-elasticsearch?topic=databases-for-elasticsearch-resources-scaling | `number` | `0` | no |
4242
| <a name="input_member_disk_mb"></a> [member\_disk\_mb](#input\_member\_disk\_mb) | Allocated disk per-member. For more information, see https://cloud.ibm.com/docs/databases-for-elasticsearch?topic=databases-for-elasticsearch-resources-scaling | `number` | `5120` | no |

modules/fscloud/variables.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,9 @@ variable "kms_key_crn" {
114114
}
115115

116116
variable "existing_kms_instance_guid" {
117-
description = "The GUID of the Hyper Protect Crypto Services instance."
117+
description = "The GUID of the Hyper Protect Crypto Services instance. It is only required while creating authorization policy."
118118
type = string
119+
default = null
119120
}
120121

121122
variable "skip_iam_authorization_policy" {

reference-architecture/deployable-architecture-elasticsearch.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
}

0 commit comments

Comments
 (0)