From 6a4cb24d39623930fd240e67d65013803459839d Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 11 Feb 2020 17:18:25 +0000 Subject: [PATCH] conf: Deprecate '[scheduler] driver' With the removal of 'CachingScheduler' in Stein (19.0.0), the 'FilterScheduler' is the only in-tree scheduler provided by nova. The removal of the caching scheduler was motivated in good part because "more and more functionality within nova [now] relies on managing (sometimes complex) resource allocations in the placement service". This same argument applies for out-of-tree drivers. It's unlikely that there are users with out-of-tree drivers that have good placement integration and significantly outperform the default filter scheduler. As a result, it's probably time to close this extension point in favour of continued improvements on the filter scheduler and placement along with custom filters and weighters for the filter scheduler. Change-Id: Id65e0b16fe062509097b8e3f58eb81bfe1cc2bfa Signed-off-by: Stephen Finucane --- nova/conf/scheduler.py | 9 +++++++++ ...precate-scheduler-driver-opt-4d6a266590b52e2c.yaml | 11 +++++++++++ 2 files changed, 20 insertions(+) create mode 100644 releasenotes/notes/deprecate-scheduler-driver-opt-4d6a266590b52e2c.yaml diff --git a/nova/conf/scheduler.py b/nova/conf/scheduler.py index b90f16c370..d76693d6ad 100644 --- a/nova/conf/scheduler.py +++ b/nova/conf/scheduler.py @@ -26,6 +26,15 @@ scheduler_opts = [ default="filter_scheduler", deprecated_name="scheduler_driver", deprecated_group="DEFAULT", + deprecated_for_removal=True, + deprecated_since='21.0.0', + deprecated_reason=""" +nova no longer provides any in-tree filters except for the 'filter_scheduler' +scheduler. This filter is considered flexible and pluggable enough for all use +cases and can be extended through the use of custom, out-of-tree filters and +weighers along with powerful, in-tree filters like the +'AggregateInstanceExtraSpecsFilter' and 'ComputeCapabilitiesFilter' filters. +""", help=""" The class of the driver used by the scheduler. This should be chosen from one of the entrypoints under the namespace 'nova.scheduler.driver' of file diff --git a/releasenotes/notes/deprecate-scheduler-driver-opt-4d6a266590b52e2c.yaml b/releasenotes/notes/deprecate-scheduler-driver-opt-4d6a266590b52e2c.yaml new file mode 100644 index 0000000000..6bf0b01598 --- /dev/null +++ b/releasenotes/notes/deprecate-scheduler-driver-opt-4d6a266590b52e2c.yaml @@ -0,0 +1,11 @@ +--- +deprecations: + - | + The ``[scheduler] driver`` config option has been deprecated. This was + previously used to switch between different scheduler drivers including + custom, out-of-tree ones. However, only the ``FilterScheduler`` has been + supported in-tree since 19.0.0 (Stein) and nova increasingly relies on + placement for basic functionality, meaning developing and maintaining + out-of-tree drivers is increasingly difficult. Users who still rely on a + custom scheduler driver should migrate to the filter scheduler, using + custom filters and weighters where necessary.