From baeca81a4354a590d743715481f2367a84467595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= Date: Fri, 25 Feb 2022 22:36:47 +0100 Subject: [PATCH] Enable Ironic iPXE support by default Ironic has changed the default PXE to be iPXE (as opposed to plain PXE) in Yoga. Kolla Ansible supports either one or the other and we tend to stick to upstream defaults so this change enables iPXE instead of plain PXE - by default - the users are allowed to change back and they need to take one other action so it is good to remind them via upgrade notes either way. Change-Id: If14ec83670d2212906c6e22c7013c475f3c4748a --- ansible/group_vars/all.yml | 2 +- .../reference/bare-metal/ironic-guide.rst | 46 ++++++++----------- etc/kolla/globals.yml | 2 +- .../ironic-default-ipxe-1e9bb7a3f4994d84.yaml | 9 ++++ 4 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 releasenotes/notes/ironic-default-ipxe-1e9bb7a3f4994d84.yaml diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml index 6ede47ef81..563f6e3af5 100644 --- a/ansible/group_vars/all.yml +++ b/ansible/group_vars/all.yml @@ -651,7 +651,7 @@ enable_horizon_watcher: "{{ enable_watcher | bool }}" enable_horizon_zun: "{{ enable_zun | bool }}" enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}" enable_ironic: "no" -enable_ironic_ipxe: "no" +enable_ironic_ipxe: "yes" enable_ironic_neutron_agent: "{{ enable_neutron | bool and enable_ironic | bool }}" enable_ironic_pxe_uefi: "no" enable_iscsid: "{{ enable_cinder | bool and enable_cinder_backend_iscsi | bool }}" diff --git a/doc/source/reference/bare-metal/ironic-guide.rst b/doc/source/reference/bare-metal/ironic-guide.rst index 8fc9d1ff81..086cebc858 100644 --- a/doc/source/reference/bare-metal/ironic-guide.rst +++ b/doc/source/reference/bare-metal/ironic-guide.rst @@ -66,20 +66,8 @@ You may optionally pass extra kernel parameters to the inspection kernel using: in ``/etc/kolla/globals.yml``. -Enable iPXE booting (optional) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -You can optionally enable booting via iPXE by setting ``enable_ironic_ipxe`` to -true in ``/etc/kolla/globals.yml``: - -.. code-block:: yaml - - enable_ironic_ipxe: "yes" - -When iPXE booting is enabled, the ``ironic_ipxe`` container is used to serve -the iPXE boot images as described below. Regardless of the setting above, the -same container is used to support the ``direct`` deploy interface. - +Configure iPXE HTTP server port (optional) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The port used for the iPXE webserver is controlled via ``ironic_ipxe_port`` in ``/etc/kolla/globals.yml``: @@ -87,25 +75,31 @@ The port used for the iPXE webserver is controlled via ``ironic_ipxe_port`` in ironic_ipxe_port: "8089" -The following changes will occur if iPXE booting is enabled: +Revert to plain PXE (not recommended) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Starting with Yoga, Ironic has changed the default PXE from plain PXE to iPXE. +Kolla Ansible follows this upstream decision but allows users to revert to +plain PXE. Please note Kolla Ansible does not support plain PXE and iPXE at the +same time - the user must choose one. -- Ironic will be configured with the ``ipxe_enabled`` configuration option set - to true -- The inspection ramdisk and kernel will be loaded via iPXE -- The DHCP servers will be configured to chainload iPXE from an existing PXE - environment. You may also boot directly to iPXE by some other means e.g by - burning it to the option rom of your ethernet card. +If you have to revert to plain iPXE, set: -Note that due to a limitation in Kolla Ansible, PXE and iPXE cannot be used -together in a single deployment. +.. code-block:: yaml -In order to enable the iPXE driver in Ironic, set the ``[DEFAULT] -enabled_boot_interfaces`` option in ``/etc/kolla/config/ironic.conf``: + enable_ironic_ipxe: "no" + +And also remove ``ipxe`` from the ``enabled_boot_interfaces`` in +``/etc/kolla/config/ironic.conf``, leaving only ``pxe`` (and possibly other +alternatives) around: .. code-block:: yaml [DEFAULT] - enabled_boot_interfaces = ipxe + enabled_boot_interfaces = pxe + +When iPXE booting is enabled, the ``ironic_ipxe`` container is used to serve +the iPXE boot images as described below. Regardless of that setting, the +same container is used to support the ``direct`` deploy interface. Attach ironic to external keystone (optional) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 62bde14662..95a2aea94d 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -345,7 +345,7 @@ #enable_horizon_zun: "{{ enable_zun | bool }}" #enable_influxdb: "{{ enable_monasca | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb') }}" #enable_ironic: "no" -#enable_ironic_ipxe: "no" +#enable_ironic_ipxe: "yes" #enable_ironic_neutron_agent: "{{ enable_neutron | bool and enable_ironic | bool }}" #enable_ironic_pxe_uefi: "no" #enable_iscsid: "{{ enable_cinder | bool and enable_cinder_backend_iscsi | bool }}" diff --git a/releasenotes/notes/ironic-default-ipxe-1e9bb7a3f4994d84.yaml b/releasenotes/notes/ironic-default-ipxe-1e9bb7a3f4994d84.yaml new file mode 100644 index 0000000000..d22638e225 --- /dev/null +++ b/releasenotes/notes/ironic-default-ipxe-1e9bb7a3f4994d84.yaml @@ -0,0 +1,9 @@ +--- +upgrade: + - | + Starting with Yoga, Ironic has changed the default PXE from plain PXE to + iPXE. + Kolla Ansible follows this upstream decision but allows users to revert to + plain PXE. Please note Kolla Ansible does not support plain PXE and iPXE at + the same time - the user must choose one. For details, please refer to + Kolla Ansible's documentation.