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 node set testnode \
--instance-info image_source="http://localhost:8080/blankimage" \
--instance-info capabilities="{\"boot_option\": \"local\"}"
--instance-info image_source="http://localhost:8080/blankimage"
baremetal node manage testnode --wait

View File

@ -296,13 +296,8 @@ Node configuration
- ``deploy_iso``: The glance UUID of the deploy ramdisk ISO image.
- ``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
``boot_option`` is set to ``netboot`` or ``ramdisk``.
.. 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.
Glance UUID or a HTTP(S) URL. This is optional property and is used with
:doc:`/admin/ramdisk-boot`.
.. note::
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
~~~~~~~~~~~~~~
Please refer to `Netboot in swiftless deploy for intermediate images`_ for
partition image support and `Localboot in swiftless deploy for intermediate images`_
for whole disk image support.
Please refer to `Swiftless deploy for intermediate images`_.
HTTP(S) Based Deploy Support
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -1063,8 +1056,7 @@ must be reachable by the conductor and the bare metal nodes.
Deploy Process
~~~~~~~~~~~~~~
Please refer to `Netboot with HTTP(S) based deploy`_ for partition image boot
and `Localboot with HTTP(S) based deploy`_ for whole disk image boot.
Please refer to `HTTP(S) based deploy`_.
Support for iLO driver with Standalone Ironic
@ -1084,58 +1076,8 @@ intermediate images on conductor as described in
Deploy Process
==============
.. note::
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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Glance and swift for partition images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. seqdiag::
: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::
:scale: 80
@ -1216,52 +1158,8 @@ Localboot with glance and swift
Baremetal -> Baremetal [label = "Boot user image from disk"];
}
Netboot in swiftless deploy for intermediate images
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Swiftless deploy
^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
@ -1299,51 +1197,8 @@ Localboot in swiftless deploy for intermediate images
Baremetal -> Baremetal [label = "Boot user image from disk"];
}
Netboot with 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
HTTP(S) based deploy
^^^^^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80
@ -1379,49 +1234,8 @@ Localboot with HTTP(S) based deploy
Baremetal -> Baremetal [label = "Boot user image from disk"];
}
Netboot in 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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Standalone ironic
^^^^^^^^^^^^^^^^^
.. seqdiag::
:scale: 80

View File

@ -132,8 +132,8 @@ Node configuration
- ``driver_info/deploy_iso`` property to be either deploy iso
file name, Glance UUID, or Image Service URL.
- ``instance info/boot_iso`` property to be either boot iso
file name, Glance UUID, or Image Service URL. This is optional
property when ``boot_option`` is set to ``netboot``.
file name, Glance UUID, or Image Service URL. This is used
with the ``ramdisk`` deploy interface.
.. note::
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
deployments. See :doc:`/admin/anaconda-deploy-interface` for more details.
.. _ramdisk-deploy:
Ramdisk deploy
==============

View File

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

View File

@ -138,7 +138,7 @@ A few things should be checked in this case:
+------------+----------------------------------+
| Field | Value |
+------------+----------------------------------+
| properties | capabilities:boot_option='local' |
| properties | capabilities:boot_mode='uefi' |
+------------+----------------------------------+
But in Ironic node::
@ -147,7 +147,7 @@ A few things should be checked in this case:
+------------+-----------------------------------------+
| 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

View File

@ -3,8 +3,6 @@
Advanced features
=================
.. include:: include/local-boot-partition-images.inc
.. include:: include/root-device-hints.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::
Partition images are only supported with GNU/Linux operating systems.
.. warning::
If you plan on using local boot, your partition images must contain GRUB2
bootloader tools to enable ironic to set up the bootloader during deploy.
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.
For the Bare Metal service to set up the bootloader during deploy, your
partition images must container either GRUB2 bootloader or ready-to-use
EFI artifacts.
.. _refarch-common-networking:

View File

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

View File

@ -186,14 +186,6 @@ Capabilities
previously ironic used a separate ``instance_info/deploy_boot_mode``
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
<root-device-hints>` per instance: