Current Series Release Notes


Other Notes

  • The role bifrost-openstack-ci-prep has been removed. It was only used in the upstream CI context and is no longer required.


New Features

  • It is now possible to use the bifrost cloud with introspection commands even in no-auth mode.

  • Debian Buster is now supported as a base operating system.

  • Configures the default deploy and rescue kernel/ramdisk, setting them in driver_info is now optional.

  • Ubuntu Focal (20.04) is now supported as a base operating system.

  • The values of enabled_bios_interfaces, enabled_boot_interfaces, enabled_management_interfaces and enabled_power_interfaces are now derived from the enabled_hardware_types if left empty (the default).

  • Adds a new parameter internal_ip specifying which IP address to use for nodes to reach ironic and the HTTP server, and for cross-service interactions when keystone is disabled. By default the IPv4 address of the network_interface is used.

  • The manual-management hardware type is now enabled by default. It can be used with hardware that does not feature a supported BMC.

  • The noop management interface can now be used out-of-box with ipmi and redfish nodes to prevent ironic from changing the boot device and order.

  • A normal ironic nodes.json (suitable for the baremetal create command) is now generated when creating testing VMs. The default location is /tmp/nodes.json.

  • Sets the default resource class for newly enrolled nodes without an explicit resource class. Defaults to baremetal, can be changed via the default_resource_class parameter.

  • Fedora 30 is now supported as a base operating system.

  • Adds two new parameters for controlling how existing git checkouts are handled:

    • update_repos can be set to false to prevent the repositories from being updated.

    • force_update_repos can be set to false to prevent Bifrost from overwriting local changes.

  • Changes the default version of Ansible to version 2.9.

  • The new variable use_tinyipa (defaulting to true) defines whether to use the pre-built tinyIPA images or production-ready CentOS images built with DIB.

Upgrade Notes

  • Explicit support for Fedora versions precedent to 30 has been removed.

  • Explicit support for Debian Jessie has been removed.

  • OpenStackClient is no longer installed when keystone is not enabled. Use the ironic native baremetal command instead. For example, instead of

    openstack baremetal node list

    use just

    baremetal node list
  • The shade library is no longer used, nor installed by default.

  • The default version of Ansible used for this release of bifrost is version 2.9. Operators may wish to upgrade if they are directly invoking playbooks or roles.

  • All packages are now installed in a virtual environment in /opt/stack/bifrost by default instead of system-wide.

Deprecation Notes

  • The bifrost-inspector cloud in clouds.yaml is now deprecated, use the main bifrost cloud for all commands.

  • The os_ironic_facts module is deprecated. Please use os_ironic_node_info that returns information in the “node” parameter.

  • Support for system-wide installation of packages is deprecated, untested and may be removed in a future release.

Bug Fixes

  • Fixes installing Keystone under CentOS 8.

  • Fixes failure to install on systems with a local resolved by setting disable_dnsmasq_dns to True by default.

  • Fixes fast-track deployment after inspection/discovery by providing the correct ironic API URL to the ramdisk.

  • Fixes deployment in a testing environment on CentOS 8 by using firewalld instead of iptables to enable access from nodes to ironic.

  • An ironic-python-agent image is now updated every time the installation playbooks are run. This is done to avoid discrepancy between ironic and the ramdisk on updates. Set update_ipa to false to prevent the ramdisk update (not recommended) or update_repos to false to disable any updates.

Other Notes

  • Support for Ubuntu Xenial and Debian Stretch has been officially removed (Bifrost has been broken on them since Ussuri because of the transition to Python 3.6).