Deprecate the IronicHostManager

The use_baremetal_filters and baremetal_enabled_filters options
along with the ExactRamFilter, ExactCoreFilter and ExactDiskFilter
filters were all deprecated in Pike:

  I843353427c90142a366ae9ca63ee4298b4f3ecd4

The IronicHostManager is configurable and relies on those options,
so if those options are deprecated then the IronicHostManager should
also be deprecated.

The sticky part with this is going to be filters that don't work with
ironic nodes today, like the NUMATopologyFilter, so a note is left
in the use_baremetal_filters option code to remind us that we can't
likely remove any of this until all filters work with ironic nodes.

Change-Id: Iebc74a09990dcda8cf0ee2a41f9ae1058d2a182a
This commit is contained in:
Matt Riedemann 2017-11-20 15:11:42 -05:00
parent 14f6674a30
commit c99fc64271
4 changed files with 30 additions and 0 deletions

View File

@ -31,6 +31,9 @@ The scheduler host manager to use.
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 @@ Related options:
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

View File

@ -22,6 +22,7 @@ ram from a host / node as it is supporting Baremetal hosts, which can not be
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 @@ class IronicNodeState(host_manager.HostState):
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

View File

@ -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

View File

@ -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 =