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.