Skip to content

Commit 914fd7a

Browse files
Terraform Team Automationvsin12
authored andcommitted
Added - Edge Node Support for BDS
1 parent b68f0f0 commit 914fd7a

File tree

5 files changed

+211
-16
lines changed

5 files changed

+211
-16
lines changed

examples/big_data_service/main.tf

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ variable "region" {
1919
variable "compartment_id" {
2020
}
2121

22+
variable "subnet_id" {
23+
}
24+
2225
variable "bds_instance_cluster_admin_password" {
2326
default = "T3JhY2xlVGVhbVVTQSExMjM="
2427
}
@@ -77,7 +80,7 @@ variable "bds_instance_nodes_shape" {
7780
}
7881

7982
variable "bds_instance_worker_node_shape" {
80-
default = "BM.Standard.E4.128"
83+
default = "VM.Standard2.4"
8184
}
8285

8386
variable "bds_instance_compute_only_worker_node_shape" {
@@ -92,6 +95,18 @@ variable "bds_instance_compute_only_worker_ocpu_per_node" {
9295
default = 3
9396
}
9497

98+
variable "bds_instance_edge_node_shape" {
99+
default = "VM.Standard.E4.Flex"
100+
}
101+
102+
variable "bds_instance_edge_memory_per_node" {
103+
default = 32
104+
}
105+
106+
variable "bds_instance_edge_ocpu_per_node" {
107+
default = 3
108+
}
109+
95110
variable "bds_instance_state" {
96111
default = "ACTIVE"
97112
}
@@ -163,7 +178,7 @@ resource "oci_bds_bds_instance" "test_bds_instance" {
163178
#Required
164179
shape = var.bds_instance_nodes_shape
165180

166-
subnet_id = oci_core_subnet.regional_subnet_bds.id
181+
subnet_id = var.subnet_id
167182
block_volume_size_in_gbs = var.bds_instance_nodes_block_volume_size_in_gbs
168183
number_of_nodes = 1
169184
}
@@ -172,7 +187,7 @@ resource "oci_bds_bds_instance" "test_bds_instance" {
172187
#Required
173188
shape = var.bds_instance_nodes_shape
174189

175-
subnet_id = oci_core_subnet.regional_subnet_bds.id
190+
subnet_id = var.subnet_id
176191
block_volume_size_in_gbs = var.bds_instance_nodes_block_volume_size_in_gbs
177192
number_of_nodes = 1
178193
}
@@ -181,16 +196,29 @@ resource "oci_bds_bds_instance" "test_bds_instance" {
181196
#Required
182197
shape = var.bds_instance_worker_node_shape
183198

184-
subnet_id = oci_core_subnet.regional_subnet_bds.id
199+
subnet_id = var.subnet_id
185200
block_volume_size_in_gbs = var.bds_instance_worker_nodes_block_volume_size_in_gbs
186201
number_of_nodes = 4
187202
}
188203

204+
edge_node {
205+
#Required
206+
shape = var.bds_instance_edge_node_shape
207+
208+
subnet_id = var.subnet_id
209+
block_volume_size_in_gbs = var.bds_instance_worker_nodes_block_volume_size_in_gbs
210+
number_of_nodes = 1
211+
shape_config {
212+
memory_in_gbs = var.bds_instance_edge_memory_per_node
213+
ocpus = var.bds_instance_edge_ocpu_per_node
214+
}
215+
}
216+
189217
compute_only_worker_node {
190218
#Required
191219
shape = var.bds_instance_compute_only_worker_node_shape
192220

193-
subnet_id = oci_core_subnet.regional_subnet_bds.id
221+
subnet_id = var.subnet_id
194222
block_volume_size_in_gbs = var.bds_instance_worker_nodes_block_volume_size_in_gbs
195223
number_of_nodes = 1
196224
shape_config {
@@ -199,6 +227,9 @@ resource "oci_bds_bds_instance" "test_bds_instance" {
199227
}
200228
}
201229

230+
231+
232+
202233
# cloud_sql_details {
203234
# shape = "VM.Standard2.4"
204235
# block_volume_size_in_gbs = 1000

internal/integrationtest/bds_odh_instance_resource_test.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ var (
6161
"worker_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodesOdhWorkerRepresentation},
6262
"bootstrap_script_url": acctest.Representation{RepType: acctest.Optional, Create: `${var.bootstrap_script_url}`},
6363
"compute_only_worker_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodeFlexShapeRepresentation},
64+
"edge_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodeFlexShapeRepresentation},
6465

6566
"is_cloud_sql_configured": acctest.Representation{RepType: acctest.Optional, Create: `false`},
6667
"kms_key_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.kms_key_id}`, Update: `${var.kms_key_id_for_update}`},
@@ -78,15 +79,17 @@ var (
7879
"master_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodesOdhMasterRepresentation},
7980
"util_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodesOdhUtilRepresentation},
8081
"compute_only_worker_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodeFlexShapeRepresentation},
82+
"edge_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodeFlexShapeRepresentation},
8183
})
8284

8385
bdsInstanceOdhWithRegularComputeAndFlexMasterUtilRepresentation = acctest.RepresentationCopyWithNewProperties(bdsInstanceOdhRepresentation,
8486
map[string]interface{}{
8587
"compute_only_worker_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodesOdhUtilRepresentation}, // Regular util shape representation usable for compute worker
88+
"edge_node": acctest.RepresentationGroup{RepType: acctest.Required, Group: bdsInstanceNodesOdhUtilRepresentation},
8689
})
8790

8891
bdsInstanceNodesOdhCloudSqlRepresentation = map[string]interface{}{
89-
"shape": acctest.Representation{RepType: acctest.Required, Create: `BM.Standard.E4.128`},
92+
"shape": acctest.Representation{RepType: acctest.Required, Create: `VM.Standard2.4`},
9093
"block_volume_size_in_gbs": acctest.Representation{RepType: acctest.Required, Create: `1000`},
9194
// "nvmes": acctest.Representation{RepType: acctest.Optional, Create: `10`}, // Only for VM_DenseIO_E4_Flex. The shape is disabled for now
9295
}
@@ -104,7 +107,7 @@ var (
104107
"number_of_nodes": acctest.Representation{RepType: acctest.Required, Create: `2`},
105108
}
106109
bdsInstanceNodesOdhWorkerRepresentation = map[string]interface{}{
107-
"shape": acctest.Representation{RepType: acctest.Required, Create: `BM.Standard.E4.128`},
110+
"shape": acctest.Representation{RepType: acctest.Required, Create: `VM.Standard2.4`},
108111
"subnet_id": acctest.Representation{RepType: acctest.Required, Create: `${var.subnet_id}`},
109112
"block_volume_size_in_gbs": acctest.Representation{RepType: acctest.Required, Create: `150`},
110113
"number_of_nodes": acctest.Representation{RepType: acctest.Required, Create: `3`, Update: `4`},
@@ -188,7 +191,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
188191
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
189192
resource.TestCheckResourceAttr(resourceName, "is_high_availability", "true"),
190193
resource.TestCheckResourceAttr(resourceName, "is_secure", "true"),
191-
resource.TestCheckResourceAttr(resourceName, "nodes.#", "9"),
194+
resource.TestCheckResourceAttr(resourceName, "nodes.#", "11"),
192195
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.node_type"),
193196
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.shape"),
194197
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.subnet_id"),
@@ -216,7 +219,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
216219
resource.TestCheckResourceAttr(resourceName, "compartment_id", compartmentId),
217220
resource.TestCheckResourceAttr(resourceName, "is_high_availability", "true"),
218221
resource.TestCheckResourceAttr(resourceName, "is_secure", "true"),
219-
resource.TestCheckResourceAttr(resourceName, "nodes.#", "9"),
222+
resource.TestCheckResourceAttr(resourceName, "nodes.#", "11"),
220223
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.node_type"),
221224
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.shape"),
222225
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.subnet_id"),
@@ -258,11 +261,12 @@ func TestResourceBdsOdhInstance(t *testing.T) {
258261
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.state"),
259262
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.subnet_id"),
260263
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.time_created"),
261-
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "9"),
264+
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "11"),
262265
resource.TestCheckResourceAttrSet(resourceName, "state"),
263266
resource.TestCheckResourceAttr(resourceName, "util_node.0.shape", "VM.Standard.E4.Flex"),
264267
resource.TestCheckResourceAttr(resourceName, "master_node.0.shape", "VM.Standard.E4.Flex"),
265268
resource.TestCheckResourceAttr(resourceName, "compute_only_worker_node.0.shape", "VM.Standard.E4.Flex"),
269+
resource.TestCheckResourceAttr(resourceName, "edge_node.0.shape", "VM.Standard.E4.Flex"),
266270

267271
func(s *terraform.State) (err error) {
268272
resId, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -299,7 +303,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
299303
resource.TestCheckResourceAttr(resourceName, "network_config.#", "1"),
300304
resource.TestCheckResourceAttr(resourceName, "network_config.0.cidr_block", "111.112.0.0/16"),
301305
resource.TestCheckResourceAttr(resourceName, "network_config.0.is_nat_gateway_required", "true"),
302-
resource.TestCheckResourceAttr(resourceName, "nodes.#", "9"),
306+
resource.TestCheckResourceAttr(resourceName, "nodes.#", "11"),
303307
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.availability_domain"),
304308
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.display_name"),
305309
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.fault_domain"),
@@ -309,11 +313,12 @@ func TestResourceBdsOdhInstance(t *testing.T) {
309313
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.state"),
310314
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.subnet_id"),
311315
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.time_created"),
312-
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "9"),
316+
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "11"),
313317
resource.TestCheckResourceAttrSet(resourceName, "state"),
314318
resource.TestCheckResourceAttr(resourceName, "util_node.0.shape", "VM.Standard2.4"),
315319
resource.TestCheckResourceAttr(resourceName, "master_node.0.shape", "VM.Standard2.4"),
316320
resource.TestCheckResourceAttr(resourceName, "compute_only_worker_node.0.shape", "VM.Standard.E4.Flex"),
321+
resource.TestCheckResourceAttr(resourceName, "edge_node.0.shape", "VM.Standard.E4.Flex"),
317322

318323
func(s *terraform.State) (err error) {
319324
resId2, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -345,7 +350,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
345350
resource.TestCheckResourceAttr(resourceName, "network_config.#", "1"),
346351
resource.TestCheckResourceAttr(resourceName, "network_config.0.cidr_block", "111.112.0.0/16"),
347352
resource.TestCheckResourceAttr(resourceName, "network_config.0.is_nat_gateway_required", "true"),
348-
resource.TestCheckResourceAttr(resourceName, "nodes.#", "10"),
353+
resource.TestCheckResourceAttr(resourceName, "nodes.#", "12"),
349354
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.availability_domain"),
350355
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.display_name"),
351356
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.fault_domain"),
@@ -355,11 +360,12 @@ func TestResourceBdsOdhInstance(t *testing.T) {
355360
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.state"),
356361
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.subnet_id"),
357362
resource.TestCheckResourceAttrSet(resourceName, "nodes.0.time_created"),
358-
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "10"),
363+
resource.TestCheckResourceAttr(resourceName, "number_of_nodes", "12"),
359364
resource.TestCheckResourceAttrSet(resourceName, "state"),
360365
resource.TestCheckResourceAttr(resourceName, "util_node.0.shape", "VM.Standard.E4.Flex"),
361366
resource.TestCheckResourceAttr(resourceName, "master_node.0.shape", "VM.Standard.E4.Flex"),
362367
resource.TestCheckResourceAttr(resourceName, "compute_only_worker_node.0.shape", "VM.Standard2.4"),
368+
resource.TestCheckResourceAttr(resourceName, "edge_node.0.shape", "VM.Standard2.4"),
363369

364370
func(s *terraform.State) (err error) {
365371
resId2, err = acctest.FromInstanceState(s, resourceName, "id")
@@ -422,7 +428,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
422428
resource.TestCheckResourceAttr(singularDatasourceName, "network_config.#", "1"),
423429
resource.TestCheckResourceAttr(singularDatasourceName, "network_config.0.cidr_block", "111.112.0.0/16"),
424430
resource.TestCheckResourceAttr(singularDatasourceName, "network_config.0.is_nat_gateway_required", "true"),
425-
resource.TestCheckResourceAttr(singularDatasourceName, "nodes.#", "10"),
431+
resource.TestCheckResourceAttr(singularDatasourceName, "nodes.#", "12"),
426432
resource.TestCheckResourceAttrSet(singularDatasourceName, "nodes.0.availability_domain"),
427433
resource.TestCheckResourceAttrSet(singularDatasourceName, "nodes.0.display_name"),
428434
resource.TestCheckResourceAttrSet(singularDatasourceName, "nodes.0.fault_domain"),
@@ -454,6 +460,7 @@ func TestResourceBdsOdhInstance(t *testing.T) {
454460
"util_node.0.shape_config",
455461
"worker_node.0.shape_config",
456462
"compute_only_worker_node.0.shape_config",
463+
"edge_node.0.shape_config",
457464
},
458465
ResourceName: resourceName,
459466
},

internal/service/bds/bds_bds_instance_data_source.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ func (s *BdsBdsInstanceDataSourceCrud) SetData() error {
136136
s.D.Set("util_node", []interface{}{nodeMap["UTILITY"]})
137137
s.D.Set("worker_node", []interface{}{nodeMap["WORKER"]})
138138
s.D.Set("compute_only_worker_node", []interface{}{nodeMap["COMPUTE_ONLY_WORKER"]})
139+
s.D.Set("edge_node", []interface{}{nodeMap["EDGE"]})
139140

140141
if s.Res.NumberOfNodes != nil {
141142
s.D.Set("number_of_nodes", *s.Res.NumberOfNodes)

0 commit comments

Comments
 (0)