diff --git a/doc/source/admin/adoption.rst b/doc/source/admin/adoption.rst index 570b360721..3a9d1d14ac 100644 --- a/doc/source/admin/adoption.rst +++ b/doc/source/admin/adoption.rst @@ -135,8 +135,7 @@ from the ``manageable`` state to ``active`` state:: baremetal port create --node 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 diff --git a/doc/source/admin/drivers/ilo.rst b/doc/source/admin/drivers/ilo.rst index 7a2fae8bc4..f764a6d894 100644 --- a/doc/source/admin/drivers/ilo.rst +++ b/doc/source/admin/drivers/ilo.rst @@ -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 diff --git a/doc/source/admin/drivers/irmc.rst b/doc/source/admin/drivers/irmc.rst index 15d245c105..d01a4f9c9f 100644 --- a/doc/source/admin/drivers/irmc.rst +++ b/doc/source/admin/drivers/irmc.rst @@ -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 diff --git a/doc/source/admin/interfaces/deploy.rst b/doc/source/admin/interfaces/deploy.rst index f2ee5d95dd..7db5a24ff3 100644 --- a/doc/source/admin/interfaces/deploy.rst +++ b/doc/source/admin/interfaces/deploy.rst @@ -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 ============== diff --git a/doc/source/admin/report.txt b/doc/source/admin/report.txt index 1f1fc4d8e7..a1c96e2cce 100644 --- a/doc/source/admin/report.txt +++ b/doc/source/admin/report.txt @@ -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 diff --git a/doc/source/admin/troubleshooting.rst b/doc/source/admin/troubleshooting.rst index 8cf49392f4..fa04d3006f 100644 --- a/doc/source/admin/troubleshooting.rst +++ b/doc/source/admin/troubleshooting.rst @@ -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 diff --git a/doc/source/install/advanced.rst b/doc/source/install/advanced.rst index ebb0b99e28..8e8c8fa508 100644 --- a/doc/source/install/advanced.rst +++ b/doc/source/install/advanced.rst @@ -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 diff --git a/doc/source/install/include/local-boot-partition-images.inc b/doc/source/install/include/local-boot-partition-images.inc deleted file mode 100644 index 32ee200ce4..0000000000 --- a/doc/source/install/include/local-boot-partition-images.inc +++ /dev/null @@ -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 --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 --instance-info capabilities='{"boot_option": "local"}' diff --git a/doc/source/install/refarch/common.rst b/doc/source/install/refarch/common.rst index ec2a0dbbbe..800632fd5d 100644 --- a/doc/source/install/refarch/common.rst +++ b/doc/source/install/refarch/common.rst @@ -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: diff --git a/doc/source/user/architecture.rst b/doc/source/user/architecture.rst index de86f47dea..1b034fbb4b 100644 --- a/doc/source/user/architecture.rst +++ b/doc/source/user/architecture.rst @@ -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. diff --git a/doc/source/user/deploy.rst b/doc/source/user/deploy.rst index 9b46092894..7499786cb9 100644 --- a/doc/source/user/deploy.rst +++ b/doc/source/user/deploy.rst @@ -186,14 +186,6 @@ Capabilities previously ironic used a separate ``instance_info/deploy_boot_mode`` field instead. -* To override the :ref:`boot option ` 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 ` per instance: