Skip to content

Commit c131db2

Browse files
arya-girish-kArya Girish Kmaheshwarishikha
authored
feat: added Quickstart variation of OCP DA (#738)
* feat: Quickstart OCP DA * Updated catalog,variables.tf,main.tf,pr_test.go * Added catalogValidationValues.json.template * fix: Resolved pipeline error * Removed log file * fix: Defined Resourcegroup in pr_test * Resolved precommit error * updated code * Removed logfile * Addressed review comments * Updated catalog * SKIP UPGRADE TEST * Updated permission * Addressed review comments * Adressed review comments * Addressed review comments * Addressed review comments * Updated code * Addressed comments * Updated decsription * Addressed review comments * Updated diagram * Addressed review comments * Updated mark down file and variable.tf * resolved review comments * addressed review comments * Update ibm_catalog.json Co-authored-by: Shikha Maheshwari <[email protected]> * Update ibm_catalog.json Co-authored-by: Shikha Maheshwari <[email protected]> * Update solutions/quickstart/variables.tf Co-authored-by: Shikha Maheshwari <[email protected]> * Addressed comments * Updated catalog validation,resource_group an output.tf * Resolved precommit error --------- Co-authored-by: Arya Girish K <[email protected]> Co-authored-by: Shikha Maheshwari <[email protected]>
1 parent e8756a6 commit c131db2

File tree

14 files changed

+621
-4
lines changed

14 files changed

+621
-4
lines changed

.catalog-onboard-pipeline.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@ offerings:
1515
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
1616
region: us-south
1717
scope_resource_group_var_name: existing_resource_group_name
18+
- name: quickstart
19+
mark_ready: true
20+
install_type: fullstack

.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": "2025-05-14T17:28:16Z",
6+
"generated_at": "2025-07-31T06:11:34Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -82,7 +82,7 @@
8282
"hashed_secret": "8196b86ede820e665b2b8af9c648f4996be99838",
8383
"is_secret": false,
8484
"is_verified": false,
85-
"line_number": 65,
85+
"line_number": 89,
8686
"type": "Secret Keyword",
8787
"verified_result": null
8888
}

ibm_catalog.json

Lines changed: 212 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
{
6767
"label": "Fully configurable",
6868
"name": "fully-configurable",
69-
"index": 1,
69+
"index": 2,
7070
"install_type": "fullstack",
7171
"working_directory": "solutions/fully-configurable",
7272
"compliance": {
@@ -1007,6 +1007,217 @@
10071007
],
10081008
"dependency_version_2": true,
10091009
"terraform_version": "1.10.5"
1010+
},
1011+
{
1012+
"label": "QuickStart",
1013+
"name": "quickstart",
1014+
"index": 1,
1015+
"install_type": "fullstack",
1016+
"working_directory": "solutions/quickstart",
1017+
"iam_permissions": [
1018+
{
1019+
"service_name": "containers-kubernetes",
1020+
"role_crns": [
1021+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
1022+
"crn:v1:bluemix:public:iam::::role:Administrator"
1023+
],
1024+
"notes": "Required to reset the cluster API key, create and edit the OpenShift cluster, and manage all related resources."
1025+
},
1026+
{
1027+
"service_name": "iam-identity",
1028+
"role_crns": [
1029+
"crn:v1:bluemix:public:iam::::role:Administrator",
1030+
"crn:v1:bluemix:public:iam-identity::::serviceRole:UserApiKeyCreator"
1031+
],
1032+
"notes": "Required to create the cluster API key needed by the OpenShift cluster on IBM Cloud and for managing and operating resources within the IBM Cloud environment."
1033+
},
1034+
{
1035+
"service_name": "is.vpc",
1036+
"role_crns": [
1037+
"crn:v1:bluemix:public:iam::::role:Editor"
1038+
],
1039+
"notes": "Required for creating Virtual Private Cloud (VPC)."
1040+
},
1041+
{
1042+
"service_name": "cloud-object-storage",
1043+
"role_crns": [
1044+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
1045+
"crn:v1:bluemix:public:iam::::role:Editor"
1046+
],
1047+
"notes": "Required for creating the OpenShift cluster's internal registry storage bucket."
1048+
},
1049+
{
1050+
"role_crns": [
1051+
"crn:v1:bluemix:public:iam::::role:Viewer"
1052+
],
1053+
"service_name": "Resource group only",
1054+
"notes":"Viewer access is required in the resource group you want to provision in."
1055+
}
1056+
],
1057+
"architecture": {
1058+
"features": [
1059+
{
1060+
"title": " ",
1061+
"description": "Configures QuickStart deployment of a Red Hat OpenShift cluster within an IBM Cloud VPC with limited options."
1062+
}
1063+
],
1064+
"diagrams": [
1065+
{
1066+
"diagram": {
1067+
"caption": "Red Hat OpenShift cluster topology - Quickstart",
1068+
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/refs/heads/main/reference-architecture/deployable-architecture-ocp-cluster-qs.svg",
1069+
"type": "image/svg+xml"
1070+
},
1071+
"description": "This QuickStart variation of deployable architecture enables deployment of a <b>Red Hat OpenShift cluster</b> within an IBM Cloud Virtual Private Cloud (VPC). It provisions the OpenShift cluster and its foundational VPC infrastructure with a limited set of essential options for rapid and streamlined setup. Additionally, the deployment creates an <b>Object Storage bucket</b> that serves as the internal container image registry for the OpenShift cluster. Thus, it helps ensure seamless storage integration.<br><br>Users can select from predefined cluster sizes — <b>mini (default), small, medium, and large.</b> Each size determining the number of availability zones, worker nodes per zone, and the <b>machine type</b> (worker node flavor). [Learn more](https://github.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/blob/main/solutions/quickstart/DA_docs.md).<br><br>By default, the architecture provisions a <b>two-zone VPC</b>, forming the foundation for the OpenShift cluster. The cluster comprises a single worker pool distributed across these zones, with <b>two worker nodes per zone</b> in the mini configuration.<br><br>This streamlined architecture balances ease of use with flexibility, enabling rapid OpenShift cluster deployments with the infrastructure, integrated storage services, and right-sized compute resources of IBM Cloud."
1072+
}
1073+
]
1074+
},
1075+
"configuration": [
1076+
{
1077+
"key": "ibmcloud_api_key"
1078+
},
1079+
{
1080+
"key": "existing_resource_group_name",
1081+
"display_name": "resource_group",
1082+
"custom_config": {
1083+
"type": "resource_group",
1084+
"grouping": "deployment",
1085+
"original_grouping": "deployment",
1086+
"config_constraints": {
1087+
"identifier": "rg_name"
1088+
}
1089+
}
1090+
},
1091+
{
1092+
"key": "prefix",
1093+
"required": true
1094+
},
1095+
{
1096+
"key": "region",
1097+
"required": true,
1098+
"type": "string",
1099+
"custom_config": {
1100+
"config_constraints": {
1101+
"generationType": "2"
1102+
},
1103+
"grouping": "deployment",
1104+
"original_grouping": "deployment",
1105+
"type": "vpc_region"
1106+
}
1107+
},
1108+
{
1109+
"key": "size",
1110+
"required": true,
1111+
"options": [
1112+
{
1113+
"displayname": "mini",
1114+
"value": "mini"
1115+
},
1116+
{
1117+
"displayname": "small",
1118+
"value": "small"
1119+
},
1120+
{
1121+
"displayname": "medium",
1122+
"value": "medium"
1123+
},
1124+
{
1125+
"displayname": "large",
1126+
"value": "large"
1127+
}
1128+
]
1129+
},
1130+
{
1131+
"key": "provider_visibility",
1132+
"options": [
1133+
{
1134+
"displayname": "private",
1135+
"value": "private"
1136+
},
1137+
{
1138+
"displayname": "public",
1139+
"value": "public"
1140+
},
1141+
{
1142+
"displayname": "public-and-private",
1143+
"value": "public-and-private"
1144+
}
1145+
],
1146+
"hidden": true
1147+
},
1148+
{
1149+
"key": "cluster_name"
1150+
},
1151+
{
1152+
"key": "ocp_version",
1153+
"default_value": "4.17",
1154+
"required": true,
1155+
"options": [
1156+
{
1157+
"displayname": "4.18",
1158+
"value": "4.18"
1159+
},
1160+
{
1161+
"displayname": "4.17",
1162+
"value": "4.17"
1163+
},
1164+
{
1165+
"displayname": "4.16",
1166+
"value": "4.16"
1167+
},
1168+
{
1169+
"displayname": "4.15",
1170+
"value": "4.15"
1171+
},
1172+
{
1173+
"displayname": "4.14",
1174+
"value": "4.14"
1175+
}
1176+
]
1177+
},
1178+
{
1179+
"key": "default_worker_pool_operating_system",
1180+
"options": [
1181+
{
1182+
"displayname": "RHEL 9",
1183+
"value": "RHEL_9_64"
1184+
},
1185+
{
1186+
"displayname": "Red Hat CoreOS",
1187+
"value": "RHCOS"
1188+
},
1189+
{
1190+
"displayname": "RHEL 8",
1191+
"value": "REDHAT_8_64"
1192+
}
1193+
]
1194+
},
1195+
{
1196+
"key": "address_prefix",
1197+
"hidden": true
1198+
},
1199+
{
1200+
"key": "ocp_entitlement"
1201+
},
1202+
{
1203+
"key": "access_tags",
1204+
"hidden":true,
1205+
"custom_config": {
1206+
"type": "array",
1207+
"grouping": "deployment",
1208+
"original_grouping": "deployment",
1209+
"config_constraints": {
1210+
"type": "string"
1211+
}
1212+
}
1213+
},
1214+
{
1215+
"key": "disable_public_endpoint"
1216+
},
1217+
{
1218+
"key": "disable_outbound_traffic_protection"
1219+
}
1220+
]
10101221
}
10111222
]
10121223
}

reference-architecture/deployable-architecture-ocp-cluster-qs.svg

Lines changed: 4 additions & 0 deletions
Loading

solutions/quickstart/DA_docs.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Cluster Size Configuration
2+
3+
This document describes the cluster size options and their configuration details. This table determines the number of availability zones, worker nodes per zone, and the machine type used for the OpenShift cluster.
4+
5+
## Cluster Table
6+
7+
| Size | Number of Worker Nodes per zone | Total Number of Worker Nodes | Zones | vCPU per Node | Memory per Node (GB) | Disk per Node (GB) | Worker Node Flavor Name | HA Level | Notes |
8+
|--------------|------------------------|------------------------------|--------|----------------|------------------------|----------------------|--------------------------|---------------------|--------------------------------------------------------|
9+
| Mini | 1 | 2 | 2 | 4 | 16 | 100 | bx2.4x16 | Moderate (Basic) | Smallest possible; basic HA across 2 zones |
10+
| Small | 1 | 3 | 3 | 8 | 32 | 200 | bx2.8x32 | High | Entry-level production HA |
11+
| Medium | 2 | 6 | 3 | 8 | 32 | 200 | bx2.8x32 | High | Moderate workloads, better HA |
12+
| Large | 3 | 9 | 3 | 16 | 64 | 400 | bx2.16x64 | High | Large-scale, robust HA |

solutions/quickstart/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Cloud automation for Red Hat OpenShift Container Platform on VPC (QuickStart)
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).
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"ibmcloud_api_key": $VALIDATION_APIKEY,
3+
"prefix": $PREFIX,
4+
"size": "mini",
5+
"existing_resource_group_name": "Default"
6+
}

0 commit comments

Comments
 (0)