Stop documenting netboot and the boot_option capability

Both will be removed soon. The documentation change is separated
to reduce the size of the final patch.

Change-Id: If4b9b0d095500101ca71a453d71ad95252dd8c0c
This commit is contained in:
Dmitry Tantsur 2022-07-26 16:41:14 +02:00
parent f8135b22f6
commit 41484988ef
11 changed files with 25 additions and 315 deletions

View File

@ -135,8 +135,7 @@ from the ``manageable`` state to ``active`` state::
baremetal port create <node_mac_address> --node <node_uuid> baremetal port create <node_mac_address> --node <node_uuid>
baremetal node set testnode \ baremetal node set testnode \
--instance-info image_source="http://localhost:8080/blankimage" \ --instance-info image_source="http://localhost:8080/blankimage"
--instance-info capabilities="{\"boot_option\": \"local\"}"
baremetal node manage testnode --wait baremetal node manage testnode --wait

View File

@ -296,13 +296,8 @@ Node configuration
- ``deploy_iso``: The glance UUID of the deploy ramdisk ISO image. - ``deploy_iso``: The glance UUID of the deploy ramdisk ISO image.
- ``instance info/boot_iso`` property to be either boot iso - ``instance info/boot_iso`` property to be either boot iso
Glance UUID or a HTTP(S) URL. This is optional property and is used when Glance UUID or a HTTP(S) URL. This is optional property and is used with
``boot_option`` is set to ``netboot`` or ``ramdisk``. :doc:`/admin/ramdisk-boot`.
.. note::
When ``boot_option`` is set to ``ramdisk``, the ironic node must be
configured to use ``ramdisk`` deploy interface. See :ref:`ramdisk-deploy`
for details.
.. note:: .. note::
The ``boot_iso`` property used to be called ``ilo_boot_iso`` before The ``boot_iso`` property used to be called ``ilo_boot_iso`` before
@ -1043,9 +1038,7 @@ to send management information and images in encrypted channel over HTTPS.
Deploy Process Deploy Process
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Please refer to `Netboot in swiftless deploy for intermediate images`_ for Please refer to `Swiftless deploy for intermediate images`_.
partition image support and `Localboot in swiftless deploy for intermediate images`_
for whole disk image support.
HTTP(S) Based Deploy Support HTTP(S) Based Deploy Support
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -1063,8 +1056,7 @@ must be reachable by the conductor and the bare metal nodes.
Deploy Process Deploy Process
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
Please refer to `Netboot with HTTP(S) based deploy`_ for partition image boot Please refer to `HTTP(S) based deploy`_.
and `Localboot with HTTP(S) based deploy`_ for whole disk image boot.
Support for iLO driver with Standalone Ironic Support for iLO driver with Standalone Ironic
@ -1084,58 +1076,8 @@ intermediate images on conductor as described in
Deploy Process Deploy Process
============== ==============
.. note:: Glance and swift for partition images
Network boot is deprecated and will be removed in the Zed release. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. TODO(dtantsur): review these diagrams to exclude netboot.
Netboot with glance and swift
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
diagram {
Glance; Conductor; Baremetal; Swift; IPA; iLO;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Conductor -> iLO [label = "Powers off the node"];
Conductor -> Glance [label = "Download user image"];
Conductor -> Glance [label = "Get the metadata for deploy ISO"];
Conductor -> Conductor [label = "Generates swift tempURL for deploy ISO"];
Conductor -> Conductor [label = "Creates the FAT32 image containing Ironic API URL and driver name"];
Conductor -> Swift [label = "Uploads the FAT32 image"];
Conductor -> Conductor [label = "Generates swift tempURL for FAT32 image"];
Conductor -> iLO [label = "Attaches the FAT32 image swift tempURL as virtual media floppy"];
Conductor -> iLO [label = "Attaches the deploy ISO swift tempURL as virtual media CDROM"];
Conductor -> iLO [label = "Sets one time boot to CDROM"];
Conductor -> iLO [label = "Reboot the node"];
iLO -> Swift [label = "Downloads deploy ISO"];
Baremetal -> iLO [label = "Boots deploy kernel/ramdisk from iLO virtual media CDROM"];
IPA -> Conductor [label = "Lookup node"];
Conductor -> IPA [label = "Provides node UUID"];
IPA -> Conductor [label = "Heartbeat"];
Conductor -> IPA [label = "Sends the user image HTTP(S) URL"];
IPA -> Swift [label = "Retrieves the user image on bare metal"];
IPA -> IPA [label = "Writes user image to disk"];
Conductor -> Conductor [label = "Generates the boot ISO"];
Conductor -> Swift [label = "Uploads the boot ISO"];
Conductor -> Conductor [label = "Generates swift tempURL for boot ISO"];
Conductor -> iLO [label = "Attaches boot ISO swift tempURL as virtual media CDROM"];
Conductor -> iLO [label = "Sets boot device to CDROM"];
Conductor -> IPA [label = "Power off the node"];
Conductor -> iLO [label = "Power on the node"];
iLO -> Swift [label = "Downloads boot ISO"];
iLO -> Baremetal [label = "Boots the instance kernel/ramdisk from iLO virtual media CDROM"];
Baremetal -> Baremetal [label = "Instance kernel finds root partition and continues booting from disk"];
}
Localboot with glance and swift for partition images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag:: .. seqdiag::
:scale: 80 :scale: 80
@ -1176,8 +1118,8 @@ Localboot with glance and swift for partition images
} }
Localboot with glance and swift Glance and swift with whole-disk images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag:: .. seqdiag::
:scale: 80 :scale: 80
@ -1216,52 +1158,8 @@ Localboot with glance and swift
Baremetal -> Baremetal [label = "Boot user image from disk"]; Baremetal -> Baremetal [label = "Boot user image from disk"];
} }
Netboot in swiftless deploy for intermediate images Swiftless deploy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
diagram {
Glance; Conductor; Baremetal; ConductorWebserver; IPA; iLO;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Conductor -> iLO [label = "Powers off the node"];
Conductor -> Glance [label = "Download user image"];
Conductor -> Glance [label = "Get the metadata for deploy ISO"];
Conductor -> Conductor [label = "Generates swift tempURL for deploy ISO"];
Conductor -> Conductor [label = "Creates the FAT32 image containing Ironic API URL and driver name"];
Conductor -> ConductorWebserver [label = "Uploads the FAT32 image"];
Conductor -> iLO [label = "Attaches the FAT32 image URL as virtual media floppy"];
Conductor -> iLO [label = "Attaches the deploy ISO swift tempURL as virtual media CDROM"];
Conductor -> iLO [label = "Sets one time boot to CDROM"];
Conductor -> iLO [label = "Reboot the node"];
iLO -> Swift [label = "Downloads deploy ISO"];
Baremetal -> iLO [label = "Boots deploy kernel/ramdisk from iLO virtual media CDROM"];
IPA -> Conductor [label = "Lookup node"];
Conductor -> IPA [label = "Provides node UUID"];
IPA -> Conductor [label = "Heartbeat"];
Conductor -> IPA [label = "Sends the user image HTTP(S) URL"];
IPA -> ConductorWebserver [label = "Retrieves the user image on bare metal"];
IPA -> IPA [label = "Writes user image to root partition"];
Conductor -> Conductor [label = "Generates the boot ISO"];
Conductor -> ConductorWebserver [label = "Uploads the boot ISO"];
Conductor -> iLO [label = "Attaches boot ISO URL as virtual media CDROM"];
Conductor -> iLO [label = "Sets boot device to CDROM"];
Conductor -> IPA [label = "Power off the node"];
Conductor -> iLO [label = "Power on the node"];
iLO -> ConductorWebserver [label = "Downloads boot ISO"];
iLO -> Baremetal [label = "Boots the instance kernel/ramdisk from iLO virtual media CDROM"];
Baremetal -> Baremetal [label = "Instance kernel finds root partition and continues booting from disk"];
}
Localboot in swiftless deploy for intermediate images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag:: .. seqdiag::
:scale: 80 :scale: 80
@ -1299,51 +1197,8 @@ Localboot in swiftless deploy for intermediate images
Baremetal -> Baremetal [label = "Boot user image from disk"]; Baremetal -> Baremetal [label = "Boot user image from disk"];
} }
Netboot with HTTP(S) based deploy HTTP(S) based deploy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
diagram {
Webserver; Conductor; Baremetal; Swift; IPA; iLO;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Conductor -> iLO [label = "Powers off the node"];
Conductor -> Webserver [label = "Download user image"];
Conductor -> Conductor [label = "Creates the FAT32 image containing Ironic API URL and driver name"];
Conductor -> Swift [label = "Uploads the FAT32 image"];
Conductor -> Conductor [label = "Generates swift tempURL for FAT32 image"];
Conductor -> iLO [label = "Attaches the FAT32 image swift tempURL as virtual media floppy"];
Conductor -> iLO [label = "Attaches the deploy ISO URL as virtual media CDROM"];
Conductor -> iLO [label = "Sets one time boot to CDROM"];
Conductor -> iLO [label = "Reboot the node"];
iLO -> Webserver [label = "Downloads deploy ISO"];
Baremetal -> iLO [label = "Boots deploy kernel/ramdisk from iLO virtual media CDROM"];
IPA -> Conductor [label = "Lookup node"];
Conductor -> IPA [label = "Provides node UUID"];
IPA -> Conductor [label = "Heartbeat"];
Conductor -> IPA [label = "Sends the user image HTTP(S) URL"];
IPA -> Swift [label = "Retrieves the user image on bare metal"];
IPA -> IPA [label = "Writes user image to disk"];
Conductor -> Conductor [label = "Generates the boot ISO"];
Conductor -> Swift [label = "Uploads the boot ISO"];
Conductor -> Conductor [label = "Generates swift tempURL for boot ISO"];
Conductor -> iLO [label = "Attaches boot ISO swift tempURL as virtual media CDROM"];
Conductor -> iLO [label = "Sets boot device to CDROM"];
Conductor -> IPA [label = "Power off the node"];
Conductor -> iLO [label = "Power on the node"];
iLO -> Swift [label = "Downloads boot ISO"];
iLO -> Baremetal [label = "Boots the instance kernel/ramdisk from iLO virtual media CDROM"];
Baremetal -> Baremetal [label = "Instance kernel finds root partition and continues booting from disk"];
}
Localboot with HTTP(S) based deploy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag:: .. seqdiag::
:scale: 80 :scale: 80
@ -1379,49 +1234,8 @@ Localboot with HTTP(S) based deploy
Baremetal -> Baremetal [label = "Boot user image from disk"]; Baremetal -> Baremetal [label = "Boot user image from disk"];
} }
Netboot in standalone ironic Standalone ironic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
diagram {
Webserver; Conductor; Baremetal; ConductorWebserver; IPA; iLO;
activation = none;
span_height = 1;
edge_length = 250;
default_note_color = white;
default_fontsize = 14;
Conductor -> iLO [label = "Powers off the node"];
Conductor -> Webserver [label = "Download user image"];
Conductor -> Conductor [label = "Creates the FAT32 image containing Ironic API URL and driver name"];
Conductor -> ConductorWebserver[label = "Uploads the FAT32 image"];
Conductor -> iLO [label = "Attaches the FAT32 image URL as virtual media floppy"];
Conductor -> iLO [label = "Attaches the deploy ISO URL as virtual media CDROM"];
Conductor -> iLO [label = "Sets one time boot to CDROM"];
Conductor -> iLO [label = "Reboot the node"];
iLO -> Webserver [label = "Downloads deploy ISO"];
Baremetal -> iLO [label = "Boots deploy kernel/ramdisk from iLO virtual media CDROM"];
IPA -> Conductor [label = "Lookup node"];
Conductor -> IPA [label = "Provides node UUID"];
IPA -> Conductor [label = "Heartbeat"];
Conductor -> IPA [label = "Sends the user image HTTP(S) URL"];
IPA -> ConductorWebserver [label = "Retrieves the user image on bare metal"];
IPA -> IPA [label = "Writes user image to root partition"];
Conductor -> Conductor [label = "Generates the boot ISO"];
Conductor -> ConductorWebserver [label = "Uploads the boot ISO"];
Conductor -> iLO [label = "Attaches boot ISO URL as virtual media CDROM"];
Conductor -> iLO [label = "Sets boot device to CDROM"];
Conductor -> IPA [label = "Power off the node"];
Conductor -> iLO [label = "Power on the node"];
iLO -> ConductorWebserver [label = "Downloads boot ISO"];
iLO -> Baremetal [label = "Boots the instance kernel/ramdisk from iLO virtual media CDROM"];
Baremetal -> Baremetal [label = "Instance kernel finds root partition and continues booting from disk"];
}
Localboot in standalone ironic
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag:: .. seqdiag::
:scale: 80 :scale: 80

View File

@ -132,8 +132,8 @@ Node configuration
- ``driver_info/deploy_iso`` property to be either deploy iso - ``driver_info/deploy_iso`` property to be either deploy iso
file name, Glance UUID, or Image Service URL. file name, Glance UUID, or Image Service URL.
- ``instance info/boot_iso`` property to be either boot iso - ``instance info/boot_iso`` property to be either boot iso
file name, Glance UUID, or Image Service URL. This is optional file name, Glance UUID, or Image Service URL. This is used
property when ``boot_option`` is set to ``netboot``. with the ``ramdisk`` deploy interface.
.. note:: .. note::
The ``deploy_iso`` and ``boot_iso`` properties used to be called The ``deploy_iso`` and ``boot_iso`` properties used to be called

View File

@ -131,8 +131,6 @@ Anaconda deploy
The ``anaconda`` deploy interface is another option for highly customized The ``anaconda`` deploy interface is another option for highly customized
deployments. See :doc:`/admin/anaconda-deploy-interface` for more details. deployments. See :doc:`/admin/anaconda-deploy-interface` for more details.
.. _ramdisk-deploy:
Ramdisk deploy Ramdisk deploy
============== ==============

View File

@ -321,7 +321,6 @@ default:
deploy: deploy:
continue_if_disk_secure_erase_fails = False continue_if_disk_secure_erase_fails = False
default_boot_option = local
erase_devices_metadata_priority = None erase_devices_metadata_priority = None
erase_devices_priority = 0 erase_devices_priority = 0
http_root = /opt/stack/data/ironic/httpboot http_root = /opt/stack/data/ironic/httpboot

View File

@ -138,7 +138,7 @@ A few things should be checked in this case:
+------------+----------------------------------+ +------------+----------------------------------+
| Field | Value | | Field | Value |
+------------+----------------------------------+ +------------+----------------------------------+
| properties | capabilities:boot_option='local' | | properties | capabilities:boot_mode='uefi' |
+------------+----------------------------------+ +------------+----------------------------------+
But in Ironic node:: But in Ironic node::
@ -147,7 +147,7 @@ A few things should be checked in this case:
+------------+-----------------------------------------+ +------------+-----------------------------------------+
| Property | Value | | Property | Value |
+------------+-----------------------------------------+ +------------+-----------------------------------------+
| properties | {u'capabilities': u'boot_option:local'} | | properties | {u'capabilities': u'boot_mode:uefi'} |
+------------+-----------------------------------------+ +------------+-----------------------------------------+
#. After making changes to nodes in Ironic, it takes time for those changes #. After making changes to nodes in Ironic, it takes time for those changes

View File

@ -3,8 +3,6 @@
Advanced features Advanced features
================= =================
.. include:: include/local-boot-partition-images.inc
.. include:: include/root-device-hints.inc .. include:: include/root-device-hints.inc
.. include:: include/kernel-boot-parameters.inc .. include:: include/kernel-boot-parameters.inc

View File

@ -1,56 +0,0 @@
.. _local-boot-partition-images:
Local boot with partition images
--------------------------------
The Bare Metal service supports local boot with partition images, meaning that
after the deployment the node's subsequent reboots won't happen via PXE or
Virtual Media. Instead, it will boot from a local boot loader installed on
the disk.
.. note:: Whole disk images, on the contrary, support only local boot, and use
it by default.
It's important to note that in order for this to work the image being
deployed with Bare Metal service **must** contain ``grub2`` installed within it.
Enabling the local boot is different when Bare Metal service is used with
Compute service and without it.
The following sections will describe both methods.
.. _ironic-python-agent: https://docs.openstack.org/ironic-python-agent/latest/
Enabling local boot with Compute service
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To enable local boot we need to set a capability on the bare metal node,
for example::
baremetal node set <node-uuid> --property capabilities="boot_option:local"
Nodes having ``boot_option`` set to ``local`` may be requested by adding
an ``extra_spec`` to the Compute service flavor, for example::
openstack flavor set baremetal --property capabilities:boot_option="local"
.. note::
If the node is configured to use ``UEFI``, Bare Metal service will create
an ``EFI partition`` on the disk and switch the partition table format to
``gpt``. The ``EFI partition`` will be used later by the boot loader
(which is installed from the deploy ramdisk).
.. _local-boot-without-compute:
Enabling local boot without Compute
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Since adding ``capabilities`` to the node's properties is only used by
the nova scheduler to perform more advanced scheduling of instances,
we need a way to enable local boot when Compute is not present. To do that
we can simply specify the capability via the ``instance_info`` attribute
of the node, for example::
baremetal node set <node-uuid> --instance-info capabilities='{"boot_option": "local"}'

View File

@ -135,44 +135,9 @@ The Bare Metal service can deploy two types of images:
.. warning:: .. warning::
Partition images are only supported with GNU/Linux operating systems. Partition images are only supported with GNU/Linux operating systems.
.. warning:: For the Bare Metal service to set up the bootloader during deploy, your
If you plan on using local boot, your partition images must contain GRUB2 partition images must container either GRUB2 bootloader or ready-to-use
bootloader tools to enable ironic to set up the bootloader during deploy. EFI artifacts.
Local vs network boot
---------------------
The Bare Metal service supports booting user instances either using a local
bootloader or using the driver's boot interface (e.g. via PXE_ or iPXE_
protocol in case of the ``pxe`` interface).
Network boot cannot be used with certain architectures (for example, when no
tenant networks have access to the control plane).
Additional considerations are related to the ``pxe`` boot interface, and other
boot interfaces based on it:
* Local boot makes node's boot process independent of the Bare Metal conductor
managing it. Thus, nodes are able to reboot correctly, even if the Bare Metal
TFTP or HTTP service is down.
* Network boot (and iPXE) must be used when booting nodes from remote volumes,
if the driver does not support attaching volumes out-of-band.
The default boot option for the cloud can be changed via the Bare Metal service
configuration file, for example:
.. code-block:: ini
[deploy]
default_boot_option = local
This default can be overridden by setting the ``boot_option`` capability on a
node. See :ref:`local-boot-partition-images` for details.
.. note::
Currently, local boot is used by default. It's safer to set
the ``default_boot_option`` explicitly.
.. _refarch-common-networking: .. _refarch-common-networking:

View File

@ -158,8 +158,9 @@ remain 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, kernel and #. The ironic node's deploy interface caches the instance image (normal
ramdisk if needed (it is needed in case of netboot for example). deployment), kernel and ramdisk (``ramdisk`` deploy) or ISO (``ramdisk``
deploy with virtual media).
#. The ironic node's power interface instructs the node to power on. #. The ironic node's power interface instructs the node to power on.

View File

@ -186,14 +186,6 @@ Capabilities
previously ironic used a separate ``instance_info/deploy_boot_mode`` previously ironic used a separate ``instance_info/deploy_boot_mode``
field instead. field instead.
* To override the :ref:`boot option <local-boot-partition-images>` used for
this instance, set the ``boot_option`` capability:
.. code-block:: shell
baremetal node set $NODE_UUID \
--instance-info capabilities='{"boot_option": "local"}'
* Starting with the Ussuri release, you can set :ref:`root device hints * Starting with the Ussuri release, you can set :ref:`root device hints
<root-device-hints>` per instance: <root-device-hints>` per instance: