Expose new THT params for cpu model flags

This change adds new THT parameters `NovaLibvirtCPUMode`,
`NovaLibvirtCPUModels` and `NovaLibvirtCPUModelExtraFlags`
which allows to configure `libvirt/cpu_mode`, `libvirt/cpu_model`
and `libvirt/cpu_model_extra_flags` parameters respectively.

NOTE: This backport is slightly different from master patch
because of following reasons:
- Change [1] deprecates `libvirt/cpu_model` in favor
of `libvirt/cpu_models` parameter.
- Change [2] removes redundant `libvirt_` prefix from
parameter names.
 [1] Ib8e9ec2e0bde59e72b0ce3639b64d3e8a6ff9eac
 [2] I44dc4e44411657f0c0d6f35051675b12ce77fdef

Change-Id: I8df21d5d171976cbb8670dc5aef744b5fae657b2
(cherry picked from commit 772b7398a7)
(cherry picked from commit b0580c6dc4)
This commit is contained in:
Rajesh Tailor 2020-09-29 10:39:53 +05:30
parent bcb94f4b75
commit 9071b63b3b
2 changed files with 43 additions and 0 deletions

View File

@ -415,6 +415,36 @@ parameters:
type: boolean
tags:
- role_specific
NovaLibvirtCPUMode:
type: string
description: >
The libvirt CPU mode to configure. Defaults to 'host-model' if virt_type is
set to kvm, otherwise defaults to 'none'
default: 'none'
constraints:
- allowed_values:
- custom
- host-model
- none
- host-passthrough
tags:
- role_specific
NovaLibvirtCPUModels:
type: string
description: >
The named libvirt CPU model (see names listed in /usr/share/libvirt/cpu_map.xml).
Only has effect if cpu_mode="custom" and virt_type="kvm|qemu"
default: ''
tags:
- role_specific
NovaLibvirtCPUModelExtraFlags:
type: string
description: >
This allows specifying granular CPU feature flags when specifying CPU models.
Only has effect if cpu_mode is not set to 'none'.
default: ''
tags:
- role_specific
# DEPRECATED: the following options are deprecated and are currently maintained
# for backwards compatibility. They will be removed in future release.
@ -515,6 +545,9 @@ resources:
nova_pmem_namespaces: NovaPMEMNamespaces
nova::compute::libvirt::remove_unused_original_minimum_age_seconds: NovaImageCacheTTL
compute_disable_irqbalance: NovaComputeDisableIrqBalance
nova::compute::libvirt::libvirt_cpu_mode: NovaLibvirtCPUMode
nova::compute::libvirt::libvirt_cpu_model: NovaLibvirtCPUModels
nova::compute::libvirt::libvirt_cpu_model_extra_flags: NovaLibvirtCPUModelExtraFlags
- values: {get_param: [RoleParameters]}
- values:
NovaVcpuPinSet: {get_param: NovaVcpuPinSet}
@ -590,6 +623,9 @@ resources:
NovaPMEMNamespaces: {get_param: NovaPMEMNamespaces}
NovaImageCacheTTL: {get_param: NovaImageCacheTTL}
NovaComputeDisableIrqBalance: {get_param: NovaComputeDisableIrqBalance}
NovaLibvirtCPUMode: {get_param: NovaLibvirtCPUMode}
NovaLibvirtCPUModels: {get_param: NovaLibvirtCPUModels}
NovaLibvirtCPUModelExtraFlags: {get_param: NovaLibvirtCPUModelExtraFlags}
conditions:
insecure_registry_is_empty: {equals : [{get_param: DockerInsecureRegistryAddress}, []]}

View File

@ -0,0 +1,7 @@
---
features:
- |
Add parameters `NovaLibvirtCPUMode`, `NovaLibvirtCPUModels`
and `NovaLibvirtCPUModelExtraFlags` to allow configuration of
CPU related parameters `libvirt/cpu_mode`, `libvirt/cpu_model` and
`libvirt/cpu_model_extra_flags` respectively.