diff --git a/manifests/compute/libvirt.pp b/manifests/compute/libvirt.pp index cadeac218..ec33eb15d 100644 --- a/manifests/compute/libvirt.pp +++ b/manifests/compute/libvirt.pp @@ -187,6 +187,15 @@ # the global default settings. # Defaults to undef # +# [*pmem_namespaces*] +# (optional) Configure persistent memory(pmem) namespaces. These namespaces +# must have been already created on the host. This config option is in the +# following format: "$LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]]" +# $NSNAME is the name of the pmem namespace. $LABEL represents one resource +# class, this is used to generate the resource class name as +# CUSTOM_PMEM_NAMESPACE_$LABEL. +# Defaults to $::os_service_default + class nova::compute::libvirt ( $ensure_package = 'present', $libvirt_virt_type = 'kvm', @@ -222,6 +231,7 @@ class nova::compute::libvirt ( $mem_stats_period_seconds = $::os_service_default, $log_filters = undef, $tls_priority = undef, + $pmem_namespaces = $::os_service_default, ) inherits nova::params { include ::nova::deps @@ -320,6 +330,7 @@ class nova::compute::libvirt ( 'libvirt/nfs_mount_options': value => $nfs_mount_options; 'libvirt/num_pcie_ports': value => $num_pcie_ports; 'libvirt/mem_stats_period_seconds': value => $mem_stats_period_seconds; + 'libvirt/pmem_namespaces': value => $pmem_namespaces; } # cpu_model param is only valid if cpu_mode=custom diff --git a/releasenotes/notes/add_pmem_namespaces-7c425a8c65ecd119.yaml b/releasenotes/notes/add_pmem_namespaces-7c425a8c65ecd119.yaml new file mode 100644 index 000000000..54c9621c0 --- /dev/null +++ b/releasenotes/notes/add_pmem_namespaces-7c425a8c65ecd119.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add support for managing configuration for persistent memory(pmem) + namespaces. \ No newline at end of file diff --git a/spec/classes/nova_compute_libvirt_spec.rb b/spec/classes/nova_compute_libvirt_spec.rb index 60f644fd6..dd1ce4c2e 100644 --- a/spec/classes/nova_compute_libvirt_spec.rb +++ b/spec/classes/nova_compute_libvirt_spec.rb @@ -66,6 +66,7 @@ describe 'nova::compute::libvirt' do it { is_expected.to contain_nova_config('libvirt/nfs_mount_options').with_value('')} it { is_expected.to contain_nova_config('libvirt/num_pcie_ports').with_value('')} it { is_expected.to contain_nova_config('libvirt/mem_stats_period_seconds').with_value('')} + it { is_expected.to contain_nova_config('libvirt/pmem_namespaces').with_value('')} it { is_expected.to_not contain_libvirtd_config('log_outputs')} it { is_expected.to_not contain_libvirtd_config('log_filters')} it { is_expected.to_not contain_libvirtd_config('tls_priority')} @@ -101,6 +102,7 @@ describe 'nova::compute::libvirt' do :mem_stats_period_seconds => 20, :log_filters => '1:qemu', :tls_priority => 'NORMAL:-VERS-SSL3.0', + :pmem_namespaces => '128G:ns0|ns1|ns2|ns3' } end @@ -130,6 +132,7 @@ describe 'nova::compute::libvirt' do it { is_expected.to contain_nova_config('libvirt/nfs_mount_options').with_value('rw,intr,nolock')} it { is_expected.to contain_nova_config('libvirt/num_pcie_ports').with_value(16)} it { is_expected.to contain_nova_config('libvirt/mem_stats_period_seconds').with_value(20)} + it { is_expected.to contain_nova_config('libvirt/pmem_namespaces').with_value("128G:ns0|ns1|ns2|ns3")} it { is_expected.to contain_libvirtd_config('log_filters').with_value("\"#{params[:log_filters]}\"")} it { is_expected.to contain_libvirtd_config('tls_priority').with_value("\"#{params[:tls_priority]}\"")} it {