diff --git a/nova/conf/scheduler.py b/nova/conf/scheduler.py index 61da10f9a24..a955d65bc94 100644 --- a/nova/conf/scheduler.py +++ b/nova/conf/scheduler.py @@ -31,6 +31,9 @@ The host manager manages the in-memory picture of the hosts that the scheduler uses. The options values are chosen from the entry points under the namespace 'nova.scheduler.host_manager' in 'setup.cfg'. + +NOTE: The "ironic_host_manager" option is deprecated as of the 17.0.0 Queens +release. """), cfg.StrOpt("driver", default="filter_scheduler", @@ -320,6 +323,10 @@ cfg.BoolOpt("use_baremetal_filters", deprecated_name="scheduler_use_baremetal_filters", deprecated_group="DEFAULT", + # NOTE(mriedem): We likely can't remove this option until the + # IronicHostManager is removed, and we likely can't remove that + # until all filters can at least not fail on ironic nodes, like the + # NUMATopologyFilter. deprecated_for_removal=True, deprecated_reason=""" These filters were used to overcome some of the baremetal scheduling diff --git a/nova/scheduler/ironic_host_manager.py b/nova/scheduler/ironic_host_manager.py index 4e2b9a3b503..c19cee64324 100644 --- a/nova/scheduler/ironic_host_manager.py +++ b/nova/scheduler/ironic_host_manager.py @@ -22,6 +22,7 @@ subdivided into multiple instances. """ from oslo_log import log as logging +from oslo_log import versionutils import nova.conf from nova import context as context_module @@ -88,6 +89,13 @@ def _locked_consume_from_request(self, spec_obj): class IronicHostManager(host_manager.HostManager): """Ironic HostManager class.""" + def __init__(self): + super(IronicHostManager, self).__init__() + msg = ('The IronicHostManager is deprecated and may be removed as ' + 'early as the 18.0.0 Rocky release. Deployments need to ' + 'schedule based on resource classes.') + versionutils.report_deprecated_feature(LOG, msg) + @staticmethod def _is_ironic_compute(compute): ht = compute.hypervisor_type if 'hypervisor_type' in compute else None diff --git a/releasenotes/notes/deprecate-ironic-host-manager-bacb8d7b1e318e37.yaml b/releasenotes/notes/deprecate-ironic-host-manager-bacb8d7b1e318e37.yaml new file mode 100644 index 00000000000..334b1fa0db8 --- /dev/null +++ b/releasenotes/notes/deprecate-ironic-host-manager-bacb8d7b1e318e37.yaml @@ -0,0 +1,14 @@ +--- +deprecations: + - | + The `IronicHostManager` is now deprecated along with the + ``[scheduler]/host_manager`` option of ``ironic_host_manager``. + + As of the 16.0.0 Pike release, the ``ExactRamFilter``, ``ExactCoreFilter``, + and ``ExactDiskFilter`` scheduler filters are all deprecated along with + the ``[scheduler]/use_baremetal_filters`` and + ``[scheduler]/baremental_enabled_filters`` options. Deployments should + migrate to using resource classes with baremetal flavors as described in + the ironic install guide: + + https://docs.openstack.org/ironic/latest/install/configure-nova-flavors.html#scheduling-based-on-resource-classes diff --git a/setup.cfg b/setup.cfg index 31f506c42f5..60bb79db450 100644 --- a/setup.cfg +++ b/setup.cfg @@ -83,6 +83,7 @@ nova.ipv6_backend = nova.scheduler.host_manager = host_manager = nova.scheduler.host_manager:HostManager + # Deprecated starting from the 17.0.0 Queens release. ironic_host_manager = nova.scheduler.ironic_host_manager:IronicHostManager nova.scheduler.driver =