diff --git a/tasks/main.yml b/tasks/main.yml index 039dbfbc..679e7e97 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -73,6 +73,11 @@ - always - nova-config +- include_tasks: nova_vgpu_detect.yml + tags: + - always + - nova-config + - include_tasks: nova_pre_install.yml tags: - nova-install diff --git a/tasks/nova_vgpu_detect.yml b/tasks/nova_vgpu_detect.yml new file mode 100644 index 00000000..c64166cf --- /dev/null +++ b/tasks/nova_vgpu_detect.yml @@ -0,0 +1,30 @@ +--- +# Copyright 2018, Kontron. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Check if the mdev folder exist + stat: path=/sys/class/mdev_bus + register: mdev_folder + +- name: Get mdev info content and store as var + command: "/bin/sh -c 'ls -1 /sys/class/mdev_bus/*/mdev_supported_types'" + register: mdev + when: mdev_folder.stat.exists + +- name: Register a fact for nova enabled_vgpu_types + set_fact: + enabled_vgpu_types: "{{ mdev.stdout_lines | unique }}" + when: + - mdev.stdout_lines is defined + - mdev.stdout_lines | length > 0 diff --git a/templates/nova.conf.j2 b/templates/nova.conf.j2 index fa2695c6..3cbfe11a 100644 --- a/templates/nova.conf.j2 +++ b/templates/nova.conf.j2 @@ -345,3 +345,8 @@ server_groups = {{ nova_quota_server_groups }} [upgrade_levels] compute=auto + +{% if enabled_vgpu_types is defined %} +[devices] +enabled_vgpu_types = {{ enabled_vgpu_types | join(',') }} +{% endif %}