Ussuri 系列 (14.0.0 - 15.0.x) 发行说明

15.0.2-26

已知问题

  • 为 Ussuri 和 Train 版本的 OpenStack 提供支持的 TinyCore Linux 10.x,由于时间推移导致证书验证问题,无法构建。我们嵌入了一个修复程序,仅供 Ironic 的 CI 使用。作为一般提醒,TinyIPA 不应用于生产环境部署。

升级说明

  • 从早期版本升级并使用 PXE 的用户应显式设置 [pxe]ipxe_bootfile_name[pxe]uefi_ipxe_bootfile_name,以及可能需要设置 [pxe]ipxe_bootfile_name_by_arch 设置,以及一个 iPXE 特定的 [pxe]ipxe_config_template 覆盖,如果需要的话。

    [pxe]ipxe_config_template 设置为空值将导致使用 [pxe]pxe_config_template。默认值指向提供的标准 iPXE 模板,因此只有高度定制的用户才可能需要调整此设置。

  • 在 Ussuri 版本中,要在 HTTPS 连接上使用证书文件,iRMC 驱动程序需要 python-scciclient 版本为 >=0.8.2,<0.9.0 或 >=0.9.5,<0.10.0,并且打包版本 >=16.5

  • 如果使用 redfish-virtual-media,用户可能需要检查他们的 /httpboot/redfish 文件夹权限。此前 conductor 会以错误的权限创建该文件夹。

  • redfish-virtual-media 启动接口添加了一个权限设置,允许在使用驱动程序时显式设置文件权限。新的 [redfish]file_permission 设置 默认值是 ``0u644,或者如果使用 chmod 在命令行手动更改,则为 644。用户可能需要调整此设置,如果他们使用特定的 umask 来规避权限设置缺陷。

安全问题

  • 修改了 irmc 硬件类型,以包含控制 HTTPS 证书验证强制执行的能力。默认情况下,这是强制执行的。python-scciclient 版本必须为 >=0.8.2,<0.9.0 或 >=0.9.5,<0.10.0,否则将不会进行证书验证。

错误修复

  • 修复了 Ironic 与 Cinder 的集成问题,这是由于最近与安全相关的修复导致的,详情请参见 bug 2004555。Ironic 中跟踪此修复的工作已记录在 bug 2019892 中。Ironic 现在向 Cinder 发送服务令牌,这允许绕过作为原始 CVE-2023-2088 修复的一部分添加的访问限制。Ironic 本身不受影响,但由此添加的限制确实影响了 Ironic 的使用。这是因为 Ironic 卷附件不在共享“计算节点”上,而是映射到物理机器,并且 Ironic 在初始附件之后处理附件生命周期。

  • 解决了无法为基于 iPXEPXE 的启动操作显式设置不同引导加载程序的缺陷,通过各自的 ipxepxe 启动接口实现。

  • 修复了 idrac-wsman 管理接口 set_boot_device 方法,该方法在存在现有作业时会使部署失败,并显示错误“无法更改电源状态为‘’power on‘’通过‘’重新启动‘’。错误:DRAC 操作失败。原因:找到未完成的配置作业:<现有作业列表>。在重试之前,请确保它们已完成。”。现在可以存在非 BIOS 作业在部署期间。对于存在 BIOS 作业的情况,仍然会失败。在这种情况下,应考虑迁移到 idrac-redfish,该接口在设置启动设备时没有此限制。

  • 修复了使用 idrac-wsman 管理接口关机时,正在进行的清除作业队列清理步骤的问题。在此修复之前,清理步骤将在关机节点时失败。

  • 从 ironic.conf [ipmi] command_retry_timeoutmin_command_interval 计算 ipmitool -N-R 参数时,现在会考虑到 ipmitool 在每次重试事件中添加的 1 秒间隔增量。

    故障路径 ipmitool 运行时间现在将略短于 command_retry_timeout,而不是更长。

  • 添加了 driver_info/irmc_verify_ca 选项以指定证书文件。driver_info/irmc_verify_ca 的默认值为 True。

  • 修复了 Redfish BMC 的连接缓存问题,以前的 AccessErrors 并未使缓存的连接从被重新使用中排除。Ironic 现在将显式打开一个新连接,而不是使用缓存中的先前连接。在正常情况下,sushy redfish 库会检测并刷新会话,但是存在一种情况,它可能无法检测到故障并包含缓存的会话凭据数据,最终阻止通过 Redfish 访问 BMC,直到缓存条目过期或 ironic-conductor 服务重新启动。有关更多信息,请参阅 story 2009719

  • 修复了 redfish-virtual-media 和相关驱动程序,使其使用显式文件权限,而不是依赖于 ironic-conductor umask,后者可能不正确。可以使用 [redfish]file_permission 设置进行调整。

  • 修复了一个问题,即 redfish-virtual-media 驱动程序的默认文件夹权限,该文件夹的 /httpboot/redfish 文件夹权限被创建为不正确的权限。

15.0.2

已知问题

  • 某些 ipmitool 构建,尤其是在运行 Red Hat Enterprise Linux 8.2 的机器上,已经更改了提供的默认密码套件,这可能导致 ipmitool 无法完全协商与 BMC 的连接。遇到这种情况的用户应使用 driver_info 字段中的 ipmi_cipher_suite 参数来覆盖并直接断言所需的密码。由于尝试二级自动协商以及已知 BMC 供应商行为的潜在安全隐患,必须由用户识别并显式设置,因为尝试导航此类情况的逻辑可能会产生不良结果。

  • 当使用 redfish-virtual-media 时,快速通道模式将无法按预期工作,节点将在操作之间重新启动。

升级说明

  • 已添加对 IPMI BMC 硬件供应商的自动检测,以适当处理 IPMI BMC 的变化。Ironic 现在将查询此信息并保存该值(如果尚未设置),以避免为每次操作都进行查询。升级的用户应该期望对于硬件类型为 ipmi 的节点,第一次电源状态同步时间会延长。

错误修复

  • 修复了在使用 Ussuri(及更早版本)ramdisk 时,在 prepare_image 之后另一个 IPA 命令运行时发生的部署失败。

  • 修复了 ansible 部署接口中的一个问题,该问题导致自动 root 设备选择意外地选择了系统 CD-ROM 设备,这在使用虚拟介质启动时很可能发生。 ansible 部署接口现在忽略所有 Ramdisks、Loopbacks、CD-ROM 和软盘设备。

  • 修复了 Python 3 转换期间中断的 [deploy]configdrive_use_object_store 选项。

  • 修复了 grub2 配置文件的问题。较高版本的 grub2(例如 2.05 或 2.06-rc1)使用 grub.cfg-01-MAC,而较低版本的 grub2(例如 2.04)使用 MAC.conf,因此我们生成两个路径以与两者兼容。

  • 修复了一个代理令牌处理问题,即代理未升级,导致在不需要令牌时出现 AgentAPIError。Conductor 现在将在不发送代理令牌的情况下重试。

  • 修复了在请求使用 UEFI 引导模式并持久引导到 DISK 时出现的问题,某些版本的 ipmitool 无法同时处理多个选项。虽然上游 ipmitool 开发解决了一些此逻辑,但新版本尚未发布,并且供应商维护了 ipmitool 工具的下游分支。考虑到供应商特定的 选择器差异 以及当前上游 ipmitool 社区的立场,仅在 Ironic 中处理此逻辑才有意义。部分原因是,如果已经设置,选择器值将不会更新。现在 ironic 始终传输 UEFI 的选择器值。

  • 修复了支持 UEFI 的 Supermicro BMC 与硬件类型为 ipmi 的问题,以便将适当的启动设备选择器值发送到远程 BMC,以指示从本地存储启动。这适用于持久和一次性启动应用程序。有关更多信息,请参阅 story 2008241

  • 修复了硬件类型为 ipmi 的问题,在请求使用 UEFI 启动模式和“一次性”启动到 PXE 时出现的问题。由于 Ironic 现在专门传输原始命令,因此该设置应该被正确应用,而此前 PXE 启动操作可能以前在 Legacy BIOS 模式下发生。

  • 修复了哈希环代码中的一个潜在竞争,该竞争可能导致哈希环在初始加载后永远不会更新。

  • 修复了虚拟磁盘创建问题,通过将 PERC H740P 控制器模式从 Enhanced HBA 更改为 RAID,在 delete_configuration 清理步骤中。PERC H740P 控制器支持 RAID 模式和 Enhanced HBA 模式。当控制器处于 Enhanced HBA 模式时,它会从非 RAID 物理磁盘创建单个磁盘 RAID0 虚拟磁盘。因此,由于没有可用的物理磁盘,对受支持的 RAID 的 VD 创建请求将失败。此补丁将 PERC H740P RAID 控制器转换为 RAID 模式,如果发现启用了增强 HBA 模式。有关更多详细信息,请参阅 bug 2007711

  • 修复了弃用的 idrac 硬件接口实现 __init__ 方法,以在发出关于其弃用的警告日志消息之前调用其基类 __init__ 方法。有关更多信息,请参阅 story 2008197

  • 允许通过新的 driver_info 参数 ipmi_cipher_suite 配置 IPMI 密码套件,以便用户能够规避 ipmitool 行为更改,围绕支持的密码。

  • 当配置为使用 json-rpc 时,ironic-conductor 的 [DEFAULT].host 配置选项现在可以设置为 IPv6 地址。此前它只能是 IPv4 地址或 DNS 名称。

  • 修复了端口组的 MAC 地址未设置且已附加到实例时的问题,着陆的绑定端口无法获得 IP 地址,因为租户端口和配置驱动程序中最初分配的 MAC 地址之间存在不一致。

  • 修复了在手动关机或重新启动时擦除代理密钥令牌的问题。还确保删除代理 URL,因为它可能会发生变化。

  • 修复了清理和托管检查不遵守 default_boot_mode 配置选项的问题。

  • 修复了清理和托管检查不遵循标准引导模式处理逻辑的问题,特别是,如果驱动程序允许,则不尝试断言请求的引导模式。

  • 添加了对缺少 BootSourceOverrideMode 标志的 Redfish BMC 的处理,这样如果 BMC 不支持此字段,部署就不会再出现致命错误。这在仅具有 ComputerSystem 资源 boot 的部分实现的 BMC 上很常见,也可能在某些收到 Redfish 部分支持更新的旧代 BMC 上观察到。

  • 故事 2008252 的修复在更改启动设备后同步了启动模式,因为 Supermicro 节点如果在启动设备集中未包含,则会重置启动模式。但是,这可能会导致 Dell 节点在更改模式 uefi->bios 或 bios->uefi 时出现问题,有关详细信息,请参阅 故事 2008712。将启动模式的同步限制为 Supermicro。

  • 当 Ironic 通过 Redfish 配置 BootSourceOverrideTarget 设置时,在 Supermicro BMC 上,它必须始终配置 BootSourceOverrideEnabled,否则它将恢复到默认值(一次),请参阅 story 2008547 以获取详细信息。这与当前为其他 BMC 实现的不同,在其他 BMC 中,如果当前设置匹配,则不会配置 BootSourceOverrideEnabled(请参阅 story 2007355)。

    这要求 node.properties[‘vendor’] 为 ‘supermicro’,Ironic 将从 Redfish 系统响应设置,或者可以手动设置。

  • 通过 Redfish 更改启动设备后,检查报告的启动模式是否与配置的模式匹配,如果不匹配,则将其设置为配置的值。某些 BMC 在通过 Redfish 设置设备时会更改启动模式,请参阅 story 2008252 以获取详细信息。

  • 引入任务管理器中端口、端口组、卷连接和卷目标的延迟加载,以解决性能问题。对于创建任务管理器对象但不需要上述数据(例如电源同步)的周期性任务,此更改应将数据库交互次数减少约三分之二,从而加快整体执行速度。

  • 在通过 API 重新启动节点时,会删除过时的代理令牌。这可以防止在快速通道操作之间重新启动的节点出现查找失败。

  • 修复了使用 idrac-wsman 管理接口关机时,正在进行的清除作业队列清理步骤的问题。在此修复之前,清理步骤将在关机节点时失败。

  • 修复了使用 redfish-virtual-media 的快速通道模式中的超时问题,在连续运行操作后(例如,在检查后清理)。

其他说明

  • ipmi 硬件类型添加了一个新的 detect_vendor 管理接口方法。该方法被推广为更高级别的接口,因为对硬件供应商有逻辑意识的根本需求对于略有不同的行为需要供应商无关的驱动程序是必要的。

15.0.1

新特性

  • 添加了一个新的 [ipmi]use_ipmitool_retries 选项。如果设置为 True 并且 ipmitool 支持时序,则重试次数和命令间隔将传递给 ipmitool,以便 ipmitool 执行重试。如果设置为 False,ironic 将执行重试。默认值为 True

已知问题

  • 某些 BMC 不支持较新版本的 ipmitool 使用的 Channel Cipher Suites 命令。这些版本的 ipmitool 将为每次 ipmitool 重试重新发送此命令,导致响应时间过长。将 [ipmi]use_ipmitool_retries 设置为 false 将避免这种情况,通过在 ironic 级别实现重试。

  • 已知某些启用了 redfish 的硬件不支持用于部署实例的 Bare Metal 服务使用的持久引导设备设置。 redfish 硬件类型尝试解决此问题,但通过带内重新启动此类实例可能会导致其启动不正确。应在节点的引导固件中配置可预测的引导顺序以避免问题,并且至少应启用元数据清理。有关技术详细信息,请参阅 此邮件列表线程

错误修复

  • 修复了一个罕见的问题,即代理在部署后成功关机节点,但 ironic 从未了解此事并执行了另一个重新启动。

  • 修复了快速通道模式中的部署,通过在启动和完成部署和清理时保持所需的内部字段(agent_urlagent_secret_token)不变。

  • 修复了 idrac-wsman 的 RAID apply_configuration 部署步骤,其中部署因 TypeError 而失败。请参阅 story 2007963

  • 清理在 conductor 重启时卡在 deleting 状态的节点。

  • 修复了部署模板中的无效带内部署步骤导致部署挂起的问题。

  • 允许删除损坏的驱动程序节点,除非它们需要停止串行控制台。

  • 修复了先前挂起的带有 direct 部署接口的快速通道部署。

  • 修复了“快速通道”中 ironic 在清理步骤退出时删除 agent token 的错误。但是,如果我们处于快速通道模式,我们可以保留令牌并继续操作,因为在快速通道操作期间不会关闭电源。

  • 修复了 json_rpc 客户端连接始终使用 HTTP,即使 use_ssl 设置为 True。

  • 修复了使用 redfishidrac-redfish 管理接口实现时,硬件不支持持久引导设备设置的解决方法。当检测到这种情况时,ironic 将回退到一次性引导设备设置,并在每次重新启动时恢复它。

    有关更多信息,请参阅 story 2007733

  • 修复了由托管检查先行于快速通道部署引起的问题,通过将 ironic API URL 提供给 ramdisk,以便它可以进行心跳。

  • 当 Ironic 执行 IPMI 重试时,应使用配置的 min_command_interval,而不是默认值 1,后者对于某些 BMC 来说可能太短。

  • 修复了 ilo5idrac 硬件类型无法使用软件 RAID 的 agent RAID 兼容性问题。

  • 不再尝试将 local_gb 设置为 MAX,在构建使用 MAX 大小作为根磁盘的 RAID 时。

  • 为了提供对某些硬件上不正确的引导顺序问题的解决方法,redfish 硬件类型现在支持 noop 管理接口,类似于 IPMI 和 SNMP。

  • 现在通过关机请求后接开机请求来实现使用 redfish 电源接口重新启动节点,以避免在节点在重新启动请求后保持上电时返回成功。

  • 提供了对硬件不支持持久引导设备设置的解决方法,使用 redfish 硬件类型。当检测到这种情况时,ironic 将回退到一次性引导设备设置,并在每次重新启动时恢复它。

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

  • 在救援和取消救援操作时删除过时的代理令牌。此前会导致后续救援操作失败。

  • 如果图像的磁盘格式在 instance_info 中提供,则如果设置为 raw 并且启用了原始图像流式传输,则跳过内存检查。这允许流式传输作为 URL 提供的原始图像,而不是通过 Glance。

其他说明

  • 现在在清理期间收集 ramdisk 日志,就像在部署期间一样。

15.0.0

序言

Ironic 开发人员自豪地宣布发布 Ironic 15.0!此版本包含许多长期以来被运营商和 Ironic 用户寻求的更改,包括对软件 RAID 系统支持 UEFI 引导、改进的 Ironic/Ironic Python Agent 安全性、多租户结构、硬件退役机制、有状态 DHCPv6 以及众多修复。我们真诚地希望您喜欢!

新功能

  • 添加了用于指示器管理的 REST API 端点。三个新的端点,用于列出、读取和设置指示器,位于 /v1/nodes/<node_ident>/management/indicators 位置。

  • 添加了“代理令牌”的支持,它作为一种保护通常未经过身份验证的 API 端点的机制,这些端点用于裸机配置的机制。此功能是可选的,但是运营商可以通过将 [DEFAULT]require_agent_token 设置更改为 True 来要求此功能。

  • 添加了 is_allocation_owner 策略规则,该规则可以应用于分配获取/更新/删除规则。还添加了 baremetal:allocation:listbaremetal:allocation:list_all 规则,用于列出拥有的分配和所有分配。默认规则不受影响,因此默认行为不会更改。

  • 新增了一个配置选项 [console]port_range,用于指定 IPMI 串口可以使用的端口范围。默认值为 None,为了向后兼容。如果节点驱动程序信息中未指定 ipmi_terminal_port,则将从配置的端口范围内分配一个空闲端口供后续使用。

  • 对于在 DHCPv6 状态化网络上进行的裸机操作,现在可以为用于配置、清理、救援或检查而创建的 neutron 端口分配多个 IPv6 地址。新的参数 [neutron]/dhcpv6_stateful_address_count 控制要分配的地址数量(默认:4)。

  • 添加了与 neutron 集成的功能,以支持双栈(IPv4 和 IPv6 环境配置)。这使得 ironic 能够查找附加的端口并根据端口上分配的协议版本提供 DHCP 选项。

  • idrac 硬件类型实现了 BIOS 接口。主要实现了 factory_resetapply_configuration 清理和部署步骤,作为异步操作。有关更多详细信息,请参阅 story 2007400

  • 现在 ilo-virtual-media 启动接口支持管理带内检查的启动。这使得可以使用虚拟媒体代替 PXE 进行带内检查。

  • 添加了在独立部署中,如果填充了 instance_info\image_os_hash_algoinstance_info\image_os_hash_value 字段,则 instance_info\image_checksum 值的可选功能。

  • 使 redfish 硬件类型的管理接口不会更改当前的启动频率,如果当前设置与所需设置相同。目标是在尽可能的情况下避免触碰潜在的故障 BMC 选项。

  • 添加了一个新的 [ipmi]debug 选项,允许用户显式打开 IPMI 命令调试,而不是依赖于系统调试设置 [DEFAULT]debug。希望继续记录此输出的用户应在 ironic.conf 中将 [ipmi]debug 设置为 True

  • 更改 neutron 端口更新以使用 Ironic 的 neutron 配置文件中的身份验证值,从而防止在非管理员用户管理 Ironic 节点时可能出现的问题。已向端口更新函数添加一个检查,以验证用户是否实际上可以看到该端口。这为所有端口更新添加了一个额外的 Neutron 请求调用。

  • 在节点中添加了一个 lessee 字段。该字段暴露给策略,因此,如果策略文件允许,则 lessee 将有权访问指定的节点 API。

  • 添加了 baremetal:node:update_extrabaremetal:node:instance_info 策略,以允许对节点更新进行更细粒度的策略控制。为了使用独立 Ironic 来配置节点,用户必须能够更新 instance_info(以及使用 metalsmith 时的 extra),并且 lessee 不应能够更新所有节点属性。

  • redfish 硬件类型的 redfish_system_id 属性现已变为可选。如果在 driver_info 中未指定,并且目标 BMC 管理单个 ComputerSystem,ironic 将假定该系统。否则,ironic 将失败,需要显式指定 redfish_system_iddriver_info 中。

  • 为了允许在没有实际交换机管理的情况下,将 neutron 网络接口与 flat 提供程序网络结合使用。端口上的 local_link_connection 字段已扩展为支持 network_type 字段。

  • 现在可以在逻辑磁盘配置的 physical_disks 参数中,以设备提示的形式(与根设备相同)指定软件 RAID 的目标设备。这需要来自 Ussuri 发布系列的 ironic-python-agent。

  • 添加了一个基于 redfish_address 路径的 sushy 上下文的 root_prefix 参数。默认为 sushy root_prefix 默认值(/redfish/v1/)。如果 Redfish API 不位于默认 /redfish/v1/ 端点,则需要此设置。

  • 添加了对 UEFI 启动模式的启动软件 RAID 的支持。

  • 发送到 ironic-python-agentrescue 操作的密码现在已进行哈希处理。此功能需要 ironic-python-agent 版本 6.0.0

    设置 [conductor]rescue_password_hash_algorithm 的默认值为 sha256,并且可以设置为 sha256sha512

已知问题

  • 目前,ansible 部署接口不支持使用 agent token

升级说明

  • 现在,Ansible 的最低支持版本为 2.7。不再维护以前的 Ansible 版本的所有支持。

  • 配置选项 [deploy]/default_boot_option 的默认值已从 netboot 更改为 local

  • 由于默认启动选项已更改,因此没有 grub2 的分区镜像将无法部署,除非将节点的 boot_option 显式设置为 netboot

  • Redfish API 客户端库 sushy 的必需最低版本现在是版本 3.2.0

  • 删除了与不使用部署步骤的部署接口的兼容性。

  • 根据 neutron 集成,可能不再需要 [pxe]ip_version 设置。

  • 使用 [DEFAULT]my_ip 设置 IPv6 地址的运营商,可能希望迁移到 [DEFAULT]my_ipv6 设置。设置这两个值将根据协议版本启用适当的 IP 地址,用于 PXE/iPXE。

  • 如果将 [DEFAULT]force_raw_images 设置为 true,则将不会使用 MD5 来重新计算图像校验和。这需要 ironic-python-agent ramdisk 至少为版本 3.4.0。

  • 调试日志控制已移动到 [ipmi]debug 配置设置,而不是“conductor” [DEFAULT]debug 设置,因为现有的 ipmitool 输出对于用户来说可能非常具有误导性。希望继续在日志中记录 ipmitool 详细输出的操作员应显式将 [ipmi]debug 命令设置为 True。

  • 依赖项 oslo.i18n 现在是可选的。如果您希望 ironic 中的消息被翻译,则需要显式安装它。

  • guru meditation 报告功能现在是可选的,并且 oslo.reports 包不再是要求的一部分。如果您需要此功能,请手动安装它。

  • 配置选项 [pxe]ipxe_enabled 已被弃用,现在已被删除,因此从 pxe 接口删除的 iPXE 支持。要使用 iPXE,应将引导接口迁移到 ipxe 或其他能够从 iPXE 引导的引导接口。

弃用说明

  • 某些部署接口使用 continue_node_deploy RPC 调用,以便在准备离开 deploy 核心部署步骤时通知 conductor。目前 ironic 允许节点处于 wait call-backdeploying 状态,然后进入此调用。这已被弃用,并且在下一个版本中,节点必须处于 wait call-back (DEPLOYWAIT) 状态才能进行此调用。

安全问题

  • 强制使用原始图像的图像校验和重新计算,现在使用 SHA3-256(如果选择了 MD5)。现在这是无条件的。

  • 希望强制对所有救援密码进行哈希处理的运营商应使用 [conductor]require_rescue_password_hashed 设置并将其设置为 True

    此设置将在 Victoria 开发周期中更改为默认值 True

  • 用于 IPA 验证的密钥令牌将使用 secrets 模块生成,以符合 FIPS 140-2 标准。

错误修复

  • 修复了 agent 客户端代码中的一个 issue,其中对 agent 命令状态的检查没有逻辑来防止间歇性或瞬态连接故障导致整个操作失败。

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

  • 修复了使用 idrac-wsman RAID 接口的 RAID 配置,节点将永远停留在“clean wait”配置状态。请参阅 story 2007567

  • 修复了一个问题,如果 conductor 的主机名大小写在重新启动 conductor 服务之前发生更改,节点可能会被锁定无法更改。

  • 修复了 ironic-python-agent 客户端代码中的问题,即与 agent REST API 交互时可能无法捕获命令异常。客户端代码将返回结果错误消息和一个静态错误代码。现在,我们会在错误中查找,以检测错误是否可能是兼容性错误,从而引发适当的异常以进行回退逻辑。

  • 通过将节点引导模式更改与其他引导参数更改(例如引导设备、引导频率)分离,从而提高了与 Redfish BMC 的互操作性。

  • 修复了部署步骤失败时节点 last_error 字段报告模糊的 issue,通过提供失败步骤以及异常错误消息。

  • 通过支持分配多个 IPv6 地址,解决了在 DHCPv6 状态化网络上网络引导时出现的“没有可用地址”问题。请参阅 bug: 1861032

  • 修复了引导程序安装过程中的 agent 命令问题,该问题可能表现为在重负载 IO 条件下连接超时。现在,安装命令具有内部超时,该超时是 conductor 范围内的 [agent]command_timeout 的两倍。有关更多信息,请参阅 bug 2007483

  • 使用 SHA256 进行文件内容比较,而不是 MD5。这提高了 FIPS 兼容性。

  • 修复了 idrac 硬件类型中的一个错误,即在 RAID 控制器上创建一个或多个虚拟磁盘时,该控制器支持直通模式(PERC H730P),清理步骤将永远完成。请参阅 bug 2007285 以获取更多详细信息。

  • 某些 RAID 控制器(PERC H730P)要求将物理磁盘从非 RAID(JBOD)模式切换到 RAID 模式,才能将其包含在虚拟磁盘中。当发生此转换时,由于一些空间分配给 RAID 模式管理,物理磁盘上的可用空闲空间会减少。如果用户请求一个虚拟磁盘(例如 RAID 1),其大小接近物理磁盘在 JBOD 模式下的最大大小,那么在物理磁盘从 JBOD 转换为 RAID 模式后,由于 RAID 模式管理使用的空间不足,虚拟磁盘的创建将失败。此补丁通过在物理磁盘转换完成后重新计算 RAID 卷大小并知道已转换驱动器上的空闲空间来解决此问题。请注意,这可能会导致虚拟磁盘比请求的大小略小,但仍然是驱动器可以支持的最大大小。请参阅 bug 2007359 以获取更多详细信息

  • 修复了以前由于空的 log_dir 且无法配置此配置选项而无法工作的通过 Guru Meditation Reports 的状态报告。

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

  • 如果节点处于部署或清理过程中,并且其 conductor 崩溃,ironic 将该节点移动到失败状态。但是,如果这些节点也处于维护状态,则不会这样做。此问题已得到修复。请参阅 story 2007098 以获取更多详细信息。

  • 现在 HUAWEI ironic 3rd party CI 已经恢复,ibmc 硬件类型驱动程序受支持。

  • 修复了一个问题,如果 conductor 的主机名大小写在重新启动 conductor 服务之前发生更改,节点可能会被锁定无法更改。清理了当 conductor 停止时保留的保留。

  • 重命名了具有误导性的函数 images.create_isolinux_image_for_uefiimages.create_esp_image_for_uefi。新名称反映了幕后发生的事情。

其他说明

  • 由于某些 Redfish 接口可能会缓存电源状态,因此可能需要更长的时间才能在更改请求后更新,因此 [conductor]power_state_change_timeout 的默认值已延长至 60 秒,从 30 秒。有关更多信息,请参阅 此处

  • 名为“ironic-lib.filters”的 rootwrap 过滤器文件不再是 Ironic 的一部分。该文件现在可从 ironic-lib 模块获取,而 ironic-lib 模块已经是安装要求。