Deploy steps documentation
Change-Id: Ia6d5336ee074ac5f44226c09c3b3c239f0e50162 Story: #1753128 Task: #22592
This commit is contained in:
parent
157739435e
commit
995b538e6e
@ -25,10 +25,10 @@ automated cleaning on the node to ensure it's ready for another workload. This
|
|||||||
ensures the tenant will get a consistent bare metal node deployed every time.
|
ensures the tenant will get a consistent bare metal node deployed every time.
|
||||||
|
|
||||||
Ironic implements automated cleaning by collecting a list of cleaning steps
|
Ironic implements automated cleaning by collecting a list of cleaning steps
|
||||||
to perform on a node from the Power, Deploy, Management, and RAID interfaces
|
to perform on a node from the Power, Deploy, Management, BIOS, and RAID
|
||||||
of the driver assigned to the node. These steps are then ordered by priority
|
interfaces of the driver assigned to the node. These steps are then ordered by
|
||||||
and executed on the node when the node is moved
|
priority and executed on the node when the node is moved to ``cleaning`` state,
|
||||||
to ``cleaning`` state, if automated cleaning is enabled.
|
if automated cleaning is enabled.
|
||||||
|
|
||||||
With automated cleaning, nodes move to ``cleaning`` state when moving from
|
With automated cleaning, nodes move to ``cleaning`` state when moving from
|
||||||
``active`` -> ``available`` state (when the hardware is recycled from one
|
``active`` -> ``available`` state (when the hardware is recycled from one
|
||||||
@ -63,7 +63,7 @@ Cleaning steps
|
|||||||
Cleaning steps used for automated cleaning are ordered from higher to lower
|
Cleaning steps used for automated cleaning are ordered from higher to lower
|
||||||
priority, where a larger integer is a higher priority. In case of a conflict
|
priority, where a larger integer is a higher priority. In case of a conflict
|
||||||
between priorities across interfaces, the following resolution order is used:
|
between priorities across interfaces, the following resolution order is used:
|
||||||
Power, Management, Deploy, and RAID interfaces.
|
Power, Management, Deploy, BIOS, and RAID interfaces.
|
||||||
|
|
||||||
You can skip a cleaning step by setting the priority for that cleaning step
|
You can skip a cleaning step by setting the priority for that cleaning step
|
||||||
to zero or 'None'.
|
to zero or 'None'.
|
||||||
@ -236,6 +236,7 @@ across hardware interfaces, the following resolution order is used:
|
|||||||
#. Power interface
|
#. Power interface
|
||||||
#. Management interface
|
#. Management interface
|
||||||
#. Deploy interface
|
#. Deploy interface
|
||||||
|
#. BIOS interface
|
||||||
#. RAID interface
|
#. RAID interface
|
||||||
|
|
||||||
For manual cleaning, the cleaning steps should be specified in the desired
|
For manual cleaning, the cleaning steps should be specified in the desired
|
||||||
|
60
doc/source/admin/deploy-steps.rst
Normal file
60
doc/source/admin/deploy-steps.rst
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
============
|
||||||
|
Deploy steps
|
||||||
|
============
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
Node deployment is performed by the Bare Metal service to prepare a node for
|
||||||
|
use by a workload. The exact work flow used depends on a number of factors,
|
||||||
|
including the hardware type and interfaces assigned to a node.
|
||||||
|
|
||||||
|
Customizing deployment
|
||||||
|
======================
|
||||||
|
|
||||||
|
The Bare Metal service implements deployment by collecting a list of deploy
|
||||||
|
steps to perform on a node from the Power, Deploy, Management, BIOS, and RAID
|
||||||
|
interfaces of the driver assigned to the node. These steps are then ordered by
|
||||||
|
priority and executed on the node when the node is moved to the ``deploying``
|
||||||
|
state.
|
||||||
|
|
||||||
|
Nodes move to the ``deploying`` state when attempting to move to the ``active``
|
||||||
|
state (when the hardware is prepared for use by a workload). For a full
|
||||||
|
understanding of all state transitions into deployment, please see
|
||||||
|
:ref:`states`.
|
||||||
|
|
||||||
|
The Bare Metal service added support for deploy steps in the Rocky release.
|
||||||
|
|
||||||
|
Deploy steps
|
||||||
|
------------
|
||||||
|
|
||||||
|
Deploy steps are ordered from higher to lower priority, where a larger integer
|
||||||
|
is a higher priority. If the same priority is used by deploy steps on different
|
||||||
|
interfaces, the following resolution order is used: Power, Management, Deploy,
|
||||||
|
BIOS, and RAID interfaces.
|
||||||
|
|
||||||
|
FAQ
|
||||||
|
===
|
||||||
|
|
||||||
|
What deploy step is running?
|
||||||
|
----------------------------
|
||||||
|
To check what deploy step the node is performing or attempted to perform and
|
||||||
|
failed, run the following command; it will return the value in the node's
|
||||||
|
``driver_internal_info`` field::
|
||||||
|
|
||||||
|
openstack baremetal node show $node_ident -f value -c driver_internal_info
|
||||||
|
|
||||||
|
The ``deploy_steps`` field will contain a list of all remaining steps with
|
||||||
|
their priorities, and the first one listed is the step currently in progress or
|
||||||
|
that the node failed before going into ``deploy failed`` state.
|
||||||
|
|
||||||
|
Troubleshooting
|
||||||
|
===============
|
||||||
|
If deployment fails on a node, the node will be put into the ``deploy failed``
|
||||||
|
state until the node is deprovisioned. A deprovisioned node is moved to the
|
||||||
|
``available`` state after the cleaning process has been performed successfully.
|
||||||
|
|
||||||
|
Strategies for determining why a deploy step failed include checking the ironic
|
||||||
|
conductor logs, checking logs from the ironic-python-agent that have been
|
||||||
|
stored on the ironic conductor, or performing general hardware troubleshooting
|
||||||
|
on the node.
|
@ -11,6 +11,7 @@ the services.
|
|||||||
Drivers, Hardware Types and Hardware Interfaces <drivers>
|
Drivers, Hardware Types and Hardware Interfaces <drivers>
|
||||||
Ironic Python Agent <drivers/ipa>
|
Ironic Python Agent <drivers/ipa>
|
||||||
Node Hardware Inspection <inspection>
|
Node Hardware Inspection <inspection>
|
||||||
|
Deploy steps <deploy-steps>
|
||||||
Node Cleaning <cleaning>
|
Node Cleaning <cleaning>
|
||||||
Node Adoption <adoption>
|
Node Adoption <adoption>
|
||||||
RAID Configuration <raid>
|
RAID Configuration <raid>
|
||||||
|
@ -232,6 +232,8 @@ Here is the list of existing common and agent driver attributes:
|
|||||||
|
|
||||||
* ``is_whole_disk_image``: A Boolean value to indicate whether the user image contains ramdisk/kernel.
|
* ``is_whole_disk_image``: A Boolean value to indicate whether the user image contains ramdisk/kernel.
|
||||||
* ``clean_steps``: An ordered list of clean steps that will be performed on the node.
|
* ``clean_steps``: An ordered list of clean steps that will be performed on the node.
|
||||||
|
* ``deploy_steps``: An ordered list of deploy steps that will be performed on the node. Support for
|
||||||
|
deploy steps was added in the ``11.1.0`` release.
|
||||||
* ``instance``: A list of dictionaries containing the disk layout values.
|
* ``instance``: A list of dictionaries containing the disk layout values.
|
||||||
* ``root_uuid_or_disk_id``: A String value of the bare metal node's root partition uuid or disk id.
|
* ``root_uuid_or_disk_id``: A String value of the bare metal node's root partition uuid or disk id.
|
||||||
* ``persistent_boot_device``: A String value of device from ``ironic.common.boot_devices``.
|
* ``persistent_boot_device``: A String value of device from ``ironic.common.boot_devices``.
|
||||||
|
@ -49,6 +49,15 @@ The minimum required interfaces are:
|
|||||||
A few common implementations are provided by the ``GenericHardware`` base
|
A few common implementations are provided by the ``GenericHardware`` base
|
||||||
class.
|
class.
|
||||||
|
|
||||||
|
As of the Rocky release, a deploy interface should decorate its deploy method
|
||||||
|
to indicate that it is a deploy step. Conventionally, the deploy method uses
|
||||||
|
a priority of 100.
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@ironic.drivers.base.deploy_step(priority=100)
|
||||||
|
def deploy(self, task):
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Most of the hardware types should not override this interface.
|
Most of the hardware types should not override this interface.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user