Ocata Series (7.0.0 - 7.0.x) Release Notes¶
7.0.7-7¶
Bug Fixes¶
Fixes an issue with validation of Infiniband ports. Infiniband ports do not require the
local_link_connection
field to be populated as the network topology is discoverable by the Infiniband Subnet Manager. See bug 1753222 for details.
Fixes a bug where the number of CPU sockets was being returned by the
idrac
hardware type during introspection, instead of the number of virtual CPUs. See bug 2004155 for details.
7.0.7¶
Bug Fixes¶
Fixes an issue that caused the integrated Dell Remote Access Controller (iDRAC)
management
hardware interface implementation,idrac
, to fail to boot nodes in Unified Extensible Firmware Interface (UEFI) boot mode. That interface is supported by theidrac
hardware type. The issue is resolved for Dell EMC PowerEdge 13th and 14th generation servers. It is not resolved for PowerEdge 12th generation and earlier servers. For more information, see story 1656841.
Fixes an issue seen during node tear down where a port being deleted by the Bare Metal service could be deleted by the Compute service, leading to an unhandled error from the Networking service. See story 2002637 for further details.
7.0.5¶
Security Issues¶
Fixes an issue where an enabled console could be left running after a node was unprovisioned. This allowed a user to view the console even after the instance was gone. Ironic now stops the console during unprovisioning to block this.
Bug Fixes¶
Fixes bug 1749755 causing timeouts to not work properly because an unsupported sqalchemy filter was being used.
7.0.4¶
Security Issues¶
Sensitive information is now removed from a node’s
driver_info
andinstance_info
fields before sending it to the ramdisk during cleaning.
Bug Fixes¶
Fixes multi-region issue when region specified in config file was ignored when getting keystone service url.
Fixes switching to tenant networks, when using the ‘neutron’ network interface with the OneView drivers. For more information, see https://bugs.launchpad.net/ironic/+bug/1716023
Fixes a failure when deploying a node. This happened when a port or port group’s internal_info[‘tenant_vif_port_id’] still existed after the corresponding neutron port was removed and prior to deletion of the instance, causing future deployments of the bare metal node to fail. The situation is now logged and does not block future deployments. See https://bugs.launchpad.net/ironic/+bug/1685592 for details.
No longer validates requested root partition size for whole-disk images using
iscsi
deploy interface, see bug 1742451 for details.
7.0.3¶
Upgrade Notes¶
Due to a bug 1702158, conductor_hardware_interfaces table could be created with MyISAM database engine, while all other tables in ironic database are using InnoDB engine. This could happen during initial installation, or upgrade to ocata release, if the system is using MySQL prior to version 5.5 (or the default_storage_engine option is set explicitly to ‘MyISAM’ in my.cnf). If this is the case, conductor_hardware_interfaces needs to be manually migrated to InnoDB, and foreign key constraint re-created:
alter table conductor_hardware_interfaces engine='InnoDB'; alter table conductor_hardware_interfaces add constraint conductor_hardware_interfaces_ibfk_1 foreign key (conductor_id) references conductors(id);
Bug Fixes¶
Fixes a bug 1702158, where the wrong database engine is used for the conductor_hardware_interfaces table, if the system is using MySQL prior to version 5.5 (or the default_storage_engine option is set explicitly to ‘MyISAM’ in my.cnf). In this case, a table could be created with MyISAM engine and foreign key constraint conductor_id(conductors.id) ignored.
Fixes an issue that caused a node using a Dell EMC integrated Dell Remote Access Controller (iDRAC) classic driver,
pxe_drac
orpxe_drac_inspector
, to be placed in theclean failed
state after a doublemanage
/provide
cycle, instead of theavailable
state. For more information, see bug 1676387.
7.0.2¶
Bug Fixes¶
Fix handling of whole disk images with 0x00000000 disk identifier. Instances failed to boot as the identifier in boot config was overwritten during config drive creation. See https://bugs.launchpad.net/ironic/+bug/1685093
Fixes an issue with oneview driver trying to deallocate a node when an error is encountered while performing server profile application. Also ensures only those nodes that are managed by ironic can be deallocated.
Fixes failure to update a node’s driver from a hardware type to a classic driver.
7.0.1¶
Bug Fixes¶
Fixed a bug that was causing an increase in CPU usage over time.
7.0.0¶
Prelude¶
The 7.0.0 release includes many new features and bug fixes. Please review the upgrade section which describes the required actions to upgrade your ironic installation from 6.2.2 (Newton) to 7.0.0 (Ocata).
A few major changes are worth mentioning. This is not an exhaustive list:
“Port group” support allows users to take advantage of bonded network interfaces.
State change and CRUD notifications can now be emitted.
Soft power off, soft reboot, and sending non-maskable interrupts (NMI) are now supported in the REST API.
The AMT, iBoot, msftocs, seamicro, VirtualBox, and Wake-On-Lan drivers have been removed from ironic. Please see the upgrade notes for additional details and options.
“Dynamic drivers” is a revamp of how drivers are composed. Rather than a huge matrix of hardware drivers supporting different things, now users select a “hardware type” for a machine, and can independently change the deploy method, console manager, RAID management, power control interface, etc. This is experimental, as not all “classic” drivers have a dynamic equivalent yet, but we encourage users to try this feature out and submit feedback.
New Features¶
Adds support for removing the chassis UUID associated with a node (via
PATCH /v1/nodes/<ident>
). This is available starting with API version 1.25.
Adds the use of DHCP option 210 (tftp-path-prefix). This enables PXE for systems using petitboot, which cannot infer their tftp-path-prefix from the boot file location as petitboot does not use a boot file.
To enable SNMPv3 inspection in iLO drivers, the following parameters must be set in the node’s
driver_info
. *snmp_auth_user
*snmp_auth_prot_password
*snmp_auth_priv_password
*snmp_auth_protocol
(optional, defaults to iLO default valueMD5
) *snmp_auth_priv_protocol
(optional, defaults to iLO default valueDES
)
Adds the initial substrate to allow for the creation of storage interfaces. The default storage interface for nodes is
noop
, which routes to a no-op driver that is included with the substrate.
Adds support for attaching and detaching network VIFs to ironic ports and port groups by using the
/v1/nodes/<node>/vifs
API endpoint that was added in API version 1.28. When attaching a VIF to a node, it is attached to the first free port group. A port group is considered free if it has no VIFs attached to any of its ports. Otherwise, only the unattached ports of this port group are available for attachment. If there are no free port groups, the first available port is used instead, where ports withpxe_enabled
set toTrue
have higher priority.
Adds support for port groups with a new endpoint
/v1/portgroups/
. Ports can be combined into port groups to support static Link Aggregation Group (LAG) and Multi-Chassis LAG (MLAG) configurations.Note that if the optional
mode
field for a port group is not specified, its value will be set to the value of the configuration option[DEFAULT]default_portgroup_mode
, which defaults toactive-backup
.Additionally, adds the following API changes:
a new endpoint
/v1/nodes/<node>/portgroups
.a new endpoint
/v1/portgroups/<portgroup>/ports
.a new field
portgroup_uuid
on the port object. This is the UUID of a port group that this port belongs to, or None if it does not belong to any port group.
All port group API functions are available starting with version 1.26 of the REST API.
Adds timing metrics to DRAC drivers.
Adds timing metrics to iRMC drivers.
Adds new option
[deploy]/default_boot_option
for setting the default boot option when no explicit boot option is requested via capabilities.
Adds new methods to network interfaces, which will become mandatory in Pike release:
vif_list
: List attached VIF IDs for a node.vif_attach
: Attach a virtual network interface to a node.vif_detach
: Detach a virtual network interface from a node.port_changed
: Handle any actions required when a portchanges.
portgroup_changed
: Handle any actions required when a port group changes.get_current_vif
: Return VIF ID attached to port or port group object.
Adds support for dynamic drivers. Using a dynamic driver in a node’s
driver
field is now possible. Dynamic drivers are composed of ahardware type
and a number ofhardware interfaces
.NOTE: this feature is considered somewhat experimental, as not all classic drivers have a corresponding dynamic driver, and there is minimal CI for dynamic drivers at the time of this writing.
Hardware types are enabled via the
[DEFAULT]/enabled_hardware_types
configuration option, and hardware interfaces are enabled via the[DEFAULT]/enabled_*_interfaces
configuration option. A default interface to use when creating or updating nodes can be specified with the[DEFAULT]/default_*_interface
configuration option.The ironic-conductor process will now fail to start if:
a default interface implementation for any enabled hardware type cannot be found.
a dynamic driver and a classic driver with the same name are both enabled.
at least one classic driver or one dynamic driver is not enabled.
Hardware types available in this release are:
ipmi
for IPMI-compatible hardware. This type is enabled by default. Uses theipmitool
utility under the hood, similar to existing classic driverspxe_ipmitool
andagent_ipmitool
. Supports both types of serial console: viashellinabox
and viasocat
, both are disabled by default.irmc
for FUJITSU PRIMERGY servers, disabled by default.
This feature has a number of REST API changes, all of which are available in API version 1.31.
Adds additional parameters and response fields for GET /v1/drivers and GET /v1/drivers/<name>.
Exposes the following fields on the node resource, to allow getting and setting interfaces for a dynamic driver:
boot_interface
console_interface
deploy_interface
inspect_interface
management_interface
power_interface
raid_interface
vendor_interface
Allows dynamic drivers to be used and returned in the following API calls, in all versions of the REST API:
GET /v1/drivers
GET /v1/drivers/<name>
GET /v1/drivers/<name>/properties
GET /v1/drivers/<name>/vendor_passthru/methods
GET/POST /v1/drivers/<name>/vendor_passthru
GET/POST /v1/nodes/<id>/vendor_passthru
For more details on the REST API changes, see the REST API Version History documentation.
This also adds dynamic interface fields to node-related notifications:
boot_interface
console_interface
deploy_interface
inspect_interface
management_interface
power_interface
raid_interface
vendor_interface
The affected notifications are:
baremetal.node.create.*, new payload version 1.1
baremetal.node.update.*, new payload version 1.1
baremetal.node.delete.*, new payload version 1.1
baremetal.node.maintenance.*, new payload version 1.3
baremetal.node.console.*, new payload version 1.3
baremetal.node.power_set.*, new payload version 1.3
baremetal.node.power_state_corrected.*, new payload version 1.3
baremetal.node.provision_set.*, new payload version 1.3
Add
hctl
to root device hints. HCTL is the SCSI address and stands for Host, Channel, Target and LUN.
Add support for the injection of Non-Masking Interrupts (NMI) for a node in REST API version 1.29. This feature can be used for hardware diagnostics, and actual support depends on the driver. In 7.0.0, this is available in the ipmitool and iRMC drivers.
Adds support to deploy to nodes with different CPU architectures from a single conductor. This depends on two new configuration options,
[pxe]/pxe_config_template_by_arch
and[pxe]/pxe_bootfile_name_by_arch
. Each is a dictionary mapping CPU architecture to PXE config template or PXE boot file name, respectively.As an example, the syntax might look like:
pxe_config_template_by_arch=aarch64:pxe_grubaa64_config.template,ppc64:pxe_ppc64_config.template
Ironic attempts to map the CPU architecture in this mapping to the
properties/cpu_arch
field for a node. If the node’s CPU architecture is not found in the mapping, ironic will fall back to the standard optionspxe_config_template
,pxe_bootfile_name
,uefi_pxe_config_template
, anduefi_pxe_bootfile_name
.
Adds new configuration option
[conductor]/send_sensor_data_workers
to allow concurrent sending of sensor data using the specified number of green threads. The[conductor]/wait_timeout_for_send_sensor_data
configuration option is the time to wait for all spawned green threads before running the periodic task again.
Names can now be used instead of UUIDs for
[neutron]/cleaning_network
and[neutron]/provisioning_network
configuration options (formerly called[neutron]/cleaning_network_uuid
and[neutron]/provisioning_network_uuid
). Care has to be taken to ensure that the names are unique among all networks in this case. Note that the mapping between a name and a UUID is cached for the lifetime of the conductor.
Adds in-band inspection interface usable by OneView drivers.
Adds timing metrics to OneView drivers.
Ironic is now configured to work with two oslo.policy CLI scripts that have been added.
The first of these can be called like
oslopolicy-list-redundant --namespace ironic
and will output a list of policy rules in policy.[json|yaml] that match the project defaults. These rules can be removed from the policy file as they have no effect there.The second script can be called like
oslopolicy-policy-generator --namespace ironic --output-file policy-merged.yaml
and will populate the policy-merged.yaml file with the effective policy. This is the merged results of project defaults and config file overrides.
The pxe_snmp and fake_snmp are now supported and tested.
Agent lookup/heartbeat as vendor passthru is removed from most of in-tree ironic drivers. Affected drivers are
agent_ipmitool
agent_ipmitool_socat
agent_ipminative
agent_irmc
agent_ssh
agent_vbox
agent_ucs
pxe_agent_cimc
pxe_ipmitool
pxe_ipmitool_socat
pxe_ssh
pxe_ipminative
pxe_seamicro
pxe_snmp
pxe_irmc
pxe_vbox
pxe_msftocs
pxe_ucs
pxe_iscsi_cimc
pxe_drac
pxe_drac_inspector
iscsi_irmc
agent_ilo
iscsi_ilo
pxe_ilo
agent_pxe_oneview
iscsi_pxe_oneview
All the other vendor passthru methods are left in place if the driver had them.
Adds the following notifications:
Creation, updates, or deletions of ironic resources (node, port and chassis). Event types are
baremetal.<resource>.{create,update,delete}.{start,end,error}
.Start and stop console on a node. Event types are
baremetal.node.console_{set,restore}.{start,end,error}
.Changes in node maintenance status. Event types are
baremetal.node.maintenance_set.{start,end,error}
.When ironic attempts to set the power state on the node. Event types are
baremetal.node.power_set.{start,end,error}
.When ironic detects the power state on baremetal hardware has changed and updates the node in the database appropriately. Event types are
baremetal.node.power_state_corrected.success
.Node provision state changes. Event types are
baremetal.node.provision_set.{start,end,success,error}
.
These are only emitted when notifications are enabled. For more details, see the developer documentation: http://docs.openstack.org/developer/ironic/deploy/notifications.html.
Adds support for security groups for the provisioning and cleaning network. These are optionally specified by the configuration options
[neutron]/provisioning_network_security_groups
and[neutron]/cleaning_network_security_groups
, respectively. If not specified, the default security group for the network is used. These options are only applicable for nodes using the “neutron” network interface. These options are ignored for nodes using the “flat” and “noop” network interfaces.
Adds support for soft reboot and soft power off requests in REST API version 1.27. Also adds an optional
timeout
parameter to the node power state API. Adds a new configuration option[conductor]/soft_power_off_timeout
to define the default timeout for soft power actions. In 7.0.0, this is supported for ipmitool and iRMC drivers.
Adds support for using operators with the root device hints mechanism. The supported operators are,
=
,==
,!=
,>=
,<=
,>
,<
,s==
,s!=
,s>=
,s>
,s<=
,s<
,<in>
,<all-in>
and<or>
. See http://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#specifying-the-disk-for-deployment-root-device-hints
Upgrade Notes¶
Adds a new dependency on the tooz library, as the consistent hash ring code was moved out of ironic and into tooz.
The
[DEFAULT]/debug
configuration option now also enables debug logs for theironic-python-agent
ramdisk. If theipa-debug
kernel option is already present in the[pxe]/pxe_append_params
configuration option, ironic will not overwrite it.
Moves node creation logic from the API service to the conductor service. This is more consistent with other node operations and opens opportunities for conductor-side validations on nodes. However, with this change, node creation may take longer, and this may limit the number of nodes that can be enrolled in parallel.
The
[DEFAULT]/default_network_interface
and[dhcp]/dhcp_provider
configuration options were previously required for the ironic-api service to calculate the correct “network_interface” default. Now these options are only required by the ironic-conductor service.
A future release will change the default value of
[deploy]/default_boot_option
from “netboot” to “local”. To avoid disruptions, it is recommended to set an explicit value for this option.
The minimum version of python-oneviewclient is now 2.5.2.
Ironic now uses only the Image Service (glance) v2 API by default. Use of the deprecated v1 API for certain basic tasks can still be enabled by setting
[glance]/glance_api_version
to1
. This option, however, does not affect temporary URL generation, as it always requires the v2 API.
The
[inspector]/enabled
configuration option no longer has effect on thefake_inspector
driver. It will also not have effect on new-style dynamic drivers based on hardware types; it will be necessary to use[DEFAULT]/enabled_inspect_interfaces
instead.
Increases the default number of workers for the
send_sensor_data
periodic task from 1 to 4.
Ironic no longer passes
root_device
as kernel parameter via boot config files. Passing root device hints to Ironic Python Agent (IPA) as kernel parameters was deprecated in Newton release. As a consequence, using root device hints with Ironic as of Ocata release will not be possible when deploying nodes with the help of ramdisks based on IPA as of Mitaka release. Operators relying on root device hints functionality are advised to update their IPA-based Ironic deploy images.
Ironic no longer supports agent lookup/heartbeats as vendor passthru methods. All out-of-tree drivers must be updated to use
AgentDeployMixin
classes directly without relying onBaseAgentVendor
class and other classes that were inheriting from it (e.g.agent.AgentVendorInterface
andiscsi_deploy.VendorPassthru
). This means that ironic is incompatible with deploy ramdisks based on Ironic Python Agent (IPA) < 1.5.0. Operators must update their IPA-based deploy ramdisks in this case. Operators using non-IPA based deploy ramdisks which use ironic lookup/heartbeats functionality must update their ramdisks to use the top level ironic lookup/heartbeats REST API, available since ironic API v1.22.
The deprecated ironic.nova.ClusteredComputerManager module is now removed. This is not required with nova >= 14.0.0 (Newton).
The configuration option
[deploy]/erase_devices_iterations
was deprecated in the Newton cycle (6.0.0). It is no longer supported. Please use the option[deploy]/shred_random_overwrite_iterations
instead.
Removes these deprecated methods from the neutron DHCP provider built into ironic:
create_cleaning_ports
delete_cleaning_ports
Removes these related methods from
ironic.drivers.modules.deploy_utils
:prepare_cleaning_ports
tear_down_cleaning_ports
If you have your own custom ironic DHCP provider that implements cleaning methods, you may need to update your code to use the
add_cleaning_network()
andremove_cleaning_network()
network interface methods. See the modules inironic/drivers/modules/network/
for more information.
Removes support for attaching periodic tasks on a driver object, rather than an interface.
iBoot, Wake-On-LAN and AMT drivers are removed from ironic as they neither have nor are planning to have a third-party CI. They are still available from unsupported ironic driver collection in
ironic-staging-drivers
repository. If the ironic installation was using any driver based on those, the operator has to installironic-staging-drivers
and change the driver on affected nodes according to following correspondence listagent_amt -> pxe_amt_agent
pxe_amt -> pxe_amt_iscsi
agent_wol -> pxe_wol_agent
pxe_wol -> pxe_wol_iscsi
agent_iboot -> pxe_iboot_agent
pxe_iboot -> pxe_iboot_iscsi
There is no longer any support for doing an iSCSI deploy on ironic python agent (IPA) ramdisks with versions < 1.3 (Mitaka or earlier). Please upgrade ironic python agent to a newer version.
A number of drivers that were declared as unsupported in Newton release have been removed from ironic tree. This includes drivers with power and/or management driver interfaces based on:
MSFT OCS
SeaMicro client
Virtualbox over pyremotevbox client
As a result, the following ironic drivers will no longer be available:
agent_vbox
fake_msftocs
fake_seamicro
fake_vbox
pxe_msftocs
pxe_seamicro
pxe_vbox
After upgrading, if one or more of these drivers are in the ‘enabled_drivers’ configuration option, the ironic-conductor service will fail to start. Any existing ironic nodes with these drivers assigned will become inoperational via ironic after ironic upgrade, as it will be not possible to change any node state/properties except changing the node driver. Operators having one of the drivers listed above enabled are required to either disable those drivers and assign another existing driver to affected nodes as appropriate, or install these drivers from elsewhere separately.
For SSH power drivers, if the configuration option
[neutron]/port_setup_delay
had been set to 0, a delay of 15 seconds was used. This is no longer the case. Please set the configuration option to the desired value; otherwise the service will not wait for Neutron agents to set up a port.
Updates required proliantutils version for iLO drivers to 2.2.0. This version has support for sanitize disk erase using SSA utility.
Deprecation Notes¶
Using
port.extra['vif_port_id']
for attaching and detaching VIFs to ports or port groups is deprecated and will be removed in Pike release.
The function
build_instance_info_for_deploy
is deprecated fromironic.drivers.modules.agent
and will be removed in the Pike cycle. Its new home isironic.drivers.modules.deploy_utils
. Out-of-tree drivers that use this function should be updated accordingly.
Usage of the following values was deprecated in the policy files:
domain_id
anddomain_name
-user_domain_id
should be used instead of those (note -user_domain_id
is an ID of the domain, not its name).tenant
-project_name
should be used instead.user
-user_id
should be used instead.
update_mac_address
method in the DHCP provider interface is deprecated and will be removed in the Pike release. The logic should be moved to a custom network interface’sport_changed
andportgroup_changed
methods.
For DRAC drivers, the node’s
driver_info["drac_host"]
property is deprecated and will be ignored starting in the Pike release. Please usedriver_info["drac_address"]
instead.
Configuration options
[neutron]/cleaning_network_uuid
and[neutron]/provisioning_network_uuid
are deprecated in favor of the new configuration options[neutron]/cleaning_network
and[neutron]/provisioning_network
respectively.
The
agent_last_heartbeat
field ofdriver_internal_info
has been removed from all agent drivers, since this field was unused by ironic.
Security Issues¶
Private SSH keys are now masked when using the SSH power driver and node details are requested.
Bug Fixes¶
Adds a missing error check into
ipmitool
power driver’s reboot method so that the reboot can fail properly if power off failed.
Fixes disk size detection for out-of-band inspection in iLO drivers, by optionally using SNMPv3 to get the disk size for certain types of storage.
Drivers using the
AgentDeploy
interface now correctly support take-over forACTIVE
netboot-ed nodes.
Fixed an issue of not returning
chassis_uuid
field of a node in API responses if it does not belong to a chassis. It should be always returned, either set to None, or to a corresponding chassis UUID.
Fixes SSH driver validation when using a private key with a passphrase for authentication.
Fixes an issue where setting a boot device as persistent does not work when
ipmi_force_boot_device
is set toTrue
. For more information, see https://bugs.launchpad.net/ironic/+bug/1626453.
Fixes an issue where the API service does not start if audit is enabled with the default value of
[audit]/ignore_req_list
configuration option.
Catch unknown exceptions with traceback when validating driver interfaces.
Now sets node’s
updated_at
field correctly after a node has been updated.
Removes a check that was preventing whole disk images from being deployed in UEFI mode without explicitly setting the
boot_option
capability tolocal
. For whole disk images, ironic already assumes booting from local storage by default.
A
[conductor]/api_url
value specified in the configuration file that does not start with eitherhttps://
orhttp://
is no longer allowed. An incorrect value led to deployment failure on ironic-python-agent side. This misconfiguration will now be detected during ironic-conductor and ironic-api startup. An exception will be raised and an error about the invalid value will be logged.
Fixes an issue with the
neutron
network interface that could lead to an inability to retry the deployment in case of failure on boot interface’sprepare_ramdisk
stage.
Fixes an issue where a pre-created tenant port was automatically deleted by ironic on instance delete.
Fixes an issue which caused the DRAC driver (
pxe_drac
)get_bios_config()
vendor passthru method to unintentionally raise anAttributeError
exception. That method once again returns the current BIOS configuration. For more information, see https://bugs.launchpad.net/ironic/+bug/1637671.
A validation step is added to verify that the Server Profile Template’s MAC type is set to Physical when dynamic allocation is enabled. The OneView Driver needs this verification because the machine is going to use a MAC that will only be specified at the profile application.
Fixes an issue where the ironic-conductor service would not run if a trailing comma or empty driver was specified in the
[DEFAULT]enabled_drivers
configuration option. The service now runs and logs a warning.
Fail deployment when no ports or port groups are linked to a node. This is to avoid active nodes not connected to any tenant network.
Changes interactions with neutron to always use the neutron credentials from ironic configuration, instead of forwarding the credentials from the API client.
Fixes an issue with node rebuild, when tenant network ports were not unbound prior to moving the node to provisioning network.
Fixes an issue where the OneView deploy interface does not return the node properties and in the tear down phase does not return the state of the node.
Fixes a bug in the OneView driver where the periodic task to check if a node is in use by OneView may end prematurely.
Fixes a bug where some of the API methods were not using the right context values for checking the policy.
Ironic exceptions that contained arbitrary objects in
kwargs
and were sent via RPC were causingoslo_messaging
serializer to fail. This was leading to 500 errors from ironic API, timing out waiting for response from the conductor. Starting with this release, all non-serializable objects contained in an exception’s kwargs are dropped. Whether the error is going to be returned by the service will depend on the configuration option[DEFAULT]/fatal_exception_format_errors
.
An issue when it was impossible to detach manually attached VIF to port (port.extra) when port is in portgroup by using DELETE
v1/nodes/<node_ident>/vifs
API.
Fixes a bug in the iLO drivers’ inspection where an existing
local_gb
node property was overwritten with “0” if not detected.
Correctly handle unexpected exceptions during inspection. Return more detailed error message to a user and log the traceback.
Fixes a bug with incorrect base socat command, which prevented the usage of console.
Adds support for deploying to IPv6 iSCSI portals.
Remove “dhcp” command from the default iPXE script. It is redundant, and may even break booting when the provisioning NIC is not the first one.
Fixes a problem where the deployment of a node would fail to continue if a malformed MAC address was passed to the lookup mechanism in the Ironic API. For example, if a node contains an Infiniband card, the lookup used to fail because the agent ramdisk passes a MAC address (or GID) with 20 octets (instead of the expected 6 octets) as part of the lookup request. Invalid addresses are now ignored.
Fixes a bug in manual clean step caching, which resulted in all clean steps not being abortable. See https://bugs.launchpad.net/ironic/+bug/1658061.
Nodes with classic drivers cannot have any interfaces (except for network and storage) specified. HTTP status 400 is returned in these cases.
Fixes an issue with ironic being able to change the power state of nodes currently in use by OneView.
Fixes the OneView driver to make the
set_boot_device
method work as expected with thepersistent
option set toFalse
.
Drivers using the
PXEBoot
boot interface now correctly support node take-over for netboot-ed nodes inACTIVE
state. During take-over, the PXE environment is first re-created before attempting to switch it to “service mode”.
Fixes a bug where OneView drivers create a new instance of the OneView client for each request made.
Ironic now validates any swift temporary URL when preparing for deployment of nodes.
Fixes an issue when attaching VIF to a port with missed
local_link_connection
field was allowed when node network interface wasneutron
.
Other Notes¶
Some combinations of port group protocols and hardware might not support falling back to single interface mode. If a static port group was created under such circumstances (where
portgroup.standalone_ports_supported = False
), additional restrictions apply to such ports and port groups, for example such ports will not support booting over PXE.Certain restrictions are imposed on values of port properties for ports belonging to a port group:
port.pxe_enabled
cannot be set to True if the port is a member of a port group with portgroup.standalone_ports_supported already set to False.portgroup.standalone_ports_supported
cannot be set to False on a port group if at least one port in that port group hasport.pxe_enabled=True
port.extra.vif_port_id
cannot be set on a port that is a member of a port group withportgroup.standalone_ports_supported=False
as setting it means that we using port in single interface mode.portgroup.standalone_ports_supported
cannot be set to False on a port group if it has at least one port withport.extra.vif_port_id
set.