diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index d5a34abf66..572aff7a11 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -527,6 +527,17 @@ parameters: ownership and selinux context. default: - 'triliovault-mounts' + NovaLibvirtMaxQueues: + type: number + description: > + Add parameter to configure the libvirt max_queues. The maximum number + of virtio queue pairs that can be enabled when creating a multiqueue guest. + The number of virtio queues allocated will be the lesser of the CPUs + requested by the guest and the max value defined. + Default 0 corresponds to not set + default: 0 + tags: + - role_specific # DEPRECATED: the following options are deprecated and are currently maintained # for backwards compatibility. They will be removed in future release. @@ -721,6 +732,8 @@ resources: NovaDisableImageDownloadToRbd: {get_param: NovaDisableImageDownloadToRbd} NovaLiveMigrationPermitPostCopy: {get_param: NovaLiveMigrationPermitPostCopy} NovaLiveMigrationPermitAutoConverge: {get_param: NovaLiveMigrationPermitAutoConverge} + NovaLibvirtMaxQueues: {get_param: NovaLibvirtMaxQueues} + conditions: enable_instance_ha: {equals: [{get_param: EnableInstanceHA}, true]} @@ -776,6 +789,12 @@ conditions: - equals: [{get_param: [RoleParameters, NovaLiveMigrationPermitAutoConverge]}, ''] - equals: [{get_param: NovaLiveMigrationPermitAutoConverge}, ''] + nova_libvirt_max_queues_set: + not: + or: + - equals: [{get_param: NovaLibvirtMaxQueues}, 0] + - equals: [{get_param: [RoleParameters, NovaLibvirtMaxQueues]}, 0] + outputs: role_data: description: Role data for the Nova Compute service. @@ -893,6 +912,11 @@ outputs: - libvirt_file_backed_memory_enabled - '1.0' - {get_attr: [RoleParametersValue, value, 'nova::ram_allocation_ratio']} + - + if: + - nova_libvirt_max_queues_set + - nova::compute::libvirt::max_queues: {get_attr: [RoleParametersValue, value, nova_libvirt_max_queues]} + - {} service_config_settings: rsyslog: tripleo_logging_sources_nova_compute: diff --git a/releasenotes/notes/nova_libvirt_max_queues-8024fc63105bd25d.yaml b/releasenotes/notes/nova_libvirt_max_queues-8024fc63105bd25d.yaml new file mode 100644 index 0000000000..ffb100a3c4 --- /dev/null +++ b/releasenotes/notes/nova_libvirt_max_queues-8024fc63105bd25d.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Add NovaLibvirtMaxQueues role parameter to set [libvirt]/max_queues in + nova.conf of the compute. Default 0 corresponds to not set meaning the + legacy limits based on the reported kernel major version will be used.