@@ -116,6 +116,11 @@ data "openstack_networking_network_v2" "cluster_external_network" {
116
116
name = "{{ cluster_external_network }}"
117
117
}
118
118
119
+ # Always get the SRIOV storage network
120
+ data "openstack_networking_network_v2" "portal_storage_direct" {
121
+ tags = ["portal-storage-direct"]
122
+ }
123
+
119
124
data "openstack_networking_subnet_ids_v2" "cluster_external_subnets" {
120
125
network_id = "${data.openstack_networking_network_v2.cluster_external_network.id}"
121
126
}
@@ -177,6 +182,11 @@ data "openstack_networking_subnet_v2" "cluster_subnet" {
177
182
##### Cluster ports
178
183
#####
179
184
185
+ ###
186
+ # Login node
187
+ ###
188
+
189
+ # VXLAN
180
190
resource "openstack_networking_port_v2" "login" {
181
191
name = "{{ cluster_name }}-login-0"
182
192
network_id = "${data.openstack_networking_network_v2.cluster_network.id}"
@@ -201,6 +211,29 @@ resource "openstack_networking_port_v2" "login" {
201
211
}
202
212
}
203
213
214
+ # Storage VLAN
215
+ resource " openstack_networking_port_v2" " login_portal_storage" {
216
+ name = " {{ cluster_name }}-login-0-portal-storage"
217
+ network_id = data.openstack_networking_network_v2.portal_storage_direct.id
218
+ admin_state_up = " true"
219
+
220
+ # not sure if needed here
221
+ security_group_ids = [
222
+ " ${openstack_networking_secgroup_v2.secgroup_slurm_cluster.id}" ,
223
+ " ${openstack_networking_secgroup_v2.secgroup_slurm_login.id}"
224
+ ]
225
+
226
+ # for now, until we set up flavors
227
+ binding {
228
+ vnic_type = " normal"
229
+ }
230
+ }
231
+
232
+ ###
233
+ # Control node
234
+ ###
235
+
236
+ # VLXAN
204
237
resource " openstack_networking_port_v2" " control" {
205
238
name = " {{ cluster_name }}-control-0"
206
239
network_id = " ${data.openstack_networking_network_v2.cluster_network.id}"
@@ -224,7 +257,29 @@ resource "openstack_networking_port_v2" "control" {
224
257
}
225
258
}
226
259
260
+ # Storage VLAN
261
+
262
+ resource " openstack_networking_port_v2" " control_portal_storage" {
263
+ name = " {{ cluster_name }}-control-0-portal-storage"
264
+ network_id = data.openstack_networking_network_v2.portal_storage_direct.id
265
+ admin_state_up = " true"
266
+
267
+ # not sure if needed here
268
+ security_group_ids = [
269
+ " ${openstack_networking_secgroup_v2.secgroup_slurm_cluster.id}"
270
+ ]
271
+
272
+ # for now, until we set up flavors
273
+ binding {
274
+ vnic_type = " normal"
275
+ }
276
+ }
277
+
278
+ ###
279
+ # Workers
280
+ ###
227
281
{% for partition in openhpc_slurm_partitions %}
282
+ # VXLAN
228
283
resource " openstack_networking_port_v2" " {{ partition.name }}" {
229
284
count = {{ partition.count }}
230
285
name = " {{ cluster_name }}-compute-{{ partition.name }}-${count.index}"
@@ -249,6 +304,24 @@ resource "openstack_networking_port_v2" "{{ partition.name }}" {
249
304
}
250
305
}
251
306
307
+ # Storage VLAN
308
+ resource " openstack_networking_port_v2" " {{ partition.name }}_portal_storage" {
309
+ count = {{ partition.count }}
310
+ name = " {{ cluster_name }}-compute-{{ partition.name }}-${count.index}-portal-storage"
311
+ network_id = data.openstack_networking_network_v2.portal_storage_direct.id
312
+ admin_state_up = " true"
313
+
314
+ # not sure if needed here
315
+ security_group_ids = [
316
+ " ${openstack_networking_secgroup_v2.secgroup_slurm_cluster.id}"
317
+ ]
318
+
319
+ # for now, until we set up flavors
320
+ binding {
321
+ vnic_type = " normal"
322
+ }
323
+ }
324
+
252
325
{% endfor %}
253
326
254
327
#####
@@ -274,7 +347,11 @@ resource "openstack_compute_instance_v2" "login" {
274
347
{% endif %}
275
348
276
349
network {
277
- port = " ${openstack_networking_port_v2.login.id}"
350
+ port = openstack_networking_port_v2.login.id
351
+ }
352
+
353
+ network {
354
+ port = openstack_networking_port_v2.login_portal_storage.id
278
355
}
279
356
280
357
# root device:
@@ -317,7 +394,11 @@ resource "openstack_compute_instance_v2" "control" {
317
394
{% endif %}
318
395
319
396
network {
320
- port = " ${openstack_networking_port_v2.control.id}"
397
+ port = openstack_networking_port_v2.control.id
398
+ }
399
+
400
+ network {
401
+ port = openstack_networking_port_v2.control_portal_storage.id
321
402
}
322
403
323
404
# root device:
@@ -393,6 +474,10 @@ resource "openstack_compute_instance_v2" "{{ partition.name }}" {
393
474
port = openstack_networking_port_v2.{{ partition.name }}[count.index].id
394
475
}
395
476
477
+ network {
478
+ port = openstack_networking_port_v2.{{ partition.name }}_portal_storage[count.index].id
479
+ }
480
+
396
481
# root device:
397
482
block_device {
398
483
uuid = " {{ cluster_image }}"
0 commit comments