2024.2 系列发布说明

17.7.0-7

错误修复

  • 修复了在 ipv4_gateway 未定义时生成 Bifrost 主机变量文件的问题。 LP#2133489

  • nvidia.nvue Ansible 集合的版本从 1.2.6 升级到 1.2.9。 这修复了一个问题,即无法将交换机配置应用于运行 Cumulus Linux 5.13 的交换机。有关更多详细信息,请参阅 LP#2131677

17.7.0

升级说明

  • 如果 os_distribution 设置为 centos,则默认引导用户已更改为 cloud-user。将 *_bootstrap_user 变量设置为 centos 以保留现有行为。

错误修复

  • 如果 os_distribution 设置为 centos,则默认引导用户已更改为 cloud-user,以匹配官方云镜像。

  • 修复了 Kayobe 错误生成 Bifrost hostvars 文件的问题。LP#2045927

  • 修复了在使用 no_ip 属性时网络连接检查中的回归问题。LP#2125560

  • 修复了 --check--diff CLI 参数未传递到 Kolla Ansible 命令的问题。LP#2123834

17.6.0

新特性

  • kolla_enable_neutron_bgp_dragent 为 true 时,neutron-bgp-dragent 容器现在默认会构建。

升级说明

  • 使用 Juniper Junos OS 交换机的部署需要根据 Juniper Junos OS 文档 更新其配置。这是因为 junos_config 模块不再支持 provider 参数。

错误修复

  • 修复了在同时设置 admin 和 public cacert 变量时,public-openrc.sh 中的重复 OS_CACERT 行。LP#2116318

  • 修复了当网络节点与控制器分离时的后端 TLS 配置。LP#2117084

  • 修复了启用 dnf_use_local_mirror 时,用于 EPEL 仓库的 gpgkey 名称错误的问题。LP#2119921

  • 修复了 CentOS Stream 9 seed 和 infra 虚拟机无法启动的问题,通过切换到兼容 EFI 的镜像。LP#2121588

  • 修复了当附加到 infrastructure 虚拟机的不带 IP 地址的接口时,会生成不正确的 network-data.json 的问题。LP#2118403

  • 通过将 stackhpc.linux 集合升级到 v1.3.4,修复了 GPU 设备上 SR-IOV 激活失败的问题。

  • 修复了在 dev-tools 包列表中使用空字符串的支持。这允许使用诸如 {{ 'foo' if os_distribution == 'rocky' else '' }} 之类的表达式。LP#2115000

  • 修复了当通过组或主机变量设置部分主机具有 no_ip 属性时,网络连接检查的问题。LP#2120918

17.5.0

新特性

  • 添加了一个新的 dev 脚本 dev/rabbitmq-migrate-queues.sh,它将启用 quorum 队列并将 RabbitMQ 迁移到使用这些队列。

  • 部署和销毁 infrastructure 虚拟机现在速度更快,因为只有必需的变量才会传递给相关的任务,而不是每个虚拟机的整个 hostvars 集合。

升级说明

  • 变量 openstacksdk_upper_constraints_file 现在默认设置为 pip_upper_constraints_file 的值。如果想要保留现有行为,请将 openstacksdk_upper_constraints_file 设置为 "https://releases.openstack.org/constraints/upper/{{ openstack_release }}"

  • 更新了 CentOS Stream 9 部署的默认云镜像,以使用 CentOS-Stream-GenericCloud-9-latest.x86_64.qcow2

错误修复

  • 确保在 openstack_auth 中存在 OS_SYSTEM_SCOPE 环境变量,以防止在 baremetal-compute playbook 中发生身份验证问题。LP#2111103

  • 修复了在 admin-openrc.sh 中不存在时,public-openrc.sh 缺少 OS_CACERT 变量的问题。LP#2110549

  • 将 MichaelRigart.interfaces 角色升级到 v1.15.4,以修复由于 iproute 包更改导致 CentOS Stream 9 兼容性问题。

  • stackhpc.libvirt-vm 角色升级到 v1.16.3,以修复 Rocky Linux 9.6 上 seed 和 infra 虚拟机配置失败的问题。

  • 修复了在未设置镜像仓库时,使用正则表达式构建镜像的问题 LP#2112646

  • 修复了当 ipa_collect_lldp 设置为 false 时,ipa_kernel_options_default 的问题。LP#2110505

  • 将 MichaelRigart.interfaces 升级到修复一个问题,即在 Rocky 主机上,kayobe overcloud host configure 在网络任务期间无法模板化,并出现错误 Could not load "ipaddr"LP#2107335

  • 修复了启动时 vgpu 设备由于启动逻辑中的竞争条件而无法启动的问题。有关更多详细信息,请参阅 LP#2102153

  • apt_repositories 的元素添加了一个 name 字段,该字段指定仓库文件的名称(不带 .sources 后缀)。此字段的默认值为 kayobe,可以省略。用户可以通过提供不同的名称(例如 ubuntu)并提供新的仓库数据来覆盖默认值。这样,默认文件 /etc/apt/source.list.d/ubuntu.sources 将被提供的仓库配置覆盖。LP#2107280

17.4.0

新特性

  • 支持在配置 chrony 后强制时间同步,如果 ntp_force_sync 更改为 True

错误修复

  • 将 MichaelRigart.interfaces 角色升级到 v1.15.3,以修复一个问题,即在跳过网络接口之前,NetworkManager 未被重启。LP#2100792

17.3.0

新特性

  • 添加了变量以配置用于下载 IPA 镜像的 image-download 角色中的身份验证参数。新的变量是 image_download_url_usernameimage_download_url_passwordimage_download_force_basic_authimage_download_unredirected_headers。有关如何使用这些变量的更多详细信息,请参阅 get_urluri Ansible 模块的文档。

错误修复

  • 修复了一个问题,即 slave 接口在跳过 master 接口后无法重新启动。LP#2072340

17.2.0

错误修复

  • 修复了一个错误,即非 overcloud 主机出现在 kayobe overcloud deprovision 的确认提示中 LP#2091703

17.1.0

错误修复

  • 固定 IPA 镜像构建的要求,以确保 ironic-lib 版本与 ironic-python-agent 匹配。LP#2089263

17.0.0

新特性

  • 添加了对 systemd-networkd 链路配置的初始支持,现在您可以配置和重命名接口名称,如果您知道接口的 MAC 地址。

  • 将内部 VIP 添加到 NOPROXY/noproxy 环境变量。

  • Ironic Inspector 配置现在可以通过将配置覆盖放在 $KAYOBE_CONFIG_PATH/kolla/config/ironic-inspector$KAYOBE_CONFIG_PATH/environments/<environment>/kolla/config/ironic-inspector 目录中进行自定义。这可用于定义 known_devices.yaml 文件,该文件用于配置 Ironic Inspector 中的 accelerators 插件。

  • 添加了支持设置 Apt 仓库是否受信任的功能。

  • 引入了变量 kolla_base_arch,允许用户指定基础容器镜像的架构。这支持跨架构构建,可以构建与主机机器不同的架构的镜像(例如,在 x86_64 机器上构建 aarch64 镜像)。

    默认情况下,kolla_base_arch 设置为检测到的架构({{ ansible_facts.architecture }})。但是,当 kolla_base_arch 与主机架构不同时,将使用 multiarch/qemu-user-static 镜像来促进跨架构构建。

  • 添加了对使用 NVIDIA User Experience 命令行实用程序 (NVUE) 配置 Cumulus 交换机的支持。这集成到 kayobe physical network configure 命令中。

  • 添加了对使用 Cumulus 交换机(NCLU 和 NVUE)与 Networking Generic Switch 的支持。

  • 添加了一个新的 redfish_address 变量,并扩展了 kayobe overcloud inventory discover 命令,以从 Bifrost 节点库存中发现地址。

  • 默认启用 ProxySQL。可以通过将 kolla_enable_proxysql 变量设置为 false 来禁用 ProxySQL。

  • 添加了支持在 overcloud provision 期间使用不同的接口而不是 Bifrost PXE 接口作为 admin 接口。可以通过将 kolla_bifrost_use_introspection_mac 设置为 true 或在各自的 host host_vars 中设置 kolla_bifrost_ipv4_interface_mac 来启用此功能。

  • 添加了支持使用物理网络属性中的 physical_network 网络属性自定义 Neutron 物理网络名称。

  • 增加了对在 seed 和 infra VM 中指定 boot_firmwaremachine 变量的支持。这可用于使用 Q35 机器类型以 UEFI 启动模式启动 VM。

  • 将 stackhpc.libvirt-vm Ansible 角色升级到 v1.16.1

  • 增加了对在 /etc/apt/preferences.d 下配置 Apt 首选项的支持。

  • 增加了在使用 kayobe physical network configure 配置交换机时,通过 switch_skip_keyscan 变量跳过 SSH keyscan 的支持。

  • 增加了对 Ubuntu Noble Numbat (24.04) LTS 作为 seed、seed hypervisor 和 overcloud 主机的宿主机和容器操作系统支持。默认 Ubuntu 版本已更改为 Ubuntu Noble (24.04) LTS。

  • 增加了验证,以防止从与环境变量(例如 KAYOBE_CONFIG_PATH)或 CLI 参数(例如 --config-path)引用的 Kayobe 配置仓库不同的位置执行 Kayobe。

升级说明

  • 控制主机不再支持 Python 3.9.x。在 Rocky Linux 9 上,请使用 python3.12 重新创建您的 virtualenv。

  • 将 Ansible 的最大支持版本从 9.x (ansible-core 2.16) 升级到 10.x (ansible-core 2.17)。最低支持版本从 8.x 升级到 9.x。在 Rocky Linux 9 上,您需要使用 python3.12 重新创建 Kayobe virtualenv,因为已停止对 python3.9 的支持。

  • stackhpc.linux 集合升级到 1.3.0。请注意,此版本 使用 systemd 激活虚拟功能。此更改仅限于 stackhpc.linux.sriov 角色,该角色未被 Kayobe 使用。如果自定义 playbook 使用此角色,则可以通过将 sriov_numvfs_driver 设置为 udev 来保留现有行为。

  • 安装在 Kayobe 配置中的 Ansible 插件、角色和集合(统称为扩展)不再优先于 Kayobe 内部相同扩展的变体。可以通过手动导出相关的 Ansible 变量(例如 ANSIBLE_COLLECTIONS_PATH)来恢复到以前的行为。预计这不会影响许多用户,因为仍然可以使用其他插件来补充 Kayobe。

  • 在查找 Ansible 扩展时,系统文件夹和主目录不再被搜索。建议使用 $KAYOBE_CONFIG_PATH/ansible/requirements.yml 安装您的集合。

  • Kayobe 不再覆盖 Ironic 硬件类型和接口的启用和默认设置。这可确保 Ironic 中默认值的更改自动采用。这些仍然可以通过 Kayobe 变量在 ${KAYOBE_CONFIG_PATH}/ironic.yml 中进行自定义,例如 kolla_ironic_enabled_hardware_types

    Caracal 中 Kayobe 生成的默认配置是

    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
    

    在 Dalmatian 中,Ironic 默认值是

    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
    

    特别是,请注意 neutron 网络接口不再默认启用。

  • 将 Kolla Ansible virtualenv 中 Ansible 的最小支持版本从 2.15 升级到 2.16,最大支持版本从 2.17 升级到 2.18。用于在 Rocky 9 上安装 Kolla Ansible 的 Python 版本升级到 3.12。

  • physical_network 属性现在必须一致地应用于 Kayobe 配置中的所有外部网络。如果任何外部网络具有该属性,则所有其他网络也必须具有。

  • 在启用 OVN 时,将默认的 Neutron ML2 类型驱动程序和租户网络类型更新为使用 geneve 代替 vxlan。这会影响 kolla_neutron_ml2_type_driverskolla_neutron_ml2_tenant_network_types 变量。

  • nvidia.nvue 集合升级到 1.2.6。

  • 如果您已自定义 inspector_keep_ports,请确保将其设置为以下值之一:allpresentadded。在此版本之前,将 inspector_keep_ports 设置为任何真值都会导致 Ironic Inspector 配置选项 keep_ports 设置为 present。由于 inspector_keep_ports 的默认值为 added,因此我们实际上是将 keep_ports 的默认值从 present 更改为 added。如果您依赖于以前的行为,则应将 ironic_keep_ports 设置为 present

  • 将 seed 和 infra VM 的默认启动固件更改为 efi。将 infra_vm_boot_firmwareseed_vm_boot_firmware 设置为 bios 以保留现有行为。

安全问题

  • 当从配置了 kayobe 的主机运行 API 请求时,发往内部 VIP 的流量通过默认代理发送。如果未使用 TLS,这可能是一个安全问题,因为代理将能够拦截流量。如果使用不受信任的代理,并且内部 VIP 上禁用了 TLS,建议运行 kayobe overcloud host configure -t proxykayobe seed hypervisor host configure -t proxykayobe seed host configure -t proxykayobe infra vm host configure -t proxy,以将内部 VIP 添加到免代理配置。这被认为是一个小问题,因为容器之间的流量默认情况下不会使用代理。LP#2087556

  • 通过添加循环控制来仅打印仓库密钥,避免在 Kayobe 输出中泄露 DNF 仓库用户名/密码凭据。LP#2087938

错误修复

  • eos_config 自 Ansible 7 以来不支持 provider 参数。用户需要根据 Arista EOS 文档 更新其配置。

  • 修复了 Git 未安装在构建主机时 IPA 和主机镜像构建失败的问题。LP#2058922

  • 修复了任务“确保 ironic 节点使用新的 Ironic Python Agent (IPA) 镜像”在“dict object”没有“deploy_kernel”属性时失败的问题。LP#2083014

  • 现在,当 kolla_enable_proxysql 设置为 true 时,将构建 proxysql 镜像。

  • 通过添加循环控制来仅打印仓库密钥,避免在 Kayobe 输出中泄露 DNF 仓库用户名/密码凭据。LP#2087938

  • 修复了在 kayobe overcloud host provision 之后网络无法启动的问题,因为 cloud-init 未安装。将 cloud-init 元素添加到 overcloud_dib_elements_default,因此不再缺失。预期行为是 cloud-init-datasource 将其作为依赖项。

  • 修复了一个问题,即当单元已经处于 runtime-enabled 状态时,systemd-networkd 未被永久启用。LP#2073100

  • 更新了 /var/log/journal 目录上的组和模式设置,以匹配 systemd-journald 使用的默认所有权和权限。LP#2083494

  • 修复了在 /etc/default/grub 中缺少 GRUB_CMDLINE_LINUX_DEFAULT 变量时生成内核参数的问题。LP#2083874

  • 在运行 Kayobe 内部 playbook 时,Ansible 搜索路径已被修改,以便内部 Kayobe 安装的集合、角色和插件优先于安装在 Kayobe 配置中的那些。这提高了可用性,因为现在可以安装更新版本的扩展,而不会影响内部 Kayobe playbook。LP#2056473

  • 修复了在使用共享 Ansible 控制主机的 overcloud Ironic 时的问题。使用共享缓存目录可能导致无法下载 Ironic Python Agent (IPA) 镜像。LP#2069845

  • inspector_keep_ports 可以设置为以下值之一:allpresentadded。以前的行为是将此设置为 present,如果变量更改为任何真值。这尊重了评论中指示的行为。

  • 修复了与 Rocky Linux 9.4 GenericCloud 镜像的兼容性,切换到 efi 启动固件。

  • 切换到使用基于 ansible-core 的 kolla-ansible 安装。这是 LP#2072979 的解决方法,但同时也实现了更轻量级的安装。

  • 切换到使用较新版本的 docker 社区集合,以解决在某些 Python 库组合中使用 docker ansible 模块时出现的问题。请参阅 LP#2072979