Skip to content

Commit 119bd40

Browse files
feat: DA updates: disable_outbound_traffic_protection -> allow_outbound_traffic<br>- disable_public_endpoint -> allow_public_access_to_cluster<br>- ocp_version -> openshift_version<br>- IBM provider locked to 1.81.1<br>- fixed DA documentaed permissions (#780)
1 parent 6ecdf21 commit 119bd40

File tree

8 files changed

+47
-54
lines changed

8 files changed

+47
-54
lines changed

ibm_catalog.json

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
"role_crns": [
115115
"crn:v1:bluemix:public:iam::::role:Editor"
116116
],
117-
"service_name": "iam-access-groups",
117+
"service_name": "iam-groups",
118118
"notes": "[Optional] Required for managing IAM access groups."
119119
},
120120
{
@@ -147,7 +147,7 @@
147147
"crn:v1:bluemix:public:iam::::role:Editor"
148148
],
149149
"service_name": "cloud-object-storage",
150-
"notes": "Required to manage Object storage bucket for the cluster internal registry."
150+
"notes": "Required to manage Object storage for the cluster internal registry."
151151
},
152152
{
153153
"role_crns": [
@@ -166,24 +166,24 @@
166166
},
167167
{
168168
"role_crns": [
169-
"crn:v1:bluemix:public:iam::::role:Administrator",
169+
"crn:v1:bluemix:public:iam::::role:Editor",
170170
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
171171
],
172172
"service_name": "secrets-manager",
173173
"notes": "[Optional] Required when enabling the Secrets Manager integration."
174174
},
175175
{
176176
"role_crns": [
177-
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
178-
"crn:v1:bluemix:public:iam::::role:Administrator"
177+
"crn:v1:bluemix:public:iam::::role:Editor",
178+
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
179179
],
180180
"service_name": "sysdig-monitor",
181181
"notes": "[Optional] Required to create an instance of Cloud Monitoring."
182182
},
183183
{
184184
"role_crns": [
185-
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
186-
"crn:v1:bluemix:public:iam::::role:Editor"
185+
"crn:v1:bluemix:public:iam::::role:Editor",
186+
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
187187
],
188188
"service_name": "logs",
189189
"notes": "[Optional] Required to create an instance of Cloud Logs."
@@ -193,7 +193,7 @@
193193
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
194194
],
195195
"service_name": "logs-router",
196-
"notes": "[Optional] Required for configuring cloud logs routing."
196+
"notes": "[Optional] Required for configuring Cloud Logs routing."
197197
},
198198
{
199199
"role_crns": [
@@ -219,17 +219,10 @@
219219
"service_name": "apprapp",
220220
"notes": "[Optional] Required for provisioning the App Configuration instance."
221221
},
222-
{
223-
"role_crns": [
224-
"crn:v1:bluemix:public:iam::::role:Administrator"
225-
],
226-
"service_name": "metrics-router",
227-
"notes": "[Optional] Required to enable metrics routing to the Cloud Monitoring."
228-
},
229222
{
230223
"role_crns": [
231224
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
232-
"crn:v1:bluemix:public:iam::::role:Administrator"
225+
"crn:v1:bluemix:public:iam::::role:Editor"
233226
],
234227
"service_name": "event-notifications",
235228
"notes": "[Optional] Required when enabling the Event Notifications integration."
@@ -273,7 +266,7 @@
273266
"required": true
274267
},
275268
{
276-
"key": "ocp_version",
269+
"key": "openshift_version",
277270
"required": true,
278271
"default_value": "4.18",
279272
"options": [
@@ -542,7 +535,7 @@
542535
]
543536
},
544537
{
545-
"key": "disable_public_endpoint",
538+
"key": "allow_public_access_to_cluster",
546539
"required": true
547540
},
548541
{
@@ -712,7 +705,7 @@
712705
]
713706
},
714707
{
715-
"key": "disable_outbound_traffic_protection"
708+
"key": "allow_outbound_traffic"
716709
},
717710
{
718711
"key": "verify_worker_network_readiness"
@@ -1252,30 +1245,30 @@
12521245
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
12531246
"crn:v1:bluemix:public:iam::::role:Administrator"
12541247
],
1255-
"notes": "Required to reset the cluster API key, create and edit the OpenShift cluster, and manage all related resources."
1248+
"notes": "Required to create and manage the Openshift cluster."
12561249
},
12571250
{
12581251
"service_name": "iam-identity",
12591252
"role_crns": [
12601253
"crn:v1:bluemix:public:iam::::role:Administrator",
12611254
"crn:v1:bluemix:public:iam-identity::::serviceRole:UserApiKeyCreator"
12621255
],
1263-
"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."
1256+
"notes": "Required to create the containers-kubernetes-key for the OpenShift cluster."
12641257
},
12651258
{
12661259
"service_name": "is.vpc",
12671260
"role_crns": [
12681261
"crn:v1:bluemix:public:iam::::role:Editor"
12691262
],
1270-
"notes": "Required for creating Virtual Private Cloud (VPC)."
1263+
"notes": "Required to create VPC."
12711264
},
12721265
{
12731266
"service_name": "cloud-object-storage",
12741267
"role_crns": [
12751268
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
12761269
"crn:v1:bluemix:public:iam::::role:Editor"
12771270
],
1278-
"notes": "Required for creating the OpenShift cluster's internal registry storage bucket."
1271+
"notes": "Required to manage Object storage for the cluster internal registry."
12791272
},
12801273
{
12811274
"role_crns": [
@@ -1299,7 +1292,7 @@
12991292
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-base-ocp-vpc/refs/heads/main/reference-architecture/deployable-architecture-ocp-cluster-qs.svg",
13001293
"type": "image/svg+xml"
13011294
},
1302-
"description": "This 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 determines 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."
1295+
"description": "This 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> The chosen size determines the <b>machine type</b> of the worker nodes, <b>the number of availability zones</b> the cluster spans, and <b>number of worker nodes</b> deployed in each zone. To get more information on this, refer [here](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."
13031296
}
13041297
]
13051298
},
@@ -1387,7 +1380,7 @@
13871380
"key": "cluster_name"
13881381
},
13891382
{
1390-
"key": "ocp_version",
1383+
"key": "openshift_version",
13911384
"default_value": "4.18",
13921385
"required": true,
13931386
"options": [
@@ -1450,10 +1443,10 @@
14501443
}
14511444
},
14521445
{
1453-
"key": "disable_public_endpoint"
1446+
"key": "allow_public_access_to_cluster"
14541447
},
14551448
{
1456-
"key": "disable_outbound_traffic_protection"
1449+
"key": "allow_outbound_traffic"
14571450
}
14581451
],
14591452
"dependency_version_2": true,

solutions/fully-configurable/main.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ locals {
195195
# Managing the ODF version accordingly, as it changes with each OCP version.
196196
addons = lookup(var.addons, "openshift-data-foundation", null) != null ? lookup(var.addons["openshift-data-foundation"], "version", null) == null ? { for key, value in var.addons :
197197
key => value != null ? {
198-
version = lookup(value, "version", null) == null && key == "openshift-data-foundation" ? "${var.ocp_version}.0" : lookup(value, "version", null)
198+
version = lookup(value, "version", null) == null && key == "openshift-data-foundation" ? "${var.openshift_version}.0" : lookup(value, "version", null)
199199
parameters_json = lookup(value, "parameters_json", null)
200200
} : null } : var.addons : var.addons
201201
}
@@ -211,7 +211,7 @@ module "ocp_base" {
211211
existing_cos_id = var.existing_cos_instance_crn
212212
vpc_id = local.existing_vpc_id
213213
vpc_subnets = local.vpc_subnets
214-
ocp_version = var.ocp_version
214+
ocp_version = var.openshift_version
215215
worker_pools = local.worker_pools
216216
access_tags = var.access_tags
217217
ocp_entitlement = var.ocp_entitlement
@@ -224,8 +224,8 @@ module "ocp_base" {
224224
cbr_rules = var.cbr_rules
225225
cluster_ready_when = var.cluster_ready_when
226226
custom_security_group_ids = var.custom_security_group_ids
227-
disable_outbound_traffic_protection = var.disable_outbound_traffic_protection
228-
disable_public_endpoint = var.disable_public_endpoint
227+
disable_outbound_traffic_protection = var.allow_outbound_traffic
228+
disable_public_endpoint = !var.allow_public_access_to_cluster
229229
enable_ocp_console = var.enable_ocp_console
230230
ignore_worker_pool_size_changes = var.ignore_worker_pool_size_changes
231231
kms_config = local.kms_config

solutions/fully-configurable/variables.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ variable "cluster_name" {
6767
default = "openshift"
6868
}
6969

70-
variable "ocp_version" {
70+
variable "openshift_version" {
7171
type = string
7272
description = "Version of the OpenShift cluster to provision."
7373
default = null
@@ -266,10 +266,16 @@ variable "use_private_endpoint" {
266266
default = true
267267
}
268268

269-
variable "disable_public_endpoint" {
269+
variable "allow_public_access_to_cluster" {
270270
type = bool
271-
description = "Whether access to the public service endpoint is disabled when the cluster is created. Does not affect existing clusters. You can't disable a public endpoint on an existing cluster, so you can't convert a public cluster to a private cluster. To change a public endpoint to private, create another cluster with this input set to `true`. Warning: Set this field to `false` if you want to retain public access to the cluster. Once the cluster is created, this cannot be changed."
272-
default = true
271+
description = "Set to true to allow public access to master node of the cluster by enabling public endpoint."
272+
default = false
273+
}
274+
275+
variable "allow_outbound_traffic" {
276+
type = bool
277+
description = "Set to true to allow public outbound access from the cluster workers."
278+
default = false
273279
}
274280

275281
variable "cluster_config_endpoint_type" {
@@ -279,12 +285,6 @@ variable "cluster_config_endpoint_type" {
279285
nullable = false
280286
}
281287

282-
variable "disable_outbound_traffic_protection" {
283-
type = bool
284-
description = "Whether to allow public outbound access from the cluster workers. This is only applicable for OCP 4.15 and later."
285-
default = false
286-
}
287-
288288
variable "verify_worker_network_readiness" {
289289
type = bool
290290
description = "By setting this to true, a script runs kubectl commands to verify that all worker nodes can communicate successfully with the master. If the runtime does not have access to the kube cluster to run kubectl commands, set this value to false."

solutions/fully-configurable/version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ terraform {
55
required_providers {
66
ibm = {
77
source = "IBM-Cloud/ibm"
8-
version = "1.81.0"
8+
version = "1.81.1"
99
}
1010
helm = {
1111
source = "hashicorp/helm"

solutions/quickstart/main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,14 @@ module "ocp_base" {
135135
cluster_name = local.cluster_name
136136
resource_group_id = module.resource_group.resource_group_id
137137
region = var.region
138-
ocp_version = var.ocp_version
138+
ocp_version = var.openshift_version
139139
ocp_entitlement = var.ocp_entitlement
140140
vpc_id = module.vpc.vpc_id
141141
vpc_subnets = local.cluster_vpc_subnets
142142
worker_pools = local.worker_pools
143-
disable_outbound_traffic_protection = var.disable_outbound_traffic_protection
143+
disable_outbound_traffic_protection = var.allow_outbound_traffic
144144
access_tags = var.access_tags
145-
disable_public_endpoint = var.disable_public_endpoint
145+
disable_public_endpoint = !var.allow_public_access_to_cluster
146146
use_private_endpoint = true
147147
cluster_config_endpoint_type = "default"
148148
}

solutions/quickstart/variables.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ variable "region" {
4747
default = "us-south"
4848
}
4949

50-
variable "ocp_version" {
50+
variable "openshift_version" {
5151
type = string
5252
description = "Version of the OpenShift cluster to provision."
5353
default = null
@@ -91,14 +91,14 @@ variable "size" {
9191
default = "mini"
9292
}
9393

94-
variable "disable_public_endpoint" {
94+
variable "allow_public_access_to_cluster" {
9595
type = bool
96-
description = "Disables the public endpoint, which allows internet access to the cluster, during creation only."
97-
default = false
96+
description = "Set to true to allow public access to master node of the cluster by enabling public endpoint."
97+
default = true
9898
}
9999

100-
variable "disable_outbound_traffic_protection" {
100+
variable "allow_outbound_traffic" {
101101
type = bool
102-
description = "Whether to allow public outbound access from the cluster workers. This is only applicable for OCP 4.15 and later. [Learn more](https://cloud.ibm.com/docs/openshift?topic=openshift-sbd-allow-outbound)."
102+
description = "Set to true to allow public outbound access from the cluster workers."
103103
default = true
104104
}

solutions/quickstart/version.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ terraform {
55
required_providers {
66
ibm = {
77
source = "IBM-Cloud/ibm"
8-
version = "1.80.3"
8+
version = "1.81.1"
99
}
1010
}
1111
}

tests/pr_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ func TestRunFullyConfigurableInSchematics(t *testing.T) {
147147
{Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true},
148148
{Name: "prefix", Value: options.Prefix, DataType: "string"},
149149
{Name: "cluster_name", Value: "cluster", DataType: "string"},
150-
{Name: "ocp_version", Value: ocpVersion1, DataType: "string"},
150+
{Name: "openshift_version", Value: ocpVersion1, DataType: "string"},
151151
{Name: "ocp_entitlement", Value: "cloud_pak", DataType: "string"},
152152
{Name: "existing_resource_group_name", Value: terraform.Output(t, existingTerraformOptions, "resource_group_name"), DataType: "string"},
153153
{Name: "existing_cos_instance_crn", Value: terraform.Output(t, existingTerraformOptions, "cos_instance_id"), DataType: "string"},
@@ -183,7 +183,7 @@ func TestRunUpgradeFullyConfigurable(t *testing.T) {
183183
{Name: "ibmcloud_api_key", Value: options.RequiredEnvironmentVars["TF_VAR_ibmcloud_api_key"], DataType: "string", Secure: true},
184184
{Name: "prefix", Value: options.Prefix, DataType: "string"},
185185
{Name: "cluster_name", Value: "cluster", DataType: "string"},
186-
{Name: "ocp_version", Value: ocpVersion1, DataType: "string"},
186+
{Name: "openshift_version", Value: ocpVersion1, DataType: "string"},
187187
{Name: "existing_resource_group_name", Value: terraform.Output(t, existingTerraformOptions, "resource_group_name"), DataType: "string"},
188188
{Name: "existing_cos_instance_crn", Value: terraform.Output(t, existingTerraformOptions, "cos_instance_id"), DataType: "string"},
189189
{Name: "existing_vpc_crn", Value: terraform.Output(t, existingTerraformOptions, "vpc_crn"), DataType: "string"},

0 commit comments

Comments
 (0)