From 9071b63b3b3c800dbe9fca4cb56339179e5bbfec Mon Sep 17 00:00:00 2001 From: Rajesh Tailor Date: Tue, 29 Sep 2020 10:39:53 +0530 Subject: [PATCH] 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 772b7398a7222e8b286848ba00c06006d6b68785) (cherry picked from commit b0580c6dc498ba080eba67f78a74413b4867c3f5) --- .../nova/nova-compute-container-puppet.yaml | 36 +++++++++++++++++++ .../notes/cpu-flags-5b027db3eb2b86c2.yaml | 7 ++++ 2 files changed, 43 insertions(+) create mode 100644 releasenotes/notes/cpu-flags-5b027db3eb2b86c2.yaml diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index 6e2c19bcb9..dcf3c5e1c2 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -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}, []]} diff --git a/releasenotes/notes/cpu-flags-5b027db3eb2b86c2.yaml b/releasenotes/notes/cpu-flags-5b027db3eb2b86c2.yaml new file mode 100644 index 0000000000..88c095cf0c --- /dev/null +++ b/releasenotes/notes/cpu-flags-5b027db3eb2b86c2.yaml @@ -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.