From b2a249d186b77def6cd449d34fd600520c159a50 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Thu, 24 Jun 2021 09:31:57 -0700 Subject: [PATCH] Deprecate [pxe]ip_version parameter The parameter has not had any effect in the code since the dual stack PXE work went into place with Ironic as options are now generated and transmitted to Neutron for both IPv4 and IPv6. This option is only used by the internal ``dhcp_options_for_instance`` method in ``ironic.common.pxe_utils`` as a fallback if the calling method does not specify a version. However a later change resulted in the default behavior calling the dhcp option generation explicitly to generate both IPv4 and IPv6 parameters, making the option entirely redundant. Third party drivers using the ``dhcp_options_for_instance`` method should consider generating options for both IPv4 and IPv6 at all times. See change If7a296001e204ae0c9a49495731052ab33379628 for examples on how to do this. Change-Id: I343783389105f008ce6dafc8d25d93211710771a --- devstack/lib/ironic | 3 --- doc/source/admin/report.txt | 1 - doc/source/install/configure-ipv6-networking.rst | 14 +++++++------- ironic/conf/pxe.py | 4 +++- .../remove_pxe_ip_version-7a71f821ded28360.yaml | 7 +++++++ 5 files changed, 17 insertions(+), 12 deletions(-) create mode 100644 releasenotes/notes/remove_pxe_ip_version-7a71f821ded28360.yaml diff --git a/devstack/lib/ironic b/devstack/lib/ironic index ebe77cc57e..be692de988 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -1465,9 +1465,6 @@ function configure_ironic { iniset_rpc_backend ironic $IRONIC_CONF_FILE fi - # Set IP version - iniset $IRONIC_CONF_FILE pxe ip_version $IRONIC_IP_VERSION - # Configure Ironic conductor, if it was enabled. if is_service_enabled ir-cond; then configure_ironic_conductor diff --git a/doc/source/admin/report.txt b/doc/source/admin/report.txt index 02d8897171..e098e5aef8 100644 --- a/doc/source/admin/report.txt +++ b/doc/source/admin/report.txt @@ -577,7 +577,6 @@ pxe: image_cache_ttl = 10080 images_path = /var/lib/ironic/images/ instance_master_path = /var/lib/ironic/master_images - ip_version = 4 ipxe_boot_script = /opt/stack/ironic/ironic/drivers/modules/boot.ipxe ipxe_enabled = True ipxe_timeout = 0 diff --git a/doc/source/install/configure-ipv6-networking.rst b/doc/source/install/configure-ipv6-networking.rst index 0d9c4e0a4f..926b34c189 100644 --- a/doc/source/install/configure-ipv6-networking.rst +++ b/doc/source/install/configure-ipv6-networking.rst @@ -10,13 +10,13 @@ configuration. This page covers the IPv6 specifics only. Please refer to Configure ironic PXE driver for provisioning using IPv6 addressing ================================================================== -The ironic PXE driver operates in either IPv4 or IPv6 mode (IPv4 is the -default). To enable IPv6 mode, set the ``[pxe]/ip_version`` option in the Bare -Metal Service's configuration file (``/etc/ironic/ironic.conf``) to ``6``. - -.. Note:: Support for dual mode IPv4 and IPv6 operations is planned for a - future version of ironic. - +The PXE drivers operate in such a way that they are able to utilize +both IPv4 and IPv6 addresses based upon the deployment's operating state and +configuration. Internally, the drivers attempt to prepare configuration options for both formats, which allows ports which are IPv6 only to automatically +receieve boot parameters. As a result of this, it is critical that the +``[DEFAULT]my_ipv6`` configuration parameter is set to the conductor's +IPv6 address. This option is unique per conductor, and due to the nature +of automatic address assignment, it cannot be "guessed" by the software. Provisioning with IPv6 stateless addressing ------------------------------------------- diff --git a/ironic/conf/pxe.py b/ironic/conf/pxe.py index 57757ae7a5..e6672aabe9 100644 --- a/ironic/conf/pxe.py +++ b/ironic/conf/pxe.py @@ -155,8 +155,10 @@ opts = [ choices=[('4', _('IPv4')), ('6', _('IPv6'))], mutable=True, + deprecated_for_removal=True, help=_('The IP version that will be used for PXE booting. ' - 'Defaults to 4. EXPERIMENTAL')), + 'Defaults to 4. This option has been a no-op for in-tree' + 'drivers since the Ussuri development cycle.')), cfg.BoolOpt('ipxe_use_swift', default=False, mutable=True, diff --git a/releasenotes/notes/remove_pxe_ip_version-7a71f821ded28360.yaml b/releasenotes/notes/remove_pxe_ip_version-7a71f821ded28360.yaml new file mode 100644 index 0000000000..146f6a119c --- /dev/null +++ b/releasenotes/notes/remove_pxe_ip_version-7a71f821ded28360.yaml @@ -0,0 +1,7 @@ +--- +deprecations: + - | + The ``[pxe]ip_version`` setting has been deprecated and is anticipated to + be removed in the Y* release of OpenStack. This option effectively has had + no operational impact since the Ussuri release of OpenStack where dual + stack IPv4 and IPv6 support was added to Ironic.