2024.2 Series Release Notes¶
17.6.0-7¶
Upgrade Notes¶
The default bootstrap user has been changed to
cloud-userifos_distributionis set tocentos. Set*_bootstrap_uservariables tocentosto retain existing behaviour.
Bug Fixes¶
The default bootstrap user has been changed to
cloud-userifos_distributionis set tocentos, to match official cloud images.
Fixes issue when Bifrost hostvars file incorectly generated by Kayobe. LP#2045927
Fixes a regression in network connectivity check when using the
no_ipattribute. LP#2125560
Fixes
--checkand--diffCLI arguments not being passed into Kolla Ansible commands. LP#2123834
17.6.0¶
New Features¶
The
neutron-bgp-dragentcontainer will now be built by default whenkolla_enable_neutron_bgp_dragentis true.
Upgrade Notes¶
Deployments using Juniper Junos OS switches are required to update their configuration according to Juniper Junos OS documentation. This is due to the
junos_configmodule dropping support for theproviderparameter.
Bug Fixes¶
Fixes physical network configuration for Juniper Junos OS switches. Note that users are required to update their configuration according to Juniper Junos OS documentation. LP#2111341
Fixes duplicate
OS_CACERTlines inpublic-openrc.shwhen both admin and public cacert variables are set. LP#2116318
Fixes configuration of backend TLS when network nodes are separate from controllers. LP#2117084
Fixes wrong name of
gpgkeyused for EPEL repositories whendnf_use_local_mirroris enabled. LP#2119921
Fixes CentOS Stream 9 seed and infra VMs not booting by switching to an EFI-compatible image. LP#2121588
Fixes an issue where incorrect network-data.json would be generated when interfaces without IP addresses are attached to infrastructure VMs. LP#2118403
Fixes failure to activate SR-IOV on GPU devices by bumping the
stackhpc.linuxcollection to v1.3.4.
Fixes support for empty strings in the
dev-toolspackage lists. This allows using expressions such as{{ 'foo' if os_distribution == 'rocky' else '' }}. LP#2115000
Fixes network connectivity check when a subset of hosts have the
no_ipproperty set via group or host variables. LP#2120918
17.5.0¶
New Features¶
Adds a new dev script
dev/rabbitmq-migrate-queues.shthat will enable quorum queues and migrate RabbitMQ to use these.
Deploying and destroying infrastructure VMs is now significantly faster as only the required variables are passed to the relevant tasks as opposed to the entire collection of hostvars for each VM.
Upgrade Notes¶
The
openstacksdk_upper_constraints_filevariable now defaults to the value ofpip_upper_constraints_file. Setopenstacksdk_upper_constraints_fileto"https://releases.openstack.org/constraints/upper/{{ openstack_release }}"if you want to retain existing behaviour.
Updates the default cloud image for CentOS Stream 9 deployments to use
CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2.
Bug Fixes¶
Ensure the
OS_SYSTEM_SCOPEenvironment variable is present inopenstack_authto prevent authentication issues occurring in baremetal-compute playbooks. LP#2111103
Fixes
public-openrc.shmissing theOS_CACERTvariable when absent fromadmin-openrc.sh. LP#2110549
Bumps the MichaelRigart.interfaces role to v1.15.4 to fix compatibility with CentOS Stream 9 due to changes in the
iproutepackage.
Bumps the
stackhpc.libvirt-vmrole to v1.16.3 to fix seed and infra VM provisioning failures on Rocky Linux 9.6.
Fixes an issue building images with a regex when no image registry is set LP#2112646
Fixes
ipa_kernel_options_defaultwhenipa_collect_lldpis set to false. LP#2110505
Fix a bug where netplan packages are not fully removed resulting generated network configurations are not getting applied with
host configurecommands. ‘LP#2103794 <https://bugs.launchpad.net/kayobe/+bug/2103794>’__
Bumps MichaelRigart.interfaces to fix an issue where
kayobe overcloud host configurewould fail to template during the networking tasks on Rocky hosts, with the errorCould not load "ipaddr". LP#2107335
Fixes an issue on boot where vgpu devices would fail to start due to a race condition in the startup logic. See LP#2102153 for more details.
Adds a
namefield to elements ofapt_repositories, which specifies the name of the repository file (without the.sourcessuffix). The default value of this field iskayobeand it may be omitted. The user can override the default by providing a different name, such asubuntu, and new repository data. This way, the default file,/etc/apt/source.list.d/ubuntu.sources, will be overwritten by the provided repository configuration. LP#2107280
17.4.0¶
New Features¶
Supports forcing time synchronisation after configuring
chronyifntp_force_syncis changed toTrue.
Bug Fixes¶
Bumps the MichaelRigart.interfaces role to v1.15.3 to fix an issue where NetworkManager was not restarted before bouncing network interfaces. LP#2100792
17.3.0¶
New Features¶
Adds variables to configure authentication parameters in the
image-downloadrole, which is used to download IPA images. The new variables areimage_download_url_username,image_download_url_password,image_download_force_basic_authandimage_download_unredirected_headers. See documentation of the get_url and uri Ansible modules for more details on how to use these variables.
Bug Fixes¶
Fixes an issue where slave interfaces would not be brought back up when bouncing the master interface. LP#2072340.
17.2.0¶
Bug Fixes¶
Fixes a bug where non-overcloud hosts would show up in the confirmation prompt for
kayobe overcloud deprovisionLP#2091703
17.1.0¶
Bug Fixes¶
Pin requirements for IPA image build to ensure that the
ironic-libversion matchesironic-python-agent. LP#2089263
17.0.0¶
New Features¶
Added initial support for systemd-networkd link configuration, now you can configure and rename the name of a network interface if you know the MAC address of the interface.
Adds the internal VIP to the NOPROXY/noproxy environment variables.
Ironic Inspector configuration can now be customised by placing config overrides in the
$KAYOBE_CONFIG_PATH/kolla/config/ironic-inspectoror$KAYOBE_CONFIG_PATH/environments/<environment>/kolla/config/ironic-inspectordirectories. This can be used to a define aknown_devices.yamlfile which is used to configure theacceleratorsplugin in Ironic Inspector.
Adds support for setting whether an Apt repo is trusted.
The
kolla_base_archvariable has been introduced, allowing users to specify the architecture for base container images. This supports cross-architecture builds, enabling the building of images for architectures different from the host machine (e.g., buildingaarch64images on anx86_64machine).By default,
kolla_base_archis set to the detected architecture ({{ ansible_facts.architecture }}). However, whenkolla_base_archdiffers from the host architecture, themultiarch/qemu-user-staticimage is used to facilitate cross-arch builds.
Adds support for configuring Cumulus switches using the NVIDIA User Experience command line utility (NVUE). This is integrated with the
kayobe physical network configurecommand.
Adds support for using Cumulus switches (NCLU and NVUE) with Networking Generic Switch.
Adds a new
redfish_addressvariable and extends thekayobe overcloud inventory discovercommand to discover the address from the Bifrost node inventory.
Enables ProxySQL by default. ProxySQL can be disabled by setting the
kolla_enable_proxysqlvariable tofalse.
Adds support for using different interface than Bifrost PXE one for admin interface during
overcloud provision. This can be enabled by settingkolla_bifrost_use_introspection_mactotrueor settingkolla_bifrost_ipv4_interface_macin respective hosthost_vars.
Adds support for customising Neutron physical network names using the
physical_networknetwork attribute.
Adds support for specifying
boot_firmwareandmachinevariables to seed and infra VMs. This can be used to launch VMs in UEFI boot mode with Q35 machine type.
Bumps stackhpc.libvirt-vm Ansible role to
v1.16.1.
Adds support for configuring Apt preferences under
/etc/apt/preferences.d.
Adds support for skipping SSH keyscan when configuring switches using
kayobe physical network configureusing aswitch_skip_keyscanvariable.
Adds support for Ubuntu Noble Numbat (24.04) LTS as a host and container Operating System for seed, seed hypervisor and overcloud hosts. Default Ubuntu version has been changed to Ubuntu Noble (24.04) LTS.
Adds validation to protect against executing Kayobe from within a different Kayobe configuration repository than the one referred to by environment variables (e.g.
KAYOBE_CONFIG_PATH) or CLI arguments (e.g.--config-path).
Upgrade Notes¶
Python 3.9.x is no longer supported on the control host. On Rocky Linux 9, please recreate your virtualenv with
python3.12.
Updates the maximum supported version of Ansible from 9.x (ansible-core 2.16) to 10.x (ansible-core 2.17). The minimum supported version is updated from 8.x to 9.x. On Rocky Linux 9, you will need to recreate your Kayobe virtualenv using
python3.12as support forpython3.9has been dropped.
Bumps the
stackhpc.linuxcollection to 1.3.0. Note this version uses systemd to activate virtual functions. This change is restricted to thestackhpc.linux.sriovrole, which is not used by Kayobe. If a custom playbook uses this role, you can retain existing behaviour by settingsriov_numvfs_drivertoudev.
Ansible plugins, roles, and collections (collectively known as extensions) installed in Kayobe configuration no longer have precedence over internal Kayobe variants of the same extension. You can revert back to the previous behaviour by manually exporting the relevant Ansible variables, e.g
ANSIBLE_COLLECTIONS_PATH. It is not anticipated that this will affect many users as it is still possible to supplement Kayobe with additional plugins.
System folders and home directories are no longer searched when looking for Ansible extensions. It is recommended to install your collections using
$KAYOBE_CONFIG_PATH/ansible/requirements.yml.
Kayobe no longer overrides the enabled and default Ironic hardware types and interfaces. This ensures that changes to the default values in Ironic are automatically adopted. These may still be customised via the existing Kayobe variables in
${KAYOBE_CONFIG_PATH}/ironic.yml, e.g.kolla_ironic_enabled_hardware_types.The default configuration generated by Kayobe in Caracal was:
enabled_hardware_types = ipmi enabled_bios_interfaces = no-bios enabled_boot_interfaces = ipxe,pxe enabled_console_interfaces = ipmitool-socat,no-console enabled_inspect_interfaces = inspector,no-inspect enabled_management_interfaces = ipmitool enabled_network_interfaces = noop,flat,neutron enabled_power_interfaces = ipmitool enabled_raid_interfaces = agent,no-raid enabled_rescue_interfaces = agent,no-rescue enabled_vendor_interfaces = no-vendor
In Dalmatian, Ironic defaults are:
enabled_hardware_types = ipmi,redfish enabled_bios_interfaces = no-bios,redfish enabled_boot_interfaces = ipxe,pxe,redfish-virtual-media enabled_console_interfaces = no-console enabled_inspect_interfaces = no-inspect,redfish enabled_management_interfaces = <determined by enabled hardware types> enabled_network_interfaces = flat,noop enabled_power_interfaces = <determined by enabled hardware types> enabled_raid_interfaces = agent,no-raid,redfish enabled_rescue_interfaces = no-rescue enabled_vendor_interfaces = ipmitool,redfish,no-vendor
In particular, note that the
neutronnetwork interface is no longer enabled by default.
Updates the minimum supported version of Ansible from 2.15 to 2.16, and the maximum supported version from 2.17 to 2.18 in the Kolla Ansible virtualenv. The Python version used to install Kolla Ansible on Rocky 9 is bumped to 3.12.
The
physical_networkattribute must now be applied consistently to all external networks in Kayobe configuration. If any external network has the attribute, then all others must also.
Updates the default Neutron ML2 type drivers and tenant network types to use
geneveinstead ofvxlanwhen OVN is enabled. This affects thekolla_neutron_ml2_type_driversandkolla_neutron_ml2_tenant_network_typesvariables.
Bumps the
nvidia.nvuecollection to 1.2.6.
If you have customized
inspector_keep_ports, ensure it is set to one of:all,present, oradded. Prior to this release, settinginspector_keep_portsto any truthy value would result in thekeep_portsIronic Inspector configuration option being set topresent. As the default value ofinspector_keep_portsisadded, we are effectively changing the default value ofkeep_portsfrompresenttoadded. If you are relying on the previous behaviour you should setironic_keep_portstopresent.
Changes the default boot firmware for seed and infra VMs to
efi. Setinfra_vm_boot_firmwareandseed_vm_boot_firmwaretobiosto retain existing behaviour.
Security Issues¶
When running API requests from a host configured with kayobe, traffic destined for the internal VIP is sent via the default proxy. This can be a security issue if not using TLS as the proxy will be able to intercept the traffic. If using an untrusted proxy, with TLS disabled on the internal VIP, it is recommended that you run
kayobe overcloud host configure -t proxy,kayobe seed hypervisor host configure -t proxy,kayobe seed host configure -t proxy, andkayobe infra vm host configure -t proxy, to add the internal VIP to the no proxy configuration. This is considered a minor issue as traffic between containers will not use the proxy by default. LP#2087556
Avoid leaking DNF repository username/password credentials in the Kayobe output by adding loop control to print only the repository key. LP#2087938
Bug Fixes¶
eos_configdoes not support theproviderparameter since Ansible 7. Users are required to update their configuration according to Arista EOS documentation.
Fixes IPA and host image build failures when Git was not installed on the build host. LP#2058922
Fixes an issue where task ‘Ensure ironic nodes use the new Ironic Python Agent (IPA) images` fails with ‘dict object’ has no attribute ‘deploy_kernel’. LP#2083014
The
proxysqlimage is now built whenkolla_enable_proxysqlis set totrue.
Avoid leaking DNF repository username/password credentials in the Kayobe output by adding loop control to print only the repository key. LP#2087938
Fixes an issue where networking failed to come up after kayobe
overcloud host provisionas cloud-init wasn’t installed. Addcloud-initelement toovercloud_dib_elements_defaultso it’s no longer missing. Expected behavior was thatcloud-init-datasourcehad it as dependency.
Fixes a bug where systemd-networkd was not permanently enabled when the unit was already in state
runtime-enabled. LP#2073100
Updates the group and mode set on the
/var/log/journaldirectory to match default ownership and permissions used bysystemd-journald. LP#2083494
Fixes generation of kernel parameters when the GRUB_CMDLINE_LINUX_DEFAULT variable is absent from
/etc/default/grub. LP#2083874.
The Ansible search paths, when running Kayobe internal playbooks, have been modified so that collections, roles and plugins internal to the Kayobe installation have precedence over those installed in Kayobe configuration. This improves the usability as it is now possible to install a newer version of an extension without affecting internal Kayobe playbooks. LP#2056473
Fixes an issue when using overcloud Ironic with a shared Ansible control host. The use of a shared cache directory could lead to a failure to download Ironic Python Agent (IPA) images. LP#2069845
inspector_keep_portscan be set to one of:all,present,added. The previous behavior was to set this topresentif the variable was changed to any truthy value. This respects the behavior indicated in the comments.
Fixes compatibility with Rocky Linux 9.4 GenericCloud images by switching to
efiboot firmware.
Switches to using
ansible-corebased kolla-ansible install. This is a workaround for LP#2072979, but also results in a lighter weight install.
Switches to using a newer version of the docker community collection to workaround issues using the docker ansible modules with certain combinations of python libraries. See LP#2072979.