Migrate scheduler-generic parameters to nova::scheduler
This patch migrates some parameters from nova::scheduler::filter to nova::scheduler, because these are parameters to determine behavior of nova-scheduler, and not specific to scheduler filters. Note that the default value for max_attempts parameter has been changed from 3 to $::os_service_default, because its default is defined as 3 in nova implementation. Change-Id: Ic74e1fdb4adf9f954b6e58343050c5e166d40889
This commit is contained in:
parent
09e13388bb
commit
248deef18e
@ -20,6 +20,16 @@
|
|||||||
# (Optional) The amount of scheduler workers.
|
# (Optional) The amount of scheduler workers.
|
||||||
# Defaults to $::os_workers
|
# Defaults to $::os_workers
|
||||||
#
|
#
|
||||||
|
# [*max_attempts*]
|
||||||
|
# (optional) Maximum number of attempts to schedule an instance
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
|
# [*periodic_task_interval*]
|
||||||
|
# (Optional) This value controls how often (in seconds) to run periodic tasks
|
||||||
|
# in the scheduler. The specific tasks that are run for each period are
|
||||||
|
# determined by the particular scheduler being used.
|
||||||
|
# Defaults to $::os_service_default
|
||||||
|
#
|
||||||
# [*discover_hosts_in_cells_interval*]
|
# [*discover_hosts_in_cells_interval*]
|
||||||
# (Optional) This value controls how often (in seconds) the scheduler should
|
# (Optional) This value controls how often (in seconds) the scheduler should
|
||||||
# attempt to discover new hosts that have been added to cells.
|
# attempt to discover new hosts that have been added to cells.
|
||||||
@ -75,6 +85,8 @@ class nova::scheduler(
|
|||||||
$manage_service = true,
|
$manage_service = true,
|
||||||
$ensure_package = 'present',
|
$ensure_package = 'present',
|
||||||
$workers = $::os_workers,
|
$workers = $::os_workers,
|
||||||
|
$max_attempts = $::os_service_default,
|
||||||
|
$periodic_task_interval = $::os_service_default,
|
||||||
$discover_hosts_in_cells_interval = $::os_service_default,
|
$discover_hosts_in_cells_interval = $::os_service_default,
|
||||||
$query_placement_for_image_type_support = $::os_service_default,
|
$query_placement_for_image_type_support = $::os_service_default,
|
||||||
$limit_tenants_to_placement_aggregate = $::os_service_default,
|
$limit_tenants_to_placement_aggregate = $::os_service_default,
|
||||||
@ -99,8 +111,15 @@ class nova::scheduler(
|
|||||||
ensure_package => $ensure_package,
|
ensure_package => $ensure_package,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# TODO(tkajinam): Remove this when we remove the deprecated parameters
|
||||||
|
# from the nova::scheduler::filter class
|
||||||
|
$max_attempts_real = pick($::nova::scheduler::filter::scheduler_max_attempts, $max_attempts)
|
||||||
|
$periodic_task_interval_real = pick($::nova::scheduler::filter::periodic_task_interval, $periodic_task_interval)
|
||||||
|
|
||||||
nova_config {
|
nova_config {
|
||||||
'scheduler/workers': value => $workers;
|
'scheduler/workers': value => $workers;
|
||||||
|
'scheduler/max_attempts': value => $max_attempts_real;
|
||||||
|
'scheduler/periodic_task_interval': value => $periodic_task_interval_real;
|
||||||
'scheduler/discover_hosts_in_cells_interval': value => $discover_hosts_in_cells_interval;
|
'scheduler/discover_hosts_in_cells_interval': value => $discover_hosts_in_cells_interval;
|
||||||
'scheduler/query_placement_for_image_type_support': value => $query_placement_for_image_type_support;
|
'scheduler/query_placement_for_image_type_support': value => $query_placement_for_image_type_support;
|
||||||
'scheduler/limit_tenants_to_placement_aggregate': value => $limit_tenants_to_placement_aggregate;
|
'scheduler/limit_tenants_to_placement_aggregate': value => $limit_tenants_to_placement_aggregate;
|
||||||
|
@ -4,10 +4,6 @@
|
|||||||
#
|
#
|
||||||
# === Parameters:
|
# === Parameters:
|
||||||
#
|
#
|
||||||
# [*scheduler_max_attempts*]
|
|
||||||
# (optional) Maximum number of attempts to schedule an instance
|
|
||||||
# Defaults to '3'
|
|
||||||
#
|
|
||||||
# [*scheduler_host_subset_size*]
|
# [*scheduler_host_subset_size*]
|
||||||
# (optional) defines the subset size that a host is chosen from
|
# (optional) defines the subset size that a host is chosen from
|
||||||
# Defaults to '1'
|
# Defaults to '1'
|
||||||
@ -41,12 +37,6 @@
|
|||||||
# (optional) Which weight class names to use for weighing hosts
|
# (optional) Which weight class names to use for weighing hosts
|
||||||
# Defaults to 'nova.scheduler.weights.all_weighers'
|
# Defaults to 'nova.scheduler.weights.all_weighers'
|
||||||
#
|
#
|
||||||
# [*periodic_task_interval*]
|
|
||||||
# (optional) This value controls how often (in seconds) to run periodic tasks
|
|
||||||
# in the scheduler. The specific tasks that are run for each period are
|
|
||||||
# determined by the particular scheduler being used.
|
|
||||||
# Defaults to $::os_service_default
|
|
||||||
#
|
|
||||||
# [*track_instance_changes*]
|
# [*track_instance_changes*]
|
||||||
# (optional) Enable querying of individual hosts for instance information.
|
# (optional) Enable querying of individual hosts for instance information.
|
||||||
# Defaults to $::os_service_default
|
# Defaults to $::os_service_default
|
||||||
@ -97,8 +87,19 @@
|
|||||||
# (optional) Separator character(s) for image property namespace and name
|
# (optional) Separator character(s) for image property namespace and name
|
||||||
# Defaults to $::os_service_default
|
# Defaults to $::os_service_default
|
||||||
#
|
#
|
||||||
|
# DEPRECATED PARAMETERS
|
||||||
|
#
|
||||||
|
# [*scheduler_max_attempts*]
|
||||||
|
# (optional) Maximum number of attempts to schedule an instance
|
||||||
|
# Defaults to undef
|
||||||
|
#
|
||||||
|
# [*periodic_task_interval*]
|
||||||
|
# (optional) This value controls how often (in seconds) to run periodic tasks
|
||||||
|
# in the scheduler. The specific tasks that are run for each period are
|
||||||
|
# determined by the particular scheduler being used.
|
||||||
|
# Defaults to undef
|
||||||
|
#
|
||||||
class nova::scheduler::filter (
|
class nova::scheduler::filter (
|
||||||
$scheduler_max_attempts = '3',
|
|
||||||
$scheduler_host_subset_size = '1',
|
$scheduler_host_subset_size = '1',
|
||||||
$max_io_ops_per_host = '8',
|
$max_io_ops_per_host = '8',
|
||||||
$max_instances_per_host = '50',
|
$max_instances_per_host = '50',
|
||||||
@ -107,7 +108,6 @@ class nova::scheduler::filter (
|
|||||||
$scheduler_available_filters = ['nova.scheduler.filters.all_filters'],
|
$scheduler_available_filters = ['nova.scheduler.filters.all_filters'],
|
||||||
$scheduler_default_filters = $::os_service_default,
|
$scheduler_default_filters = $::os_service_default,
|
||||||
$scheduler_weight_classes = 'nova.scheduler.weights.all_weighers',
|
$scheduler_weight_classes = 'nova.scheduler.weights.all_weighers',
|
||||||
$periodic_task_interval = $::os_service_default,
|
|
||||||
$track_instance_changes = $::os_service_default,
|
$track_instance_changes = $::os_service_default,
|
||||||
$ram_weight_multiplier = $::os_service_default,
|
$ram_weight_multiplier = $::os_service_default,
|
||||||
$cpu_weight_multiplier = $::os_service_default,
|
$cpu_weight_multiplier = $::os_service_default,
|
||||||
@ -119,10 +119,23 @@ class nova::scheduler::filter (
|
|||||||
$restrict_isolated_hosts_to_isolated_images = $::os_service_default,
|
$restrict_isolated_hosts_to_isolated_images = $::os_service_default,
|
||||||
$aggregate_image_properties_isolation_namespace = $::os_service_default,
|
$aggregate_image_properties_isolation_namespace = $::os_service_default,
|
||||||
$aggregate_image_properties_isolation_separator = $::os_service_default,
|
$aggregate_image_properties_isolation_separator = $::os_service_default,
|
||||||
|
# DEPRECATED PARAMETERS
|
||||||
|
$scheduler_max_attempts = undef,
|
||||||
|
$periodic_task_interval = undef,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
include nova::deps
|
include nova::deps
|
||||||
|
|
||||||
|
if $scheduler_max_attempts != undef {
|
||||||
|
warning('The nova::scheduler::filter::scheduler_max_attempts parameter has been deprecated and \
|
||||||
|
will be removed in a future release. Use the nova::scheduler::max_attempts parameter instead.')
|
||||||
|
}
|
||||||
|
|
||||||
|
if $periodic_task_interval != undef {
|
||||||
|
warning('The nova::scheduler::filter::periodic_task_interval parameter has been deprecated and \
|
||||||
|
will be removed in a future release. Use the nova::scheduler::periodic_task_interval parameter instead.')
|
||||||
|
}
|
||||||
|
|
||||||
# The following values are following this rule:
|
# The following values are following this rule:
|
||||||
# - default is $::os_service_default so Puppet won't try to configure it.
|
# - default is $::os_service_default so Puppet won't try to configure it.
|
||||||
# - if set, we'll validate it's an array that is not empty and configure the parameter.
|
# - if set, we'll validate it's an array that is not empty and configure the parameter.
|
||||||
@ -158,12 +171,6 @@ class nova::scheduler::filter (
|
|||||||
$isolated_hosts_real = $::os_service_default
|
$isolated_hosts_real = $::os_service_default
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO(aschultz): these should probably be in nova::scheduler ...
|
|
||||||
nova_config {
|
|
||||||
'scheduler/max_attempts': value => $scheduler_max_attempts;
|
|
||||||
'scheduler/periodic_task_interval': value => $periodic_task_interval;
|
|
||||||
}
|
|
||||||
|
|
||||||
nova_config {
|
nova_config {
|
||||||
'filter_scheduler/host_subset_size':
|
'filter_scheduler/host_subset_size':
|
||||||
value => $scheduler_host_subset_size;
|
value => $scheduler_host_subset_size;
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
The following parmaeters in the ``nova::scheduler::filter`` class have been
|
||||||
|
deprecated and will be removed in a future release. Use the new parameters
|
||||||
|
in the ``nova::scheduler`` class.
|
||||||
|
|
||||||
|
- ``nova::scheduler::filter::scheduler_max_attempts`` is replaced by
|
||||||
|
``nova::scheduler::max_attempts``
|
||||||
|
- ``nova::scheduler::filter::periodic_task_interval`` is replaced by
|
||||||
|
``nova::scheduler::periodic_task_interval``
|
@ -9,8 +9,6 @@ describe 'nova::scheduler::filter' do
|
|||||||
shared_examples 'nova::scheduler::filter' do
|
shared_examples 'nova::scheduler::filter' do
|
||||||
|
|
||||||
context 'with default parameters' do
|
context 'with default parameters' do
|
||||||
it { is_expected.to contain_nova_config('scheduler/max_attempts').with_value('3') }
|
|
||||||
it { is_expected.to contain_nova_config('scheduler/periodic_task_interval').with_value('<SERVICE DEFAULT>') }
|
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/host_subset_size').with_value('1') }
|
it { is_expected.to contain_nova_config('filter_scheduler/host_subset_size').with_value('1') }
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/max_io_ops_per_host').with_value('8') }
|
it { is_expected.to contain_nova_config('filter_scheduler/max_io_ops_per_host').with_value('8') }
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/max_instances_per_host').with_value('50') }
|
it { is_expected.to contain_nova_config('filter_scheduler/max_instances_per_host').with_value('50') }
|
||||||
@ -38,7 +36,7 @@ describe 'nova::scheduler::filter' do
|
|||||||
|
|
||||||
context 'when overriding params' do
|
context 'when overriding params' do
|
||||||
let :params do
|
let :params do
|
||||||
{ :scheduler_max_attempts => '4',
|
{
|
||||||
:scheduler_host_subset_size => '3',
|
:scheduler_host_subset_size => '3',
|
||||||
:max_io_ops_per_host => '16',
|
:max_io_ops_per_host => '16',
|
||||||
:max_instances_per_host => '100',
|
:max_instances_per_host => '100',
|
||||||
@ -47,7 +45,6 @@ describe 'nova::scheduler::filter' do
|
|||||||
:scheduler_default_filters => ['RetryFilter','AvailabilityZoneFilter'],
|
:scheduler_default_filters => ['RetryFilter','AvailabilityZoneFilter'],
|
||||||
:scheduler_available_filters => ['nova_filter1','nova_filter2'],
|
:scheduler_available_filters => ['nova_filter1','nova_filter2'],
|
||||||
:scheduler_weight_classes => 'nova.scheduler.weights.compute.BuildFailureWeigher',
|
:scheduler_weight_classes => 'nova.scheduler.weights.compute.BuildFailureWeigher',
|
||||||
:periodic_task_interval => 120,
|
|
||||||
:track_instance_changes => true,
|
:track_instance_changes => true,
|
||||||
:ram_weight_multiplier => 10,
|
:ram_weight_multiplier => 10,
|
||||||
:cpu_weight_multiplier => 20,
|
:cpu_weight_multiplier => 20,
|
||||||
@ -59,8 +56,6 @@ describe 'nova::scheduler::filter' do
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
it { is_expected.to contain_nova_config('scheduler/max_attempts').with_value('4') }
|
|
||||||
it { is_expected.to contain_nova_config('scheduler/periodic_task_interval').with_value(120) }
|
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/host_subset_size').with_value('3') }
|
it { is_expected.to contain_nova_config('filter_scheduler/host_subset_size').with_value('3') }
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/max_io_ops_per_host').with_value('16') }
|
it { is_expected.to contain_nova_config('filter_scheduler/max_io_ops_per_host').with_value('16') }
|
||||||
it { is_expected.to contain_nova_config('filter_scheduler/max_instances_per_host').with_value('100') }
|
it { is_expected.to contain_nova_config('filter_scheduler/max_instances_per_host').with_value('100') }
|
||||||
|
@ -18,6 +18,8 @@ describe 'nova::scheduler' do
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
it { is_expected.to contain_nova_config('scheduler/workers').with_value(4) }
|
it { is_expected.to contain_nova_config('scheduler/workers').with_value(4) }
|
||||||
|
it { is_expected.to contain_nova_config('scheduler/max_attempts').with_value('<SERVICE DEFAULT>') }
|
||||||
|
it { is_expected.to contain_nova_config('scheduler/periodic_task_interval').with_value('<SERVICE DEFAULT>') }
|
||||||
it { is_expected.to contain_nova_config('scheduler/driver').with_ensure('absent') }
|
it { is_expected.to contain_nova_config('scheduler/driver').with_ensure('absent') }
|
||||||
it { is_expected.to contain_nova_config('scheduler/discover_hosts_in_cells_interval').with_value('<SERVICE DEFAULT>') }
|
it { is_expected.to contain_nova_config('scheduler/discover_hosts_in_cells_interval').with_value('<SERVICE DEFAULT>') }
|
||||||
it { is_expected.to contain_nova_config('scheduler/query_placement_for_image_type_support').with_value('<SERVICE DEFAULT>') }
|
it { is_expected.to contain_nova_config('scheduler/query_placement_for_image_type_support').with_value('<SERVICE DEFAULT>') }
|
||||||
@ -56,6 +58,22 @@ describe 'nova::scheduler' do
|
|||||||
it { is_expected.to contain_nova_config('scheduler/workers').with_value(8) }
|
it { is_expected.to contain_nova_config('scheduler/workers').with_value(8) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with max_attempts' do
|
||||||
|
let :params do
|
||||||
|
{ :max_attempts => 10 }
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to contain_nova_config('scheduler/max_attempts').with_value(10) }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with periodic_task_interval' do
|
||||||
|
let :params do
|
||||||
|
{ :periodic_task_interval => 300 }
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to contain_nova_config('scheduler/periodic_task_interval').with_value(300) }
|
||||||
|
end
|
||||||
|
|
||||||
context 'with scheduler driver' do
|
context 'with scheduler driver' do
|
||||||
let :params do
|
let :params do
|
||||||
{ :scheduler_driver => 'custom driver' }
|
{ :scheduler_driver => 'custom driver' }
|
||||||
|
Loading…
Reference in New Issue
Block a user