Queens 系列 (9.2.0 - 10.1.x) 发行说明

10.1.10-11

错误修复

  • 修复了在使用 Python 3 配置 RAID 时“SpanLength 的参数值无效”的 issue。它将错误的数据类型传递给 iDRAC,例如,它传递了 2.0 而不是 2。请参阅 story 2004265

  • 修复了一个 bug,在使用 WS-MAN 电源接口时,使用 idrac 硬件类型管理节点重启有时会因 The command failed to set RequestedState 错误而失败。有关详细信息,请参阅 bug 2007487

  • 为 IPA 添加了 command_timeoutmax_command_attempts 配置选项,以便在发生连接错误时再次执行命令。

  • 修复了 ironic-conductor 初始化可能在需要锁的请求时返回 NodeNotLocked 错误的 issue。这是因为 conductor 在开始接受新工作后删除了锁。锁的移除已移动到数据库连接建立之后但在 RPC 总线初始化之前。

  • 如果带内清理步骤在完成带外清理步骤(该步骤执行节点重启)之后执行,清理操作可能会失败。 失败原因是竞态条件,在清理恢复之前,Ironic Python Agent (IPA) 尚未准备好执行清理步骤。 此问题已修复。 有关更多信息,请参阅 bug 2002731

10.1.10

错误修复

  • 修复了在部署过程中遇到的部署 issue,更具体地说是在 configdrive 分区创建步骤中。在某些特定设备(例如 NVMe 驱动器)上,创建的 configdrive 分区无法正确识别(之后需要将数据转储到其中)。https://storyboard.openstack.org/#!/story/2005764

  • 修复了在具有大量安全组的云中部署时,由于列出安全组花费的时间过长而导致的问题。不再列出所有安全组,而是添加了查询过滤器以仅列出要用于网络的安全组。(请参阅 bug 2006256。)

10.1.9

错误修复

  • 修复了关于 ansible deployment interface 清理工作流程的一个 issue。在驱动程序中处理错误并返回空值会导致管理器认为该步骤已完成并进入下一个步骤,而不是中断清理工作流程。

  • 修复了使用 ansible 部署接口时,无法正确将原始镜像流式传输到主机的 issue。

  • 修复了使用 ansible 部署接口和具有 GPT 分区表的实例镜像的部署问题。

  • 修复了在 ipmitool 接口的传感器数据解析方法中,缺乏处理自动包含的 ipmitool 调试信息的能力,当 ironic.conf 文件中将 debug 选项设置为 True 时。因此,底层 ipmitool 命令提供的额外调试信息被忽略。有关更多信息,请参阅 story 2005331

  • 修复了一个 cinder 块存储服务卷无法附加的问题,该问题期望挂载点是一个有效的字符串。有关更多信息,请参阅 story 2004864

  • 在提供对 image_source 的无效引用时,返回正确的错误消息。 之前会引发内部错误。

  • 撤销了对 idrac 硬件类型创建端口对象(在检查时 pxe_enabled 字段未设置为反映物理端口的配置)的修复。 这与稳定分支策略不一致 [1]。 它需要 python-dracclient 版本 1.5.0 或更高版本;但是,driver-requirements.txt 指定可以使用版本 1.3.0 或更高版本在此分支上使用。

    [1] https://docs.openstack.org/project-team-guide/stable-branches.html

10.1.8

错误修复

  • 已修复节点更新代码中的一个错误,该错误可能导致如果其驱动程序不再可用,节点将无法更新。

  • 修复了一个无法禁用主实例镜像缓存的问题。 配置选项 [pxe]/instance_master_path 现在可以设置为一个空字符串来禁用缓存。

  • 修复了一个 ironic 端口未根据 idrac 硬件类型的 PXE 启用设置在节点内省中更新的错误。 有关详细信息,请参阅 bug 2004340

10.1.7

升级说明

  • 配置选项 hash_ring_reset_interval 从 180 更改为 15 秒。 之前,此选项在 API 端基本上被忽略,因为哈希环会在每次 API 访问时重置。 较低的值可最大限度地减少将请求路由到错误 conductor 的概率,尤其是在需要重新平衡环时。

  • 如果您正在进行次要版本升级,请重新运行 ironic-dbsync online_data_migrations 命令,以正确更新数据库中 Objects 的版本。 否则,下一次主要升级可能会失败。

关键问题

  • ironic-dbsync online_data_migrations 命令未将对象更新到最新版本,这可能会阻止升级工作(例如,在运行下一个版本的 ironic-dbsync upgrade 时)。 现在,在运行该命令时,对象将更新到最新版本。 有关更多信息,请参阅 story 2004174

错误修复

  • 修复了一个裸机节点在清理过程中超时的问题。 ironic-conductor 试图将节点的置备状态更改为“clean failed”两次,导致节点的 last_error 被错误地设置。 现在不再发生这种情况。 有关更多信息,请参阅 story 2004299

  • 修复了一个问题,即在从裸机主机删除实例后,Neutron 端口会与裸机 MAC 地址关联。 这导致后续部署到同一裸机主机时出现 MAC 地址冲突。 bug 2004428

  • 修复了一个问题,即在从裸机主机删除实例后,一个 flat Neutron 端口会与主机 ID 关联。 这导致无法将相同的端口用于新实例,因为它已经绑定到旧实例。

  • 修复了一个错误,即 idrac 硬件类型在内省期间返回 CPU 插槽的数量,而不是虚拟 CPU 的数量。 有关详细信息,请参阅 bug 2004155

  • 修复了哈希环实现中的一个竞态条件,该条件可能导致任何请求发生内部服务器错误。 有关详细信息,请参阅 story 2003966

  • 正确报告一个错误,当镜像缓存和镜像 HTTP 或 TFTP 位置位于不同的文件系统上时,导致硬链接失败。

  • 修复了 redfish 硬件类型,以便在使用会话身份验证与 BMC 通信时重用 HTTP 会话令牌。 在此修复之前,redfish 硬件类型从未尝试重用 BMC 在先前连接期间发出的会话令牌,这有时会导致某些 BMC 实现的会话池耗尽。

10.1.6

已知问题

  • 使用 **python-dracclient** 1.4.0 或更早版本构建 RAID1 已知无法工作。 升级到 **python-dracclient** 1.5.0 以使用此功能。

错误修复

  • 修复了一个使用 idrac 硬件类型创建 16 个以上驱动器时的 RAID 10 创建失败的问题。 有关详细信息,请参阅 bug 2002771

  • 修复了对 Dell Boot Optimized Storage Solution (BOSS) 上 RAID 1 创建的支持。

10.1.4

弃用说明

  • xclarity 硬件类型以及支持的驱动程序接口已被弃用,并计划在 Stein 开发周期中从 ironic 中删除。 这是由于缺乏运营第三方测试来确保对 Lenovo XClarity 的支持是功能性的。

    xclarity 硬件类型是在 Queens 开发周期的末尾引入的。 在实施第三方 CI 期间,Lenovo 团队遇到了一些意想不到的延迟。 Lenovo 正在继续致力于第三方 CI,并在建立和验证功能性第三方 CI 后,将撤销此弃用。

错误修复

  • 添加了更多 ipmitool 错误消息,这些错误消息将被 ipmitool 接口(例如电源和管理硬件接口)视为可重试的。 具体而言,Node busyTimeoutOut of spaceBMC initialization in progressipmitool 发出的报告将导致 ironic 重试 IPMI 命令。 此更改应提高基于 IPMI 的与 BMC 的通信可靠性。

  • 修复了一个问题,该问题导致集成 Dell Remote Access Controller (iDRAC) management 硬件接口实现,idrac,在 Unified Extensible Firmware Interface (UEFI) 启动模式下启动节点失败。 该接口受 idrac 硬件类型支持。 该问题已针对 Dell EMC PowerEdge 第 13 代和第 14 代服务器解决。 它未针对 PowerEdge 第 12 代及更早服务器解决。 有关更多信息,请参阅 story 1656841

  • inspector inspect 接口的定期任务不再禁用,如果 [inspector]enabled 选项未设置为 True。 该选项的帮助字符串声称它不适用于硬件类型。 无论如何,只有任何启用的经典驱动程序或硬件接口需要它们时,才会运行定期任务。

  • Ironic API 现在对于需要 conductor 的操作,当没有在线的 conductor 时,将返回 503 Service UnavailableBug: 2002600

  • 修复了一个节点撕毁期间的问题,Bare Metal 服务删除的端口可能会被 Compute 服务删除,从而导致 Networking 服务出现未处理的错误。 有关更多详细信息,请参阅 story 2002637

10.1.3

升级说明

  • 使用基于 Ironic Python Agent 版本 3.1.0 及更高版本的部署 ramdisk,使用 direct 部署接口的驱动程序会根据启动选项设置的值执行 netbootlocal 启动全盘镜像。 当您升级部署 ramdisk 中的 Ironic Python Agent 时,请确保正确设置节点的启动选项。 可以使用配置 [deploy]/default_boot_option 或节点 properties['capabilities'] 中的 boot_option 功能设置启动选项。 另外请注意,此功能需要 ramdisk 中的 hexdump 命令。

  • VIF 接口附件的保留行为已更改。

    如果您的 BareMetal 服务依赖于在 Ocata 周期中引入的 VIF 被保留的行为,则必须更新您的工具,以便在部署之前显式地重新添加 VIF 附件。

安全问题

  • 修复了一个问题,即在节点取消置备后,启用的控制台可能会一直运行。 这允许用户在实例消失后查看控制台。 Ironic 现在在取消置备期间停止控制台以阻止这种情况。

  • 在配置文件中指定的 Xclarity 密码现在在日志记录期间被正确屏蔽。

错误修复

  • 修复了一个节点硬件类型无法更改为不支持当前使用的任何硬件接口的硬件类型的问题。 有关详细信息,请参阅 bug 2001832

  • 修复了 direct 部署接口,无论所置备的镜像类型如何,都会调用 boot.prepare_instance。 它仅在要置备的镜像为分区镜像时才调用 boot.prepare_instance。 有关详细信息,请参阅 bug 1713916bug 1750958

  • 修复了从未在任何启用的经典驱动程序中使用的硬件接口收集定期任务的问题。 有关详细信息,请参阅 bug 2001884

  • 在为 ramdisk 启动 neutron 端口时,如果节点没有可用的已启用 PXE 的端口,则会引发错误。 有关更多详细信息,请参阅 bug 2001811

  • 删除在部署节点撕毁时所有 VIF 附件的记录。 这是为了解决相关问题,在某些情况下,由于 Compute 服务仅会在五分钟内尝试删除 VIF,因此在节点卸载期间无法操作地删除 VIF 附件。

    有关更多详细信息,请参阅 bug 1743652

10.1.2

错误修复

  • 修复了 Infiniband 端口验证问题。 Infiniband 端口不需要填充 local_link_connection 字段,因为网络拓扑可以被 Infiniband 子网管理器发现。 有关详细信息,请参阅 bug 1753222

  • 修复了清理失败时的空 last_error 字段。

  • 在节点接管期间,旧 conductor 留下的任何锁都会被新的 conductor 清除。 之前它只发生在处于 DEPLOYING 状态的节点上。

  • 在接管处于 CLEANING 状态的节点时,新的 conductor 会将它们移动到 CLEAN FAIL 并设置维护。

10.1.1

升级说明

  • 扩展了 MySQL/MariaDB 节点表的 instance_info 列,从最多 64KiB 扩展到最多 4GiB(类型从 TEXT 更改为 LONGTEXT)。此升级不会在 PostgreSQL 上执行,因为它的 TEXT 是无限的。

错误修复

  • 修复了 bug 1749755,该 bug 导致超时无法正常工作,因为使用了不受支持的 sqalchemy 过滤器。

  • 传递给节点的 config drive 现在可以在 MySQL/MariaDB 的情况下包含超过 64KiB 的数据。有关详细信息,请参阅 bug 1596421

  • 修复了一个 bug,该 bug 会导致节点卡在 deploying 状态,当 configdrive 的大小超过数据库的限制时。在 MySQL 中,限制约为 64KiB。使用此修复程序,provision 状态将在此情况下变为 deploy failed。有关详细信息,请参阅 bug 1745630

  • 修复了一个 bug,该 bug 会阻止节点在取消救援后启动到用户实例,如果使用实例 netboot。有关详细信息,请参阅 bug 1749433

  • 修复了由于 iPXE 脚本中的内核参数不正确导致的救援超时。有关详细信息,请参阅 bug 1749860

  • 当管理节点的 conductor 在节点清理过程中停止工作时,节点会卡在 CLEANING 状态。现在,在 conductor 启动时,处于 CLEANING 状态的节点将被移动到 CLEANFAIL 状态。

  • fake-hardware 硬件类型添加了缺失的 noop 实现(例如 no-inspect)。这修复了在不启用所有(甚至可选)fake 接口的情况下启用此硬件类型的问题。

  • 修复了一个 bug,该 bug 会导致在清理具有一个或多个 traits 分配的节点时失败。此问题导致清理失败,节点进入 clean failed 状态。有关详细信息,请参阅 bug 1750027

  • 修复了一个罕见的竞争条件,该条件导致端口列表 API 在并行删除一些节点时返回 HTTP 400(错误请求)。有关详细信息,请参阅 bug 1748893

  • 撤销了先前版本中对孤立 VIF 记录的修复,因为它会导致回归。有关详细信息,请参阅 bug 1750785

10.1.0

序言

10.1.0 (Queens) 版本包含许多新功能和错误修复。

请查看“升级说明”部分(针对 9.2.0、10.0.0 和 10.1.0),这些部分描述了从 9.1.x (Pike) 升级到 10.1.0 (Queens) 所需的操作。

自 9.1.x (Pike) 以来,一些主要的变化值得一提

  • 新的 traits API

  • 新的 ansible 部署接口,允许对配置过程进行更大的自定义。

  • 支持救援和取消救援节点。

  • 在使用 flat 网络接口时,支持 路由网络

  • 新的 xclarity 硬件类型,用于管理 Lenovo 服务器硬件。

最后,此版本弃用了经典驱动程序,转而支持硬件类型。请查看 迁移指南,了解在升级前启用哪些硬件类型和接口,以及如何更新节点。如果所有必需的硬件类型和接口在升级前都已启用,ironic-dbsync online_data_migrations 命令将处理迁移。

新特性

  • 在 UEFI 启动模式下,ilo-pxeilo-virtual-media 启动接口现在支持基于固件的从 iSCSI 卷启动。需要 proliantutils 库版本 2.5.0 或更高版本。

  • ilo 硬件类型添加了缺失的 ilo 供应商接口。

  • 在节点资源中添加了一个 traits 字段,Compute 服务将使用该字段通过定性属性定义哪些节点可以匹配 Compute flavor。

    Bare Metal REST API 的版本 1.37 添加了以下新的端点

    • GET /v1/nodes/<node identifier>/traits 列出节点的 traits。

    • PUT /v1/nodes/<node identifier>/traits 设置节点的全部 traits。

    • PUT /v1/nodes/<node identifier>/traits/<trait> 将一个 trait 添加到节点。

    • DELETE /v1/nodes/<node identifier>/traits 从节点删除所有 traits。

    • DELETE /v1/nodes/<node identifier>/traits/<trait> 从节点删除一个 trait。

    节点的 traits 也包含在以下节点查询和列表响应中

    • GET /v1/nodes/<node identifier>

    • GET /v1/nodes/detail

    • GET /v1/nodes?fields=traits

    不能在节点创建时指定 traits,也不能通过节点上的 PATCH 请求更新它们。

  • 添加了对使用 oneview 硬件类型管理的 bare metal 节点上电/关电或重新启动时 timeout 参数的支持。

  • 添加了对救援和取消救援节点的支持

    • 添加了 Bare Metal API 的版本 1.38,其中包括

      • 可以通过 GET /v1/nodes/{node_ident}/states/provision API 救援处于 active provision 状态的节点,方法是将 rescue 指定为 target 值,并指定 rescue_password 值。当节点已被救援时,它将处于 rescue provision 状态。将运行一个救援 ramdisk,配置了指定的 rescue_password,并在 tenant 网络上使用 ssh 侦听。

      • 可以通过 GET /v1/nodes/{node_ident}/states/provision API 将处于 rescue provision 状态的节点取消救援(恢复到 active 状态),方法是将 unrescue 指定为 target 值。

      • 节点的 rescue_interface 字段。在创建或更新节点时可以设置救援接口。

      • 驱动程序资源中的 default_rescue_interfaceenabled_rescue_interfaces 字段。

    • 添加了救援功能的新配置选项

      • 通过 [DEFAULT]/enabled_rescue_interfaces 启用救援接口。可以使用 [DEFAULT]/enabled_rescue_interfaces 指定在创建或更新节点时要使用的默认救援接口。

      • 添加了 [conductor]/check_rescue_state_interval[conductor]/rescue_callback_timeout,以便在救援操作超时时使救援操作失败,对于卡在救援等待状态的节点。

      • 添加了支持使用新的选项 [neutron]/rescuing_network[neutron]/rescuing_network_security_groups 提供 rescuing 网络(UUIR 或名称)及其安全组。需要提供 [neutron]/rescuing_network。或者,可以通过节点的 driver_info['rescuing_network'] 字段提供救援网络。

    • rescue_interface 字段添加到以下与节点相关的通知

      • baremetal.node.create.*,新的 payload 版本 1.3

      • baremetal.node.update.*,新的 payload 版本 1.3

      • baremetal.node.delete.*,新的 payload 版本 1.3

      • baremetal.node.maintenance.*,新的 payload 版本 1.5

      • baremetal.node.console.*,新的 payload 版本 1.5

      • baremetal.node.power_set.*,新的 payload 版本 1.5

      • baremetal.node.power_state_corrected.*,新的 payload 版本 1.5

      • baremetal.node.provision_set.*,新的 payload 版本 1.5

  • 允许在节点的 driver_info['cleaning_network']driver_info['provisioning_network'] 中指定配置和清理网络。如果这些值在配置 bare metal 节点时定义在节点的 driver_info 中,则将使用它们。否则,将像以前一样使用配置选项 cleaning_networkprovisioning_network

  • 为使用 oneview 硬件类型的软关机和软重启启用支持。

  • 添加了新的 xclarity 硬件类型,用于使用以下接口管理 Lenovo 服务器硬件

    • management: xclarity

    • power: xclarity

已知问题

  • 如果您有两个名称仅在 .json 后缀上不同的节点或端口组(例如,testtest.json),您将无法通过 /v1/nodes/<node> 端点(/v1/portgroups/<portgroup> 对于端口组)获取、更新或删除带有后缀的节点。同样,/v1/heartbeat/<node> 端点将无法用于带有后缀的节点。

    要解决此问题,请添加另一个 .json 后缀(例如,对节点 test 使用 /v1/nodes/test,对 test.json 使用 /v1/nodes/test.json.json)。此问题将在未来的 API 版本中得到解决。

  • python-ilorest-librarypython-redfish-library 的一个分支,并以相同的名称导入,因此在使用 oneview 硬件类型时会发生冲突。不能使用 python-redfish-library

升级说明

  • 添加了新的数据迁移 migrate_to_hardware_types,该迁移将在升级时尝试将节点从经典驱动程序迁移到硬件类型。无法迁移的节点将被跳过。这可能是由于以下原因之一造成的

    • 经典驱动程序尚未实现迁移功能,

    • 匹配的硬件类型未启用,

    • 一个或多个匹配的硬件接口未启用。

    在后一种情况下,新的迁移命令行选项 reset_unsupported_interfaces 可用于将可选接口(除 bootdeploymanagementpower 之外的所有接口)重置为其无操作实现(例如 no-inspect),如果未启用匹配的实现。使用方法如下:

    ironic-dbsync online_data_migrations --option migrate_to_hardware_types.reset_unsupported_interfaces=true
    

    可以多次重复此迁移,以迁移在配置更改后跳过的节点。

  • 现在应将 baremetal ML2 机制驱动程序和 L2 代理与 flat 网络接口一起使用。安装后,baremetal 机制驱动程序和代理可确保端口在 Networking 服务中正确绑定。ML2 组件的安装和配置记录在 networking-baremetal 项目文档 中。

    如果没有 ML2 机制驱动程序和 L2 代理,Networking 服务的端口将无法正确绑定。在 Networking 服务中,端口将具有 DOWN 状态,并且 binding_vif_type 字段等于 binding_failed。在引入 baremetal 机制驱动程序之前,flat 网络接口端口一直处于此状态。对于非路由网络,即使 Networking 服务中的端口绑定状态如此,也可以部署和使用裸机节点。

  • 此版本中删除了位于 etc/ironic/policy.json 的默认策略文件,因为运行 ironic-api 服务不需要任何策略文件。

  • 由于 hpOneView 库不支持,因此删除了配置选项 [oneview]max_polling_attempts

弃用说明

  • 经典驱动程序以及 enabled_drivers 配置选项现已弃用,可能在 Rocky 版本中删除。对于每个加载的经典驱动程序,将记录弃用警告。请查看 迁移指南,了解如何更新您的节点。

    注意

    请查看 经典驱动程序未来规范,了解有关此弃用的技术信息。

安全问题

  • 在清理期间将节点上的 driver_infoinstance_info 字段中的敏感信息删除。

错误修复

  • 如果 Image 服务中的镜像不包含任何数据,则在节点的 last_error 字段中以正确的错误消息失败部署。有关详细信息,请参阅 bug 1741223

  • API 现在可以正确处理名称以已知文件扩展名结尾的节点和端口组。有关更多详细信息,请参阅 bug 1643995

  • 修复了由于在 flat 网络接口配置中使用的 host-id 不匹配,导致 Networking 服务拒绝端口绑定的问题。 flat 网络接口不再需要运行在 nova-compute 代理节点上的网络代理(例如 neutron-openvswitch-agent),该节点执行 ironic virt 驱动程序。相反,该接口使用 baremetal 机制驱动程序

  • 修复了在未设置 default_network_interface 时出现的问题,因为 conductor 尝试使用 flat 网络接口,即使它未包含在 conductor 的 enabled_network_interfaces 配置选项中。导致出现 Failed to register hardware types 错误。有关更多信息,请参阅 bug 1744332

  • 如果请求的网络(通过节点的 driver_info 或通过配置选项指定)指定为网络名称,则不再本地缓存用于配置和清理网络的网络 UUID。修复了网络使用相同名称重新创建时的状况。

  • 解决了在裸机节点被取消配置时,Compute 服务可能无法删除 VIF 附件记录的问题。这种情况导致 VIF 记录被孤立,从而阻止了未来的部署,而无需手动干预。有关更多详细信息,请参阅 bug 1743652

其他说明

  • ironic-conductor 期望所有 PowerInterface 的 set_power_state() 和 reboot() 方法都接受 timeout 参数。任何不具备此参数的非树内实现都会导致引发 TypeError 异常。

  • NetworkInterface 添加了新的方法 validate_rescue(),用于验证救援网络。此方法在验证救援接口期间调用。

  • 所有 fake 经典驱动程序现在都实现了假的软电源操作。 fake_soft_power 驱动程序现在与 fake 相同。

  • 经典驱动程序实现现在可以提供匹配的硬件类型和接口,以启用自动迁移到硬件类型。有关如何执行此操作的说明,请参阅 规范

    注意

    此功能仅在经典驱动程序支持被删除(预计在 Rocky 版本中)之前可用。

  • 位于 etc/ironic/ironic.conf.sample 的示例配置文件和位于 etc/ironic/policy.json.sample 的示例策略文件在此版本中已被删除,因为它们现在与文档一起发布。请参阅 示例配置文件示例策略文件

10.0.0

新功能

  • 添加了新的 ansible 部署接口。它主要针对 undercloud 用例,允许对配置过程进行更大的自定义。

    此新的部署接口只能与硬件类型一起使用。它被设置为支持 generic 硬件类型及其所有子类,但必须在 [DEFAULT]enabled_deploy_interfaces 配置文件选项中显式启用,才能实际允许将节点设置为使用它。

    要从 ironic-staging-drivers 项目的 staging-ansible 接口迁移到此 ansible 接口,操作员必须考虑以下差异:

    • 不支持无回调操作。

    • 节点的 driver_info 字段 ansible_deploy_usernameansible_deploy_key_file 已弃用,将在 Rocky 版本中删除。请改用 ansible_usernameansible_key_file 分别。

    • 可以在节点的 driver_info['ansible_playbooks_path'] 字段中定义 playbook 的基本路径。默认值为 ironic 配置文件中的 [ansible]/playbooks_path 选项的值。

    • 可以在 ironic 配置文件中将操作和清理步骤文件的默认 playbook 定义为各种 [ansible]/default_* 选项。

  • 添加了新的配置选项 [DEFAULT]default_resource_class,它指定在节点创建请求中未提供资源类时要使用的资源类。

  • 如果未设置 [glance]swift_account 选项,则默认值现在基于用于访问对象存储的项目 ID 计算。 之前此选项是必需的。 此更改不会影响使用 RadosGW 作为对象存储后端。

  • 如果未设置 [glance]swift_temp_url_key 选项,ironic 现在尝试从用于访问 swift 的项目(通常称为 service)获取密钥。 此更改不会影响使用 RadosGW 作为对象存储后端。

  • 如果未设置 [glance]swift_endpoint_url 选项,ironic 现在尝试从服务目录获取对象存储服务 URL。 如果存在,则会删除 /v1/AUTH_* 后缀。

  • 为 FUJITSU PRIMERGY 裸机节点添加了新的功能(server_modelrom_firmware_versionpci_gpu_devicestrusted_bootirmc_firmware_version)到 iRMC 带外硬件检查,其固件为 iRMC S4 及更高版本。

  • 添加了在以下配置部分中为自动服务发现设置 keystoneauth 设置的功能:[glance][cinder][inspector][swift][neutron]

升级说明

  • 要支持新的带外检查功能,irmc 硬件类型需要版本为 0.6.0 或更高版本的 python-scciclient。 如果使用旧版本,将无法发现新的功能。

  • 滚动升级 期间,当新服务固定到旧版本时,Bare Metal API 版本也将固定到旧版本。 在升级完成后,将无法访问新功能。

  • 现在提供了一个新的 WSGI 应用程序脚本 ironic-api-wsgi。 它由 pbr 自动生成,并提供使用 WSGI 服务器(例如 Nginx 和 uWSGI 或带有 mod_wsgi 的 Apache)提供裸机 API 的能力。

弃用说明

  • 配置选项 [keystone]/region_name 已弃用,将在 Rocky 版本中忽略。 请改用以下配置部分中的每个服务的 region_name 选项:[service_catalog](用于从 keystone 服务目录发现裸机 API 端点)、[glance][neutron][cinder][inspector][swift]

  • 配置选项 [cinder]/url 已弃用,将在 Rocky 版本中忽略。 请改用配置选项 [cinder]/endpoint_override,以便在不需要从 keystone 目录自动发现 cinder API 端点时设置特定的 cinder API 地址。

  • 配置选项 glance_api_servers 来自配置文件中的 [glance] 部分已弃用,将在 Rocky 版本中忽略。 请改用配置选项 [glance]/endpoint_override,以便在不需要从 keystone 目录自动发现 glance API 端点时设置特定的(可能负载均衡的)glance API 地址。 此新选项默认为 None,如果需要,必须显式设置。 此新选项主要适用于没有 keystone 及其服务目录的独立 ironic 部署,通常建议依赖 keystone 服务目录进行服务端点发现。

  • 配置选项 [glance]/glance_api_insecure 已弃用,将在 Rocky 版本中忽略。 请改用配置选项 [glance]/insecure(其默认值为 False)。

  • 配置选项 [glance]/glance_cafile 已弃用,将在 Rocky 版本中忽略。 请改用配置选项 [glance]/cafile(其默认值为 None)。

  • 配置选项 [glance]/auth_strategy 已弃用,将在 Rocky 版本中忽略。 请改用将 [glance]/auth_type 配置选项设置为 none,并提供 glance API 地址作为 [glance]/endpoint_override 配置选项,以在 noauth 模式下设置 glance。

  • 配置选项 [inspector]/service_url 已弃用,将在 Rocky 版本中忽略。 请改用配置选项 [inspector]/endpoint_override,以便在不需要从 keystone 目录自动发现 ironic-inspector API 端点时设置特定的 ironic-inspector API 端点。 此新选项没有默认值 (None),必须显式设置。

  • 依赖于 [DEFAULT]/auth_strategy 配置选项来配置 ironic-inspector 的独立模式已被弃用,并且在 Rocky 版本中将无法使用。相反,将 [inspector]/auth_type 配置选项设置为 none,并提供 ironic-inspector inspector API 地址作为 [inspector]/endpoint_override 配置选项。

  • 配置选项 [neutron]/url 已被弃用,并且将在 Rocky 版本中被忽略。相反,使用 [neutron]/endpoint_override 配置选项来设置特定的 neutron API 地址,当不需要从 keystone 目录自动发现 neutron API 端点时。此选项没有默认值,并且必须显式设置为独立部署的 ironic 和 neutron(当 [neutron]/auth_type 设置为 none 时),因为服务目录在此情况下不可用。否则,通常建议依赖 keystone 服务目录进行服务端点发现。

  • 配置选项 [neutron]/url_timeout 已被弃用,并且将在 Rocky 版本中被忽略。相反,使用 [neutron]/timeout 配置选项。这个新选项没有默认值,并且必须显式设置为 30 以保持以前的默认行为。

  • 配置选项 [neutron]/auth_strategy 已被弃用,并且将在 Rocky 版本中被忽略。相反,将 [neutron]/auth_type 配置选项设置为 none,并提供 neutron API 地址作为 [neutron]/endpoint_override 配置选项。

  • 使用 ironic/api/app.wsgi 脚本已被弃用,并且将在 Rocky 版本中删除。请切换到自动生成的 ironic-api-wsgi 脚本。

错误修复

  • 修复了从 ironic-python-agent 命令传播 HTTP 错误的问题。现在,在从 ramdisk 接收到 HTTP 错误状态时,操作将被中止。

  • 修复了一个问题,在某些部署失败场景下,节点的配置端口没有被删除。这个问题通常会被 nova 掩盖,nova 在实例终止期间会删除所有与实例 UUID 匹配的设备的端口。有关详细信息,请参阅 bug 1732412

  • 修复了一个问题,如果部署过程中发生故障,Bare Metal 服务可能会尝试从已关机的节点收集日志。这会导致在部署失败之前多次尝试收集日志。有关详细信息,请参阅 bug 1732939

  • 修复了一个错误,当在执行对 Swift 的 API 请求时,忽略了 [swift] 部分 ironic 配置文件中的与 SSL 相关的选项。有关更多信息,请参阅 https://launchpad.net/bugs/1736158

  • 不再使用 iscsi 部署接口验证整个磁盘镜像请求的根分区大小,有关详细信息,请参阅 bug 1742451

其他说明

  • 删除了解析 glance API 端点从 glance 镜像完整 REST 路径的支持,因为它无论如何都无法正常工作。现在,镜像服务 API 始终从 keystone 目录或通过 ironic 配置文件中 [glance] 部分中的选项解析。

  • 多个与网络相关的函数/方法的签名已更改,以包含请求上下文作为可选关键字参数。

    这些函数/方法是

    • ironic.common.neutron.get_client

    • ironic.common.neutron.unbind_neutron_port

    • ironic.common.neutron.update_port_address

    • ironic.common.neutron.validate_network

    • ironic.common.neutron.NeutronNetworkInterfaceMixin.get_cleaning_network

    • ironic.common.neutron.NeutronNetworkInterfaceMixin.get_provisioning_network

    • ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts

    • ironic.dhcp.none.NeutronDHCPApi.update_port_dhcp_opts

    如果您在您的非树 ironic 驱动程序或驱动程序接口代码中使用任何上述函数/方法,则应更新代码以将 ironic.common.context.RequestContext 类的实例作为 context 关键字参数传递给这些函数/方法。

  • 代理心跳 API (POST /v1/heartbeat/<node>) 现在可以接收一个新的 agent_version 参数。如果收到,这将存储在节点的 driver_internal_info['agent_version'] 字段中。此信息将由 Bare Metal 服务用于优雅地降级 Bare Metal 服务请求的代理功能的支持,确保我们不会请求旧的 ramdisk 不支持的功能。

  • 对于使用 irmc 硬件类型的节点进行带外检查时,节点将被打开电源。检查完成后,原始电源状态将被恢复。

9.2.0

新特性

  • irmc-virtual-media 启动接口添加了以安全启动模式配置实例的支持。有关详细信息,请参阅 iRMC 驱动程序文档

  • 添加了一种新的硬件类型,idrac,用于 Dell EMC 集成 Dell 远程访问控制器 (iDRAC)。idrac 硬件类型支持基于 PXE 的配置,使用 iDRAC。它支持以下驱动程序接口

    • boot: pxe

    • console: no-console

    • deploy: iscsidirect

    • inspect: idrac, inspector, 和 no-inspect

    • management: idrac

    • network: flat, neutron, 和 noop

    • power: idrac

    • raid: idracno-raid

    • storage: noopcinder

    • vendor: idrac

  • 为了促进从服务目录自动发现服务,服务客户端的配置文件部分可以包含以下配置选项:service_typeservice_namevalid_interfacesregion_name 和其他 keystoneauth 选项。

    这些选项必须唯一地指定在服务目录中注册的服务的一个端点。或者,可以使用 endpoint_override 选项来指定端点。

    请参阅 keystoneauth 库文档,了解可用选项的完整列表、其含义和可能的值。

    默认情况下,ironic 会为 service_type 设置合理的值,这些值基于所需的服务的 服务类型权威机构 中的条目。

    valid_interfaces 选项默认为 ['internal', 'public']

    region_name 选项默认为 None,并且必须显式设置为多区域设置才能成功进行端点发现。

    目前,只有 [service_catalog] 部分支持这些选项。

  • ilo 检查接口添加了以下布尔功能键

    • sriov_enabled

    • has_ssd

    • has_rotational

    • rotational_drive_4800_rpm

    • rotational_drive_5400_rpm

    • rotational_drive_7200_rpm

    • rotational_drive_10000_rpm

    • rotational_drive_15000_rpm

    • logical_raid_level_0

    • logical_raid_level_1

    • logical_raid_level_2

    • logical_raid_level_10

    • logical_raid_level_5

    • logical_raid_level_6

    • logical_raid_level_50

    • logical_raid_level_60

    • cpu_vt

    • hardware_supports_raid

    • has_nvme_ssd

    • nvdimm_n

    • logical_nvdimm_n

    • persistent_memory

  • 从 Bare Metal API 版本 1.35 开始,可以在重建节点时提供 configdrive。

  • 为 SNMP UDP 传输添加了 SNMP 请求超时和重试设置。某些 SNMP 设备比其他设备需要更长的时间才能响应。新的 Ironic 配置设置 [snmp]/udp_transport_retries[snmp]/udp_transport_timeout 允许更改 SNMP 驱动程序的重试次数和超时值。

  • iLO 驱动程序现在支持基于 Smart Update Manager (SUM) 的固件更新,作为带内手动清理步骤 update_firmware_sum,用于所有硬件组件。

升级说明

  • conductors 数据库表的 version 列作为数据迁移的一部分被填充(通过命令 ironic-dbsync online_data_migrations)。

  • ironic-dbsync 命令将检查数据库对象(记录)的版本,以确保它们与新的 ironic 版本兼容,然后再执行 upgradeonline_data_migrations

  • 更新了 iLO 驱动程序所需的 proliantutils 版本为 2.4.0。此版本的库具有许多新功能

    • 添加了对使用 Redfish 协议的 Gen10 服务器的支持。

    • 提供了使用 HPE SSA CLI 通过 Proliant 硬件管理器在 IPA 中进行一次性磁盘擦除的支持。

    • local_gb 在检查期间无法发现磁盘时默认为 0(零)。

  • 已弃用的选项 glance_hostglance_portglance_protocol 已从 ironic 配置文件中 [glance] 部分删除,并将被忽略。请使用 [glance]/glance_api_servers 选项来提供镜像服务端点的特定地址,当不需要从 keystone 服务目录发现它时。

弃用说明

  • 配置选项 [conductor]api_url 已被弃用,并且将在 Rocky 版本中删除。相反,使用 [service_catalog]endpoint_override 配置选项来设置 Bare Metal API 端点,如果不需要从服务目录自动发现它。

    这个新选项默认为 None,如果需要,必须显式设置。

错误修复

  • 修复了运行 ironic-dbsync online_data_migrations 时的问题。由于竞争条件,对象的新 version 列的值可能被错误地从较新的对象版本更改为较旧的对象版本。现在不再出现这种情况。

  • 修复了在使用 boot from volume 和 pxe 启动接口时的问题 (bug 1724275)。现在使用正确的 iSCSI 发起程序。

  • 修复了一个问题,当 ironic-conductor 服务无法由于数据库连接意外失败而报告其心跳时,该服务被认为已死亡。这些异常的完整回溯现在被记录下来,如果数据库连接在合理的时间内恢复,该服务仍然可用。有关详细信息,请参阅 bug 1696296

  • 修复了一个问题,导致使用 Dell EMC 集成 Dell 远程访问控制器 (iDRAC) classic 驱动程序pxe_dracpxe_drac_inspector 的节点在双 manage/provide 周期后被置于 clean failed 状态,而不是 available 状态。有关更多信息,请参阅 bug 1676387

  • 修复了 iscsi 部署接口的 boot from volume 中的一个问题。由于没有为 MAC 地址创建 pxelinux.cfg 文件,因此使用 iscsi 部署接口的节点无法从卷启动。现在创建了 pxelinux.cfg 文件。有关详细信息,请参阅 bug 1714436

  • 修复了使用 iscsi 部署接口的节点从卷启动时的一个问题。如果节点 instance_info 字段中未提供 image_source,则会尝试验证不存在的 image_source,导致失败。现在无需指定 image_source,并且不再尝试验证。有关详细信息,请参阅 bug 1714147

  • 修复了 一个问题,即对于绑定端口(例如,在使用 ‘contrail’ neutron 后端时)更新 MAC 地址失败。

  • idrac 硬件类型的受支持的供应商接口添加了缺失的 no-vendor 实现。

  • 修复了 一个 bug,该 bug 影响 GET /nodes?limit=1&instance_uuid=<uuid> 请求的响应。如果匹配到一个节点,即使没有更多节点匹配,也会返回一个 next 链接。现在不再返回该链接。

  • 修复了端口号 0(零)被认为是无效的问题(bug 1729628)。零是一个有效的端口号,现在已被识别为有效端口号。

  • 修复了使用 ipmitool 电源接口重新启动节点可能导致部署失败的问题。现在它不再尝试关闭已经关闭的节点,因为某些 BMC 在这些情况下会报错。有关详细信息,请参阅 bug 1718794

  • 修复了在重建节点时,会再次使用旧的 configdrive(用于部署节点)的问题。从 Bare Metal API 版本 1.35 开始,在重建节点时可以指定不同的 configdrive。

  • 使用标准的 DHCP 选项代码,而不是 dnsmasq 特定的选项名称,因为不同的后端使用不同的选项名称。这修复了与 neutron 的 DHCP 后端的 兼容性问题

其他说明

  • ironic-dbsync 命令将检查数据库对象(记录)的版本,以确保它们与新的 ironic 版本兼容,然后再执行 upgradeonline_data_migrations

  • 构建 ironic python 包时,现在包含默认的 rootwrap 配置文件。这些文件包含在 ironic 安装目录根目录下的 etc/ironic 路径中。