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
This commit is contained in:
Julia Kreger 2021-06-24 09:31:57 -07:00
parent 4d13da9cc7
commit b2a249d186
5 changed files with 17 additions and 12 deletions

View File

@ -1465,9 +1465,6 @@ function configure_ironic {
iniset_rpc_backend ironic $IRONIC_CONF_FILE iniset_rpc_backend ironic $IRONIC_CONF_FILE
fi fi
# Set IP version
iniset $IRONIC_CONF_FILE pxe ip_version $IRONIC_IP_VERSION
# Configure Ironic conductor, if it was enabled. # Configure Ironic conductor, if it was enabled.
if is_service_enabled ir-cond; then if is_service_enabled ir-cond; then
configure_ironic_conductor configure_ironic_conductor

View File

@ -577,7 +577,6 @@ pxe:
image_cache_ttl = 10080 image_cache_ttl = 10080
images_path = /var/lib/ironic/images/ images_path = /var/lib/ironic/images/
instance_master_path = /var/lib/ironic/master_images instance_master_path = /var/lib/ironic/master_images
ip_version = 4
ipxe_boot_script = /opt/stack/ironic/ironic/drivers/modules/boot.ipxe ipxe_boot_script = /opt/stack/ironic/ironic/drivers/modules/boot.ipxe
ipxe_enabled = True ipxe_enabled = True
ipxe_timeout = 0 ipxe_timeout = 0

View File

@ -10,13 +10,13 @@ configuration. This page covers the IPv6 specifics only. Please refer to
Configure ironic PXE driver for provisioning using IPv6 addressing Configure ironic PXE driver for provisioning using IPv6 addressing
================================================================== ==================================================================
The ironic PXE driver operates in either IPv4 or IPv6 mode (IPv4 is the The PXE drivers operate in such a way that they are able to utilize
default). To enable IPv6 mode, set the ``[pxe]/ip_version`` option in the Bare both IPv4 and IPv6 addresses based upon the deployment's operating state and
Metal Service's configuration file (``/etc/ironic/ironic.conf``) to ``6``. 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
.. Note:: Support for dual mode IPv4 and IPv6 operations is planned for a ``[DEFAULT]my_ipv6`` configuration parameter is set to the conductor's
future version of ironic. 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 Provisioning with IPv6 stateless addressing
------------------------------------------- -------------------------------------------

View File

@ -155,8 +155,10 @@ opts = [
choices=[('4', _('IPv4')), choices=[('4', _('IPv4')),
('6', _('IPv6'))], ('6', _('IPv6'))],
mutable=True, mutable=True,
deprecated_for_removal=True,
help=_('The IP version that will be used for PXE booting. ' 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', cfg.BoolOpt('ipxe_use_swift',
default=False, default=False,
mutable=True, mutable=True,

View File

@ -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.