diff --git a/manifests/scheduler.pp b/manifests/scheduler.pp index c4a7ea9f9..6ea482f09 100644 --- a/manifests/scheduler.pp +++ b/manifests/scheduler.pp @@ -55,6 +55,12 @@ # from the placement service during a scheduling operation. # Defaults to $::os_service_default # +# [*enable_isolated_aggregate_filtering*] +# (Optional) This setting allows the scheduler to restrict hosts in aggregates +# based on matching required traits in the aggregate metadata and the instance +# flavor/image. +# Defaults to $::os_service_default +# class nova::scheduler( $enabled = true, $manage_service = true, @@ -66,6 +72,7 @@ class nova::scheduler( $limit_tenants_to_placement_aggregate = $::os_service_default, $placement_aggregate_required_for_tenants = $::os_service_default, $max_placement_results = $::os_service_default, + $enable_isolated_aggregate_filtering = $::os_service_default, ) { include nova::deps @@ -89,5 +96,6 @@ class nova::scheduler( 'scheduler/limit_tenants_to_placement_aggregate': value => $limit_tenants_to_placement_aggregate; 'scheduler/placement_aggregate_required_for_tenants': value => $placement_aggregate_required_for_tenants; 'scheduler/max_placement_results': value => $max_placement_results; + 'scheduler/enable_isolated_aggregate_filtering': value => $enable_isolated_aggregate_filtering; } } diff --git a/releasenotes/notes/nova_scheduler_enable_isolated_aggregate_filtering-ccadc597f556db7d.yaml b/releasenotes/notes/nova_scheduler_enable_isolated_aggregate_filtering-ccadc597f556db7d.yaml new file mode 100644 index 000000000..2b5f8c743 --- /dev/null +++ b/releasenotes/notes/nova_scheduler_enable_isolated_aggregate_filtering-ccadc597f556db7d.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Add parameter `enable_isolated_aggregate_filtering` which allows the + scheduler to restrict hosts in aggregates based on matching required + traits in the aggregate metadata and the instance flavor/image. + Default value for this parameter is False. diff --git a/spec/classes/nova_scheduler_spec.rb b/spec/classes/nova_scheduler_spec.rb index 41a43931d..705a45e4b 100644 --- a/spec/classes/nova_scheduler_spec.rb +++ b/spec/classes/nova_scheduler_spec.rb @@ -24,6 +24,7 @@ describe 'nova::scheduler' do it { is_expected.to contain_nova_config('scheduler/limit_tenants_to_placement_aggregate').with_value('') } it { is_expected.to contain_nova_config('scheduler/placement_aggregate_required_for_tenants').with_value('') } it { is_expected.to contain_nova_config('scheduler/max_placement_results').with_value('') } + it { is_expected.to contain_nova_config('scheduler/enable_isolated_aggregate_filtering').with_value('') } it { is_expected.to contain_class('nova::availability_zone') } @@ -102,6 +103,14 @@ describe 'nova::scheduler' do it { is_expected.to contain_nova_config('scheduler/max_placement_results').with_value(10) } end + context 'with enable_isolated_aggregate_filtering' do + let :params do + { :enable_isolated_aggregate_filtering => true } + end + + it { is_expected.to contain_nova_config('scheduler/enable_isolated_aggregate_filtering').with_value(true) } + end + context 'with default database parameters' do let :pre_condition do "include nova"