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
|
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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user