From 3414ab14cacc6e855bbdc3381f3d6c8bdccbdec0 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Tue, 1 Aug 2017 10:58:42 -0400 Subject: [PATCH] Deprecate cells v1 With multi-cell support in Pike, we should deprecate cells v1 so we can at least start the deprecation signaling in the docs and release notes. We may not end up removing cells v1 code in Queens, but this at least gives us the option. Note that we also want to do this because nova-network cannot be removed until we remove cells v1. Change-Id: I1a173f7ce0715e684850e030c358e8175fa8724c --- doc/source/cli/nova-cells.rst | 3 +- doc/source/user/cells.rst | 3 + nova/cmd/cells.py | 3 + nova/conf/cells.py | 86 +++++++++++++++---- .../deprecate-cellsv1-592b3c3612a9dfa5.yaml | 6 ++ 5 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 releasenotes/notes/deprecate-cellsv1-592b3c3612a9dfa5.yaml diff --git a/doc/source/cli/nova-cells.rst b/doc/source/cli/nova-cells.rst index 0b12d25cbbd2..2b5fc92fd995 100644 --- a/doc/source/cli/nova-cells.rst +++ b/doc/source/cli/nova-cells.rst @@ -27,7 +27,8 @@ The nova-cells service handles communication between cells and selects cells for new instances. .. warning:: Everything in this document is referring to Cells v1, which is - not recommended for new deployments. For information about commands to use + not recommended for new deployments and is deprecated in favor of Cells v2 + as of the 16.0.0 Pike release. For information about commands to use with Cells v2, see the man page for :ref:`man-page-cells-v2`. OPTIONS diff --git a/doc/source/user/cells.rst b/doc/source/user/cells.rst index 1f63326a695a..c7cca0d96882 100644 --- a/doc/source/user/cells.rst +++ b/doc/source/user/cells.rst @@ -38,6 +38,9 @@ See `Comparison with Cells V1`_ for more detail. Status ~~~~~~ +.. warning:: Cells v1 is deprecated in favor of Cells v2 as of the + 16.0.0 Pike release. + Cells v1 is considered experimental and receives much less testing than the rest of Nova. For example, there is no job for testing cells v1 with Neutron. diff --git a/nova/cmd/cells.py b/nova/cmd/cells.py index 9af3937abde6..7303ed0889f4 100644 --- a/nova/cmd/cells.py +++ b/nova/cmd/cells.py @@ -29,6 +29,7 @@ from nova import utils from nova import version CONF = nova.conf.CONF +LOG = logging.getLogger('nova.cells') def main(): @@ -39,6 +40,8 @@ def main(): gmr.TextGuruMeditation.setup_autorun(version) + LOG.warning('Cells v1 is deprecated in favor of Cells v2 and will be ' + 'removed in the future.') server = service.Service.create(binary='nova-cells', topic=cells.TOPIC, manager='nova.cells.manager.CellsManager') diff --git a/nova/conf/cells.py b/nova/conf/cells.py index 5fd7e84c0bf6..0eac5b5f6d3f 100644 --- a/nova/conf/cells.py +++ b/nova/conf/cells.py @@ -18,8 +18,8 @@ from oslo_config import cfg cells_group = cfg.OptGroup('cells', title='Cells Options', help=""" -Cells options allow you to use cells functionality in openstack -deployment. +DEPRECATED: Cells options allow you to use cells v1 functionality in an +OpenStack deployment. Note that the options in this group are only for cells v1 functionality, which is considered experimental and not recommended for new deployments. Cells v1 @@ -31,6 +31,9 @@ required and all Nova deployments will be at least a cells v2 cell of one. cells_opts = [ cfg.BoolOpt('enable', default=False, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Enable cell v1 functionality. @@ -58,6 +61,9 @@ Related options: """), cfg.StrOpt('name', default='nova', + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Name of the current cell. @@ -72,6 +78,9 @@ Related options: """), cfg.ListOpt('capabilities', default=['hypervisor=xenserver;kvm', 'os=linux;windows'], + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Cell capabilities. @@ -86,6 +95,9 @@ Possible values: """), cfg.IntOpt('call_timeout', default=60, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', min=0, help=""" Call timeout. @@ -98,9 +110,11 @@ Possible values: * An integer, corresponding to the interval time in seconds. """), - # TODO(sfinucan): Add min parameter cfg.FloatOpt('reserve_percent', default=10.0, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Reserve percentage @@ -124,6 +138,9 @@ Possible values: cfg.StrOpt('cell_type', default='compute', choices=('api', 'compute'), + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Type of cell. @@ -137,9 +154,11 @@ Related option: * quota_driver: Disable quota checking for the child cells. (nova.quota.NoopQuotaDriver) """), - # TODO(sfinucan): Add min parameter cfg.IntOpt('mute_child_interval', default=300, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Mute child interval. @@ -151,9 +170,11 @@ Possible values: * An integer, corresponding to the interval time in seconds. """), - # TODO(sfinucan): Add min parameter cfg.IntOpt('bandwidth_update_interval', default=600, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Bandwidth update interval. @@ -163,9 +184,11 @@ Possible values: * An integer, corresponding to the interval time in seconds. """), - # TODO(sfinucan): Add min parameter cfg.IntOpt('instance_update_sync_database_limit', default=100, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Instance update sync database limit. @@ -180,9 +203,11 @@ Possible values: ] mute_weigher_opts = [ - # TODO(sfinucan): Add max parameter cfg.FloatOpt('mute_weight_multiplier', default=-10000.0, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Mute weight multiplier. @@ -197,9 +222,11 @@ Possible values: ] ram_weigher_opts = [ - # TODO(sfinucan): Add min parameter cfg.FloatOpt('ram_weight_multiplier', default=10.0, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Ram weight multiplier. @@ -214,9 +241,11 @@ Possible values: ] weigher_opts = [ - # TODO(sfinucan): Add min parameter cfg.FloatOpt('offset_weight_multiplier', default=1.0, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Offset weight multiplier @@ -233,9 +262,11 @@ Possible values: ] cell_manager_opts = [ - # TODO(sfinucan): Add min parameter cfg.IntOpt('instance_updated_at_threshold', default=3600, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Instance updated at threshold @@ -254,9 +285,11 @@ Related options: * This value is used with the ``instance_update_num_instances`` value in a periodic task run. """), - # TODO(sfinucan): Add min parameter cfg.IntOpt("instance_update_num_instances", default=1, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Instance update num instances @@ -278,9 +311,11 @@ Related options: ] cell_messaging_opts = [ - # TODO(sfinucan): Add min parameter cfg.IntOpt('max_hop_count', default=10, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Maximum hop count @@ -295,6 +330,9 @@ Possible values: """), cfg.StrOpt('scheduler', default='nova.cells.scheduler.CellsScheduler', + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Cells scheduler. @@ -307,6 +345,9 @@ in this option, the CellsScheduler is used. cell_rpc_driver_opts = [ cfg.StrOpt('rpc_driver_queue_base', default='cells.intercell', + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" RPC driver queue base. @@ -324,6 +365,9 @@ Possible values: cell_scheduler_opts = [ cfg.ListOpt('scheduler_filter_classes', default=['nova.cells.filters.all_filters'], + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Scheduler filter classes. @@ -355,6 +399,9 @@ to a particular cell. """), cfg.ListOpt('scheduler_weight_classes', default=['nova.cells.weights.all_weighers'], + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Scheduler weight classes. @@ -385,9 +432,11 @@ have a lower weight, like if they're full. And when the weight_offset is set to a very high value (for example, '999999999999999'), it is likely to be picked if another cell do not have a higher weight. """), - # TODO(sfinucan): Add min parameter cfg.IntOpt('scheduler_retries', default=10, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Scheduler retries. @@ -404,9 +453,11 @@ Related options: * This value is used with the ``scheduler_retry_delay`` value while retrying to find a suitable cell. """), - # TODO(sfinucan): Add min parameter cfg.IntOpt('scheduler_retry_delay', default=2, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Scheduler retry delay. @@ -428,9 +479,11 @@ Related options: ] cell_state_manager_opts = [ - # TODO(sfinucan): Add min parameter cfg.IntOpt('db_check_interval', default=60, + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" DB check interval. @@ -445,6 +498,9 @@ Possible values: """), cfg.StrOpt('cells_config', + deprecated_for_removal=True, + deprecated_since='16.0.0', + deprecated_reason='Cells v1 is being replaced with Cells v2.', help=""" Optional cells configuration. diff --git a/releasenotes/notes/deprecate-cellsv1-592b3c3612a9dfa5.yaml b/releasenotes/notes/deprecate-cellsv1-592b3c3612a9dfa5.yaml new file mode 100644 index 000000000000..a811377fdd55 --- /dev/null +++ b/releasenotes/notes/deprecate-cellsv1-592b3c3612a9dfa5.yaml @@ -0,0 +1,6 @@ +--- +deprecations: + - | + Cells v1, which includes the ``[cells]`` configuration options and + ``nova-cells`` service, is deprecated in favor of Cells v2. For information + on Cells v2, see: https://docs.openstack.org/nova/latest/user/cells.html