diff --git a/environments/site/hooks/pre.yml b/environments/site/hooks/pre.yml index a8435dd8d..2a323e932 100644 --- a/environments/site/hooks/pre.yml +++ b/environments/site/hooks/pre.yml @@ -13,6 +13,16 @@ group: root mode: 0644 +- name: Slurm nodegroup config + hosts: control + tags: openhpc + tasks: + - set_fact: _openhpc_nodegroups={{ openhpc_nodegroups }} + - name: Update node groups from nodegroups_map + set_fact: _openhpc_nodegroups={{ (_openhpc_nodegroups | selectattr(item.key, item.test, *item.args|default([]), **item.kwargs|default({}) ) | map("combine", item.inject)) + (_openhpc_nodegroups | rejectattr(item.key, item.test, *item.args|default([]), **item.kwargs|default({}) )) }} + loop: "{{ nodegroups_map }}" + - set_fact: openhpc_nodegroups={{ _openhpc_nodegroups }} + - name: Enable and start service tmp.mount hosts: builder become: true diff --git a/environments/site/inventory/group_vars/all/openhpc.yml b/environments/site/inventory/group_vars/all/openhpc.yml index fff567299..30c18840b 100644 --- a/environments/site/inventory/group_vars/all/openhpc.yml +++ b/environments/site/inventory/group_vars/all/openhpc.yml @@ -6,3 +6,12 @@ openhpc_config_extra: AccountingStorageEnforce: 'associations,limits,qos,safe' openhpc_job_maxtime: '1-0' + +nodegroups_map: + - key: "name" + test: "match" + args: ["gpu-.*"] + inject: + gres: + - conf: "gpu:A100:1" + file: "/dev/nvidia0"