Mark the iSCSI deploy as deprecated in the docs

Also move it to the bottom of the user guide and fix some ancient
bits (more fixing required).

Change-Id: I118d3385110c85cb6e5f1beacb7c5d1887bda616
This commit is contained in:
Dmitry Tantsur 2020-12-29 17:34:35 +01:00
parent 6c9e28dd50
commit 382a43627e
2 changed files with 94 additions and 91 deletions

View File

@ -6,25 +6,6 @@ A *deploy* interface plays a critical role in the provisioning process. It
orchestrates the whole deployment and defines how the image gets transferred orchestrates the whole deployment and defines how the image gets transferred
to the target disk. to the target disk.
.. _iscsi-deploy:
iSCSI deploy
============
With ``iscsi`` deploy interface, the deploy ramdisk publishes the node's hard
drive as an iSCSI_ share. The ironic-conductor then copies the image to this
share. See :ref:`iSCSI deploy diagram <iscsi-deploy-example>` for a detailed
explanation of how this deploy interface works.
This interface is used by default, if enabled (see
:ref:`enable-hardware-interfaces`). You can specify it explicitly
when creating or updating a node::
baremetal node create --driver ipmi --deploy-interface iscsi
baremetal node set <NODE> --deploy-interface iscsi
.. _iSCSI: https://en.wikipedia.org/wiki/ISCSI
.. _direct-deploy: .. _direct-deploy:
Direct deploy Direct deploy
@ -147,3 +128,26 @@ Ramdisk deploy
The ramdisk interface is intended to provide a mechanism to "deploy" an The ramdisk interface is intended to provide a mechanism to "deploy" an
instance where the item to be deployed is in reality a ramdisk. It is instance where the item to be deployed is in reality a ramdisk. It is
documented separately, see :doc:`/admin/ramdisk-boot`. documented separately, see :doc:`/admin/ramdisk-boot`.
.. _iscsi-deploy:
iSCSI deploy
============
.. warning::
This deploy interface is deprecated and will be removed in the Xena release
cycle. Please use `direct deploy`_ instead.
With ``iscsi`` deploy interface, the deploy ramdisk publishes the node's hard
drive as an iSCSI_ share. The ironic-conductor then copies the image to this
share. See :ref:`iSCSI deploy diagram <iscsi-deploy-example>` for a detailed
explanation of how this deploy interface works.
This interface is used by default, if enabled (see
:ref:`enable-hardware-interfaces`). You can specify it explicitly
when creating or updating a node::
baremetal node create --driver ipmi --deploy-interface iscsi
baremetal node set <NODE> --deploy-interface iscsi
.. _iSCSI: https://en.wikipedia.org/wiki/ISCSI

View File

@ -119,15 +119,15 @@ These pre-requisites must be met before the deployment process:
- user-image-vmlinuz - user-image-vmlinuz
- user-image-initrd - user-image-initrd
* Hardware to be enrolled via Ironic RESTful API service. * Hardware to be enrolled via the bare metal API service.
Deploy Process Deploy Process
-------------- --------------
This describes a typical ironic node deployment using PXE and the Ironic This describes a typical bare metal node deployment within OpenStack using PXE
Python Agent (IPA). Depending on the ironic driver interfaces used, some of the to boot the ramdisk. Depending on the ironic driver interfaces used, some of
steps might be marginally different, however the majority of them will remain the steps might be marginally different, however the majority of them will
the same. remain the same.
#. A boot instance request comes in via the Nova API, through the message #. A boot instance request comes in via the Nova API, through the message
queue to the Nova scheduler. queue to the Nova scheduler.
@ -178,19 +178,18 @@ the same.
#. The ironic node's management interface issues commands to enable network #. The ironic node's management interface issues commands to enable network
boot of a node. boot of a node.
#. The ironic node's deploy interface caches the instance image (in case of #. The ironic node's deploy interface caches the instance image, kernel and
``iscsi`` deploy interface), and kernel and ramdisk if needed (it is ramdisk if needed (it is needed in case of netboot for example).
needed in case of netboot for example).
#. The ironic node's power interface instructs the node to power on. #. The ironic node's power interface instructs the node to power on.
#. The node boots the deploy ramdisk. #. The node boots the deploy ramdisk.
#. Depending on the exact driver used, either the conductor copies the image #. Depending on the exact driver used, the deploy ramdisk downloads the image
over iSCSI to the physical node (:ref:`iscsi-deploy`) or the deploy ramdisk from a URL (:ref:`direct-deploy`) or the conductor uses SSH to execute
downloads the image from a temporary URL (:ref:`direct-deploy`). commands (:ref:`ansible-deploy`). The URL can be generated by Swift
The temporary URL can be generated by Swift API-compatible object stores, API-compatible object stores, for example Swift itself or RadosGW, or
for example Swift itself or RadosGW. provided by a user.
The image deployment is done. The image deployment is done.
@ -259,67 +258,9 @@ The following two examples describe what ironic is doing in more detail,
leaving out the actions performed by nova and some of the more advanced leaving out the actions performed by nova and some of the more advanced
options. options.
.. _iscsi-deploy-example:
Example 1: PXE Boot and iSCSI Deploy Process
--------------------------------------------
This process is how :ref:`iscsi-deploy` works.
.. seqdiag::
:scale: 75
diagram {
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Nova -> API [label = "Set instance_info\n(image_source,\nroot_gb, etc.)"];
Nova -> API [label = "Validate power and deploy\ninterfaces"];
Nova -> API [label = "Plug VIFs to the node"];
Nova -> API [label = "Set provision_state,\noptionally pass configdrive"];
API -> Conductor [label = "do_node_deploy()"];
Conductor -> Conductor [label = "Validate power and deploy interfaces"];
Conductor -> HTTPStore [label = "Store configdrive if configdrive_use_swift \noption is set"];
Conductor -> Node [label = "POWER OFF"];
Conductor -> Neutron [label = "Attach provisioning network to port(s)"];
Conductor -> Neutron [label = "Update DHCP boot options"];
Conductor -> Conductor [label = "Prepare PXE\nenvironment for\ndeployment"];
Conductor -> Node [label = "Set PXE boot device \nthrough the BMC"];
Conductor -> Conductor [label = "Cache deploy\nkernel, ramdisk,\ninstance images"];
Conductor -> Node [label = "REBOOT"];
Node -> Neutron [label = "DHCP request"];
Neutron -> Node [label = "next-server = Conductor"];
Node -> Node [label = "Runs agent\nramdisk"];
Node -> API [label = "lookup()"];
API -> Node [label = "Pass UUID"];
Node -> API [label = "Heartbeat (UUID)"];
API -> Conductor [label = "Heartbeat"];
Conductor -> Node [label = "Send IPA a command to expose disks via iSCSI"];
Conductor -> Node [label = "iSCSI attach"];
Conductor -> Node [label = "Copies user image and configdrive, if present"];
Conductor -> Node [label = "iSCSI detach"];
Conductor -> Conductor [label = "Delete instance\nimage from cache"];
Conductor -> Node [label = "Install boot loader, if requested"];
Conductor -> Neutron [label = "Update DHCP boot options"];
Conductor -> Conductor [label = "Prepare PXE\nenvironment for\ninstance image"];
Conductor -> Node [label = "Set boot device either to PXE or to disk"];
Conductor -> Node [label = "Collect ramdisk logs"];
Conductor -> Node [label = "POWER OFF"];
Conductor -> Neutron [label = "Detach provisioning network\nfrom port(s)"];
Conductor -> Neutron [label = "Bind tenant port"];
Conductor -> Node [label = "POWER ON"];
Conductor -> Conductor [label = "Mark node as\nACTIVE"];
}
(From a `talk`_ and `slides`_)
.. _direct-deploy-example: .. _direct-deploy-example:
Example 2: PXE Boot and Direct Deploy Process Example 1: PXE Boot and Direct Deploy Process
--------------------------------------------- ---------------------------------------------
This process is how :ref:`direct-deploy` works. This process is how :ref:`direct-deploy` works.
@ -377,5 +318,63 @@ This process is how :ref:`direct-deploy` works.
(From a `talk`_ and `slides`_) (From a `talk`_ and `slides`_)
.. _iscsi-deploy-example:
Example 2: PXE Boot and iSCSI Deploy Process
--------------------------------------------
This process is how the currently deprecated :ref:`iscsi-deploy` works.
.. seqdiag::
:scale: 75
diagram {
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Nova -> API [label = "Set instance_info\n(image_source,\nroot_gb, etc.)"];
Nova -> API [label = "Validate power and deploy\ninterfaces"];
Nova -> API [label = "Plug VIFs to the node"];
Nova -> API [label = "Set provision_state,\noptionally pass configdrive"];
API -> Conductor [label = "do_node_deploy()"];
Conductor -> Conductor [label = "Validate power and deploy interfaces"];
Conductor -> HTTPStore [label = "Store configdrive if configdrive_use_swift \noption is set"];
Conductor -> Node [label = "POWER OFF"];
Conductor -> Neutron [label = "Attach provisioning network to port(s)"];
Conductor -> Neutron [label = "Update DHCP boot options"];
Conductor -> Conductor [label = "Prepare PXE\nenvironment for\ndeployment"];
Conductor -> Node [label = "Set PXE boot device \nthrough the BMC"];
Conductor -> Conductor [label = "Cache deploy\nkernel, ramdisk,\ninstance images"];
Conductor -> Node [label = "REBOOT"];
Node -> Neutron [label = "DHCP request"];
Neutron -> Node [label = "next-server = Conductor"];
Node -> Node [label = "Runs agent\nramdisk"];
Node -> API [label = "lookup()"];
API -> Node [label = "Pass UUID"];
Node -> API [label = "Heartbeat (UUID)"];
API -> Conductor [label = "Heartbeat"];
Conductor -> Node [label = "Send IPA a command to expose disks via iSCSI"];
Conductor -> Node [label = "iSCSI attach"];
Conductor -> Node [label = "Copies user image and configdrive, if present"];
Conductor -> Node [label = "iSCSI detach"];
Conductor -> Conductor [label = "Delete instance\nimage from cache"];
Conductor -> Node [label = "Install boot loader, if requested"];
Conductor -> Neutron [label = "Update DHCP boot options"];
Conductor -> Conductor [label = "Prepare PXE\nenvironment for\ninstance image"];
Conductor -> Node [label = "Set boot device either to PXE or to disk"];
Conductor -> Node [label = "Collect ramdisk logs"];
Conductor -> Node [label = "POWER OFF"];
Conductor -> Neutron [label = "Detach provisioning network\nfrom port(s)"];
Conductor -> Neutron [label = "Bind tenant port"];
Conductor -> Node [label = "POWER ON"];
Conductor -> Conductor [label = "Mark node as\nACTIVE"];
}
(From a `talk`_ and `slides`_)
.. _talk: https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/isn-and-039t-it-ironic-the-bare-metal-cloud .. _talk: https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/isn-and-039t-it-ironic-the-bare-metal-cloud
.. _slides: http://www.slideshare.net/devananda1/isnt-it-ironic-managing-a-bare-metal-cloud-osl-tes-2015 .. _slides: http://www.slideshare.net/devananda1/isnt-it-ironic-managing-a-bare-metal-cloud-osl-tes-2015