Skip to content

Commit fe496a5

Browse files
author
scrungus
committed
add storage VLAN interface on all slurm nodes
1 parent 14dc739 commit fe496a5

File tree

1 file changed

+87
-2
lines changed

1 file changed

+87
-2
lines changed

ansible/roles/cluster_infra/templates/resources.tf.j2

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
119124
data "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
180190
resource "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
204237
resource "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
228283
resource "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

Comments
 (0)