Compute: Enable vGPU in Nova if exist on the host

Since Queens release Nova support vGPUs. In order to use it,
nova must have the right configuration. This commit will
enable vGPU in the nova configuration if some mdev[1] devices
exist on the compute node.

[1] - https://docs.openstack.org/nova/latest/admin/virtual-gpu.html#how-to-discover-a-gpu-type

Change-Id: Ia30b1a4fe38eb966f029f16142b8302707107bfc
Signed-off-by: Valentin Boucher <valentin.boucher@kontron.com>
This commit is contained in:
Valentin Boucher 2018-08-28 12:57:23 -04:00
parent 3ebffbd6ac
commit 4d3fb82ab4
3 changed files with 40 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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 %}