From 77f3b3391ecd98f8bab2105fd47dc70b32136ea9 Mon Sep 17 00:00:00 2001 From: Ramamani Yeleswarapu Date: Tue, 28 Feb 2017 14:32:07 -0800 Subject: [PATCH] Update the Ironic Upgrade guide This patch does the following: - streamlines the upgrade information - adds headers for L->M, M->N and N->O upgrades. Partial-Bug: #1606675 Change-Id: I0cdf423ed1bf302f2c721e87cec291712f3f18d3 --- doc/source/deploy/upgrade-guide.rst | 125 ++++++++++++++++------------ 1 file changed, 72 insertions(+), 53 deletions(-) diff --git a/doc/source/deploy/upgrade-guide.rst b/doc/source/deploy/upgrade-guide.rst index 41ef7cd40d..b586ef1a5f 100644 --- a/doc/source/deploy/upgrade-guide.rst +++ b/doc/source/deploy/upgrade-guide.rst @@ -9,32 +9,56 @@ upgrading their ironic-driven clouds from previous versions of OpenStack. The ironic service is tightly coupled with the ironic driver that is shipped with nova. Some special considerations must be taken into account -when upgrading your cloud from previous versions of OpenStack. +when upgrading your cloud. -The `release notes `_ -should always be read carefully when upgrading the ironic service. Starting -with the Mitaka series, specific upgrade steps and considerations are -well-documented in the release notes. Specific upgrade considerations prior -to the Mitaka series are documented below. +Plan your Upgrade +================= -Upgrades are only supported one series at a time, or within a series. +* The `release notes `_ + should always be read carefully when upgrading the ironic service. Starting + with the Mitaka release, specific upgrade steps and considerations are + well-documented in the release notes. -General upgrades - all versions +* Upgrades are only supported one series at a time, or within a series. + +* Starting with the Liberty release, the ironic service should always be + upgraded before the nova service. + + .. note:: + The ironic virt driver in nova always uses a specific version of the + ironic REST API. This API version may be one that was introduced in the + same development cycle, so upgrading nova first may result in nova being + unable to use ironic's API. + +* When upgrading ironic, the following steps should always be taken: + + #. Update ironic code, without restarting services. + + #. Run database migrations. + + #. Restart ironic-conductor and ironic-api services. + + +Upgrading from Newton to Ocata +============================== + +There are no specific upgrade instructions other than the +`Ocata release notes `_. + + +Upgrading from Mitaka to Newton =============================== -Starting with the Liberty release, the ironic service should always be upgraded -before the nova service. The ironic virt driver in nova always uses a specific -version of the ironic REST API. This API version may be one that was introduced -in the same development cycle, so upgrading nova first may result in nova being -unable to use ironic's API. +There are no specific upgrade instructions other than the +`Newton release notes `_. -When upgrading ironic, the following steps should always be taken: -* Update ironic code, without restarting services yet. +Upgrading from Liberty to Mitaka +================================ -* Run database migrations +There are no specific upgrade instructions other than the +`Mitaka release notes `_. -* Restart ironic-conductor and ironic-api services. Upgrading from Kilo to Liberty ============================== @@ -42,47 +66,41 @@ Upgrading from Kilo to Liberty In-band Inspection ------------------ -If you used in-band inspection with **ironic-discoverd**, you have to install +If you used in-band inspection with **ironic-discoverd**, it is highly +recommended that you switch to using **ironic-inspector**, which is a newer +(and compatible on API level) version of the same service. You have to install **python-ironic-inspector-client** during the upgrade. This package contains a client module for the in-band inspection service, which was previously part of the **ironic-discoverd** package. Ironic Liberty supports the **ironic-discoverd** service, but does not support its in-tree client module. -Please refer to -`ironic-inspector version support matrix +Please refer to `ironic-inspector version support matrix `_ -for details on which ironic versions can work with which +for details on which ironic versions are compatible with which **ironic-inspector**/**ironic-discoverd** versions. -It's also highly recommended that you switch to using **ironic-inspector**, -which is a newer (and compatible on API level) version of the same service. - The discoverd to inspector upgrade procedure is as follows: -#. Install **ironic-inspector** on the machine where you have - **ironic-discoverd** (usually the same as conductor). +* Install **ironic-inspector** on the machine where you have + **ironic-discoverd** (usually the same as conductor). -#. (Recommended) update the **ironic-inspector** configuration file to stop - using deprecated configuration options, as marked by the comments in the - `example.conf - `_. +* Update the **ironic-inspector** configuration file to stop using deprecated + configuration options, as marked by the comments in the `example.conf + `_. + It is recommended you move the configuration file to + ``/etc/ironic-inspector/inspector.conf``. - The file name is provided on the command line when starting - **ironic-discoverd**, and the previously recommended default was - ``/etc/ironic-discoverd/discoverd.conf``. In this case, for the sake of - consistency it's recommended you move the configuration file to - ``/etc/ironic-inspector/inspector.conf``. +* Shutdown **ironic-discoverd**, and start **ironic-inspector**. -#. Shutdown **ironic-discoverd**, and start **ironic-inspector**. +* During upgrade of each conductor instance: -#. During upgrade of each conductor instance: + #. Shutdown the conductor. + #. Uninstall **ironic-discoverd**, + install **python-ironic-inspector-client**. + #. Update the conductor. + #. Update ``ironic.conf`` to use ``[inspector]`` section + instead of ``[discoverd]`` (option names are the same). + #. Start the conductor. - #. Shutdown the conductor - #. Uninstall **ironic-discoverd**, - install **python-ironic-inspector-client** - #. Update the conductor Kilo -> Liberty - #. (Recommended) update ``ironic.conf`` to use ``[inspector]`` section - instead of ``[discoverd]`` (option names are the same) - #. Start the conductor Upgrading from Juno to Kilo =========================== @@ -96,7 +114,7 @@ your nova and ironic services are as follows: - Edit nova.conf and ensure force_config_drive=False is set in the [DEFAULT] group. Restart nova-compute if necessary. -- Install new nova code, run database migrations +- Install new nova code, run database migrations. - Install new python-ironicclient code. - Restart nova services. - Install new ironic code, run database migrations, restart ironic services. @@ -110,15 +128,16 @@ upgrade has completed. Cleaning -------- -A new feature in Kilo is support for the automated cleaning of nodes between -workloads to ensure the node is ready for another workload. This can include -erasing the hard drives, updating firmware, and other steps. For more -information, see :ref:`automated_cleaning`. +A new feature starting from Kilo cycle is support for the automated cleaning +of nodes between workloads to ensure the node is ready for another workload. +This can include erasing the hard drives, updating firmware, and other steps. +For more information, see :ref:`automated_cleaning`. If ironic is configured with automated cleaning enabled (defaults to True) and -to use Neutron as the DHCP provider (also the default), you will need to set the -`cleaning_network_uuid` option in the ironic configuration file before starting -the Kilo ironic service. See `Configure the Bare Metal service for cleaning`_ -for information on how to set up the cleaning network for ironic. +neutron is set as the DHCP provider (also the default), you will need to set +the `cleaning_network_uuid` option in the ironic configuration file before +starting the ironic service. See +`Configure the Bare Metal service for cleaning`_ for information on how to set +up the cleaning network for ironic. .. _`Configure the Bare Metal service for cleaning`: http://docs.openstack.org/project-install-guide/baremetal/draft/configure-cleaning.html