@@ -116,6 +116,11 @@ data "openstack_networking_network_v2" "cluster_external_network" {
116116 name = "{{ cluster_external_network }}"
117117}
118118
119+ # Always get the SRIOV storage network
120+ data "openstack_networking_network_v2" "portal_storage_direct" {
121+ tags = ["portal-storage-direct"]
122+ }
123+
119124data "openstack_networking_subnet_ids_v2" "cluster_external_subnets" {
120125 network_id = "${data.openstack_networking_network_v2.cluster_external_network.id}"
121126}
@@ -177,6 +182,11 @@ data "openstack_networking_subnet_v2" "cluster_subnet" {
177182##### Cluster ports
178183#####
179184
185+ ###
186+ # Login node
187+ ###
188+
189+ # VXLAN
180190resource "openstack_networking_port_v2" "login" {
181191 name = "{{ cluster_name }}-login-0"
182192 network_id = "${data.openstack_networking_network_v2.cluster_network.id}"
@@ -201,6 +211,29 @@ resource "openstack_networking_port_v2" "login" {
201211 }
202212}
203213
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
204237resource " openstack_networking_port_v2" " control" {
205238 name = " {{ cluster_name }}-control-0"
206239 network_id = " ${data.openstack_networking_network_v2.cluster_network.id}"
@@ -224,7 +257,29 @@ resource "openstack_networking_port_v2" "control" {
224257 }
225258}
226259
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+ ###
227281{% for partition in openhpc_slurm_partitions %}
282+ # VXLAN
228283resource " openstack_networking_port_v2" " {{ partition.name }}" {
229284 count = {{ partition.count }}
230285 name = " {{ cluster_name }}-compute-{{ partition.name }}-${count.index}"
@@ -249,6 +304,24 @@ resource "openstack_networking_port_v2" "{{ partition.name }}" {
249304 }
250305}
251306
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+
252325{% endfor %}
253326
254327#####
@@ -274,7 +347,11 @@ resource "openstack_compute_instance_v2" "login" {
274347 {% endif %}
275348
276349 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
278355 }
279356
280357 # root device:
@@ -317,7 +394,11 @@ resource "openstack_compute_instance_v2" "control" {
317394 {% endif %}
318395
319396 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
321402 }
322403
323404 # root device:
@@ -393,6 +474,10 @@ resource "openstack_compute_instance_v2" "{{ partition.name }}" {
393474 port = openstack_networking_port_v2.{{ partition.name }}[count.index].id
394475 }
395476
477+ network {
478+ port = openstack_networking_port_v2.{{ partition.name }}_portal_storage[count.index].id
479+ }
480+
396481 # root device:
397482 block_device {
398483 uuid = " {{ cluster_image }}"
0 commit comments