Current Series Release Notes

20.0.0-109

New Features

  • Adds ansible-pylibssh to Kayobe’s Python requirements. It is used by kayobe physical network configure for switches using the ansible.netcommon.network_cli connection, as the paramiko transport for network_cli is deprecated in ansible.netcommon.

  • Adds support for configuring Cisco NX-OS switches with kayobe physical network configure. Set switch_type to cisco-nxos to use this support.

  • Adds support for configuring Dell Enterprise SONiC switches using sonic-cli, via the dellemc.enterprise_sonic Ansible collection. This is integrated into the kayobe physical network configure command.

  • Adds support for QoS egress/ingress settings in systemd-networkd for Debian-family distributions. Use ingress_qos_map and egress_qos_map variables to configure QoS maps for incoming and outgoing packets respectively.

  • Adds the --install-only and --no-install command line options to kayobe control host bootstrap. In install-only mode, only the dependencies are installed, but the rest of the host configuration is skipped. In no-install mode, install is skipped, but the rest of the tasks are executed.

  • Adds support for configuration of AlliedWare Plus switches. This is integrated with the kayobe physical network configure command.

  • Adds support for Cisco NX-OS switches in the Neutron genericswitch ML2 mechanism driver configuration generated from kolla_neutron_ml2_generic_switch_hosts. Set switch_type to cisco-nxos to use the netmiko_cisco_nxos device type.

  • The nmstate network engine now supports Ansible check and diff modes. Running for example kayobe overcloud host configure --check --diff reports whether network changes are required and shows the computed differences without modifying the host.

  • Adds support for configuring hostnames via Kayobe. This is disabled by default; it can be enabled by setting kayobe_customize_hostnames to true. By default, Kayobe will use the Ansible inventory hostname. This can be overriden by setting kayobe_custom_hostname.

  • Adds support for updating cache during host package update on all supported systems.

Upgrade Notes

  • Switches using the ansible.netcommon.network_cli connection now use libssh rather than paramiko. Set ansible_network_cli_ssh_type to paramiko to keep the previous behaviour.

  • Updates the maximum supported version of Ansible from 13 (ansible-core 2.20) to 14 (ansible-core 2.21). The minimum supported version is updated from 12.x to 13.x. This is true for both Kayobe and Kolla Ansible.

  • docker_storage_driver is now unset by default, which defers to the Docker runtime default storage backend.

    On fresh installations of Docker Engine 29.0 and later, Docker uses the containerd image store by default. On existing installations upgraded from earlier Docker versions, Docker continues using the legacy graph drivers (including overlay2) until the containerd image store is explicitly enabled. See the Docker containerd image store documentation for details.

  • Drops support for CentOS Stream 10. Rocky Linux 10 can be used in its place.

  • Removed the deprecated options --kolla-tags and kolla-limit from all commands.

  • Enables systemd-resolved on Ubuntu hosts.

  • Kayobe no longer sets ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true in the environment when executing Ansible playbooks. Custom playbooks that use conditionals which do not evaluate to a boolean value will now fail. These should be updated to use explicit boolean expressions, for example when: my_list | length > 0 rather than when: my_list. As a temporary workaround, ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true may be set in the shell environment, or allow_broken_conditionals = True may be set in the [defaults] section of ${KAYOBE_CONFIG_PATH}/ansible.cfg.

  • Removes the deprecated configuration variable external_net_name. Users should use external_net_names instead.

  • Support for deploying Swift has been removed, following its removal from Kolla Ansible. This includes the kayobe overcloud swift rings generate command, the swift-rings and swift-block-devices roles, and the associated swift inventory and configuration variables.

Bug Fixes

  • Fixes an error in the manage-containers role that occurred when running kayobe overcloud service reconfigure. LP#2160941

  • Fixes an issue where seed service deployment could fail with a DiscoveryFailure error when an HTTP proxy is configured. The seed’s provisioning IP address is now included in the default no_proxy list, preventing the proxy from intercepting requests to seed services such as Ironic. LP#2154438

  • Fixes displaying the error when a failure to retrieve an inspection rule occurs. LP#2162058

  • Resolves an issue that prevented Arista switch interface configuration from being applied. LP#2162130

  • Fixes Bifrost deployment by ensuring that extra kernel parameters are successfully parsed by Ironic. LP#2162755

  • Fixes Dell OS10 switch config. Also makes sure that VLAN interfaces are defined first as others might depend on them. LP#2168529

  • Fixes Dell switch configuration tasks always reporting as changed when saving switch configuration was enabled. Switch configuration is now saved only when changes have been made. LP#2168538

  • Fixes regression causing DellOS10 switch config tasks to always change description strings if there are not whitespace characters. LP#2168557

  • Bumps the stackhpc.openstack collection to version 0.10.2. This fixes a broken conditional causing IPA and overcloud image build failures when ALLOW_BROKEN_CONDITIONALS is disabled. LP#2157021

  • Fixes Kayobe’s Ansible user setup in check mode by ensuring that the Python availability check runs. This allows the following task to correctly determine whether Python needs to be installed. LP#2165042

  • Fixes a race when configuring firewalld that could cause host configuration to fail with INVALID_ZONE for a zone that was created while firewalld was still starting up. The firewalld role now waits until the firewalld D-Bus interface is ready before creating zones, ensuring that they are applied to the running daemon rather than only to the on-disk configuration.

  • Fixes an issue where kayobe configuration dump would fail with ansible-core 2.19 or later. Variables that reference hostvars or undefined variables are now resolved correctly, and variables that cannot be resolved are included in the dump in their raw form. LP#2166964

  • Fixes paths to EPEL repositories on Rocky Linux. Previously, they were only using the major version $releasever which could point to an incompatible repository. They now use both major and minor versions, e.g. 10.2 instead of 10. There is no change on CentOS Stream which uses only the major version. LP#2156407

  • Fixes a bug where ansible/overcloud-etc-hosts-fixup.yml, run as part of kayobe overcloud host upgrade, attempted to run on all overcloud hosts, including those that are not mapped through to the generated kolla-ansible inventory. It is now skipped on hosts that are not mapped through to kolla-ansible. LP#2167869

  • Fixes an issue with agent-based bare metal inspection, where the collectors were not being configured by Ironic. This was the case when using the managed inspection mode in Ironic.

  • Fixes the nmstate network engine when cloud-init creates a NetworkManager connection whose profile ID differs from the interface name (LP#2165006). Firewalld zone synchronisation now resolves the active profile from the interface before reading or updating its connection zone.

  • Fix all hostnames in a group being merged into a single line in the kolla overcloud hosts inventory file. LP#2158773

  • Fixes installation of Ansible roles and collections during kayobe control host bootstrap to respect a custom ansible.cfg in the Kayobe configuration path. Previously the ansible-galaxy commands were run without ANSIBLE_CONFIG set, so configuration such as a custom Galaxy server list (server_list) was ignored and the default public Galaxy server was used instead.

  • Fixes installation of Kolla Ansible collection dependencies during kayobe control host bootstrap to respect a custom ansible.cfg in the Kayobe configuration path. Previously the ansible-galaxy commands run by the kolla-ansible role did not set ANSIBLE_CONFIG, so configuration such as a custom Galaxy server list (server_list) was ignored and the default public Galaxy server was used instead.

  • Fixes a bug where the httpd image does not get built with kayobe overcloud container image build. LP#2161615

    This image was introduced in Kolla from change 954707.

    The httpd image will be built by default when any of following variables are set to true:

    • kolla_enable_ironic

    • kolla_enable_keystone

    • kolla_enable_letsencrypt

  • The nmstate network engine reported changed on every run for hosts whose runtime state contains volatile data (for example Linux bridges, whose bridge ageing timers such as gc-timer change over time), because it compared full libnmstate.show() snapshots taken before and after applying the state. Change detection now uses libnmstate.generate_differences(), which only compares the desired state against the runtime state. LP#2164642

  • The ntp role now explicitly skips the command based clock synchronisation tasks when running in check mode.

  • Optimize network connectivity check by mapping of network name to hosts on that network only once per play, instead of once per host.

  • Fixes a bug found when trying to assign a multi-word description to a Dell OS switch with kayobe physical network configure. LP#2161899

  • Fixes deployment image updates failing when an Ironic node is missing deployment image IDs. LP#2165045