Fix nova device_spec to support multiple values

It appears there was a change to remove the list option when
moving from pci_passthrough_whitelist. Instead device_spec
can be specified multiple times in the file.

This patch aims to resolve this whilst maintaining backwards
compatibility.

Change-Id: I12b38e45d7b41fbf4786d3320e511eb9127fe216
(cherry picked from commit c7a976c5841c502aec0b95d1246c4ef8cf0a163b)
This commit is contained in:
Andrew Bonney 2024-02-06 08:56:33 +00:00 committed by Dmitriy Rabotyagov
parent b4ff4dc038
commit 52ec4145c8
2 changed files with 11 additions and 6 deletions

View File

@ -565,11 +565,10 @@ nova_api_os_compute_uwsgi_ini_overrides: {}
nova_enabled_mdev_types: "{{ nova_enabled_vgpu_types | default({}) }}"
# PCI devices passthrough to nova
# For SR-IOV please use:
# nova_device_spec: '{ "physical_network": "<ml2 network name>", "devname": "<physical nic>" }'
# Example:
# nova_device_spec: '{ "physical_network": "physnet1", "devname": "p1p1" }'
nova_device_spec: "{{ nova_pci_passthrough_whitelist | default({}) }}"
# Example:
# nova_device_spec:
# - '{ "physical_network": "physnet1", "devname": "p1p1" }'
nova_device_spec: "{{ nova_pci_passthrough_whitelist | default([]) }}"
# PCI alias,
# Example:

View File

@ -351,8 +351,14 @@ device_addresses = {{ (record.address is string) | ternary(record.address, recor
{% if nova_device_spec or nova_pci_alias %}
[pci]
{% if nova_device_spec %}
# White list of PCI devices available to VMs.
# PCI devices available to VMs
{% if nova_device_spec is mapping %}
device_spec = {{ nova_device_spec }}
{% else %}
{% for item in nova_device_spec %}
device_spec = {{ item }}
{% endfor %}
{% endif %}
{% endif %}
{% if nova_pci_alias %}
# PCI Alias