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:
parent
6c9e28dd50
commit
382a43627e
@ -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
|
||||
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
|
||||
@ -147,3 +128,26 @@ Ramdisk deploy
|
||||
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
|
||||
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
|
||||
|
@ -119,15 +119,15 @@ These pre-requisites must be met before the deployment process:
|
||||
- user-image-vmlinuz
|
||||
- user-image-initrd
|
||||
|
||||
* Hardware to be enrolled via Ironic RESTful API service.
|
||||
* Hardware to be enrolled via the bare metal API service.
|
||||
|
||||
Deploy Process
|
||||
--------------
|
||||
|
||||
This describes a typical ironic node deployment using PXE and the Ironic
|
||||
Python Agent (IPA). Depending on the ironic driver interfaces used, some of the
|
||||
steps might be marginally different, however the majority of them will remain
|
||||
the same.
|
||||
This describes a typical bare metal node deployment within OpenStack using PXE
|
||||
to boot the ramdisk. Depending on the ironic driver interfaces used, some of
|
||||
the steps might be marginally different, however the majority of them will
|
||||
remain the same.
|
||||
|
||||
#. A boot instance request comes in via the Nova API, through the message
|
||||
queue to the Nova scheduler.
|
||||
@ -178,19 +178,18 @@ the same.
|
||||
#. The ironic node's management interface issues commands to enable network
|
||||
boot of a node.
|
||||
|
||||
#. The ironic node's deploy interface caches the instance image (in case of
|
||||
``iscsi`` deploy interface), and kernel and ramdisk if needed (it is
|
||||
needed in case of netboot for example).
|
||||
#. The ironic node's deploy interface caches the instance image, kernel and
|
||||
ramdisk if needed (it is needed in case of netboot for example).
|
||||
|
||||
#. The ironic node's power interface instructs the node to power on.
|
||||
|
||||
#. The node boots the deploy ramdisk.
|
||||
|
||||
#. Depending on the exact driver used, either the conductor copies the image
|
||||
over iSCSI to the physical node (:ref:`iscsi-deploy`) or the deploy ramdisk
|
||||
downloads the image from a temporary URL (:ref:`direct-deploy`).
|
||||
The temporary URL can be generated by Swift API-compatible object stores,
|
||||
for example Swift itself or RadosGW.
|
||||
#. Depending on the exact driver used, the deploy ramdisk downloads the image
|
||||
from a URL (:ref:`direct-deploy`) or the conductor uses SSH to execute
|
||||
commands (:ref:`ansible-deploy`). The URL can be generated by Swift
|
||||
API-compatible object stores, for example Swift itself or RadosGW, or
|
||||
provided by a user.
|
||||
|
||||
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
|
||||
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:
|
||||
|
||||
Example 2: PXE Boot and Direct Deploy Process
|
||||
Example 1: PXE Boot and Direct Deploy Process
|
||||
---------------------------------------------
|
||||
|
||||
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`_)
|
||||
|
||||
.. _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
|
||||
.. _slides: http://www.slideshare.net/devananda1/isnt-it-ironic-managing-a-bare-metal-cloud-osl-tes-2015
|
||||
|
Loading…
Reference in New Issue
Block a user