Ocata Series (2.0.0 - 2.0.x) Release Notes

2.0.3

Bug Fixes

  • Fixes bug in LLDP discovery code which lead to no LLDP information being discovered for any network interface if one network interface raised an exception, for example if the network interface incorrectly indicates its ready to read. https://bugs.launchpad.net/ironic-python-agent/+bug/1665025

2.0.1

Bug Fixes

  • Uses the PATH environment variable to get the grub (or grub2) binary instead of assuming it is in /usr/sbin. This provides flexibilty for grub to be installed in any PATH directory, on a partitioned image.

2.0.0

New Features

  • Add support for Mellanox InfiniBand NICs in IPA. Each Mellanox InfiniBand interface is returned with an “InfiniBand MAC” and InfiniBand Client-ID calculated according to a Mellanox-specific translation.

  • Add HCTL (Host, Channel, Target and Lun) information to the block devices.

  • Ironic Python Agent can now access other services (Ironic, Inspector, image backend) when those are configured with HTTPS endpoints and use custom server certificates or require client certificates. It is possible to add a custom Certificate Authority (CA) file and client certificate files to the deploy ramdisk during build, and provide paths to those as corresponding new options in the ironic_python_agent.conf configuration file. Validation of the server certificate can be turned off with the insecure config option or via the ipa-insecure kernel boot parameter. This should make it possible to run IPA in CI-like environments that use HTTPS endpoints with self-signed certificates.

  • Support for zypper has been added to the TinyIPA install-deps script in order to support building TinyIPA on SUSE.

Upgrade Notes

  • Two reserved fields, switch_port_descr and switch_chassis_descr, were deprecated in Newton cycle and now are removed.

  • Ironic Python Agent no longer supports Ironic API lookup and heartbeat actions via agent vendor passthru methods, and uses only the new, top-level lookup and heartbeat endpoints of Ironic API v1.22 (introduced in Newton release, Ironic version 6.1.0). This effectively means that Ironic Python Agent becomes incompatible with Ironic API < 1.22 (Ironic version 6.0.0 or older, integrated OpenStack release Mitaka or older).

Bug Fixes

  • Fixes a bug in the CoreOS IPA images (where IPA runs in a chroot), where IPA could not power off or reboot properly. In this case, it will now use SYSRQ commands to forcefully reboot or power off.

  • Values of ipa-api-url specified in the configuration file that do not start with either https:// or http:// are no longer accepted. Such values lead to failure while contacting ironic-api. Such misconfigurations will be detected on ironic-python-agent start. An exception will be raised and an error about the invalid value will be logged.

  • Fixes detection of IPMI address in the CoreOS-based images by loading IPMI modules before going into chroot.

  • Ironic Python Agent now correctly detects its IPv6 address if communicating with ironic over IPv6. This address is also wrapped in square brackets if the address being advertised is IPv6.

  • If booted into a kernel that supports IPv6, Ironic Python Agent now listens for connections on both the IPv4 and IPv6 wildcard addresses.

  • If using Linux-IO, ISCSI targets now support deploying over an IPv6 network if booted into an IPv6 enabled kernel. IPv6 will be used for deployments for all traffic between ironic and IPA if IPA is passed an IPv6 address in the Ironic API URL.

  • Limits the memory usage of qemu-img convert command to 1 GiB to prevent it from causing the host machine to fail due to not enough RAM.

  • Fix LLDP discovery to not fail completely when an odd number of bytes is received in an LLDP package.

  • Fix raw sockets code to properly propagate exceptions to a caller instead of silencing them and returning None (causing failures later).

  • Ironic Python Agent no longer requires ‘bash’ to be present in the user image when preparing the partition image for local boot, and uses the default ‘sh’ interpreter to run ‘grub’-related commands instead.

  • When writing a partition image, IPA now installs grub to the UEFI fallback path (e.g. EFI/BOOT/BOOTX64.EFI). The fallback path is used to boot the bare metal node if the NVRAM is reset.

Other Notes

  • Introspection data no longer contains keys used for compatibility with the old introspection ramdisk.

  • Ironic Python Agent now uses oslo-config-generator to create the sample configuration file.