2023.1 系列 (9.2.0 - 9.4.x) 发行说明

9.4.3

错误修复

  • 修复了一个问题,即操作系统挂载的配置驱动器卷可能保持挂载状态并导致锁定,这可能会与 rebuild 等操作冲突。 代理现在始终确保 Glean 和 Cloud-init 使用的文件夹未挂载。

  • 修复了 bug 2066308,即 Ironic Python Agent 会在硬件管理器插件上多次调用 evaluate_hardware_support。 扫描硬件和磁盘非常耗时,并导致性能不佳的节点超时。

9.4.2

升级说明

  • 实现自定义 HardwareManagers 的部署者必须审核他们的代码,查找 qemu-img 和相关方法的非安全用法。

安全问题

  • Ironic-Python-Agent 现在会检查提供的任何镜像格式值与镜像文件的检测格式是否匹配,如果值不匹配,将阻止部署。

  • 之前配置错误的镜像,尽管处于另一种格式,但在某些非默认配置中,如果需要,可能被错误地转换。 Ironic-Python-Agent 现在绝不会对元数据指示为原始格式的镜像执行任何转换。

  • Ironic-Python-Agent 始终 在运行基于 qemu 的工具处理镜像之前,会检查任何非原始用户镜像内容以确保安全。 这用于识别镜像的格式并验证镜像的整体安全性。 任何使用未知或不安全功能的镜像都会被明确拒绝。 可以在 IPA 和 Ironic 中通过将 [conductor]disable_deep_image_inspection 设置为 True 来禁用此功能,以用于 Ironic 部署。 镜像检查是缓解 bug 2071740 中跟踪的 CVE-2024-44082 的主要方法。 操作员可能希望在升级他们的 Ironic-Python-Agent 之前,在 Ironic conductor 上设置 [conductor]conductor_always_validates_images 以缓解该问题。

  • Ironic-Python-Agent 现在明确执行允许的镜像类型列表,默认值为“raw”和“qcow2”。 其他镜像类型可能有效,但未明确支持,必须启用。 可以通过为所有 Ironic 服务设置 [conductor]permitted_image_formats 来修改此设置。

错误修复

  • 修复了与执行 qemu-img 工具相关的镜像处理中的多个问题。 当使用此工具转换不安全的镜像时,恶意用户可以在 Ironic-Python-Agent 部署或转换镜像时提取节点信息。 Ironic-Python-Agent 现在检查所有非原始镜像的安全性,并且绝不会在原始镜像上运行基于 qemu 的工具。 此修复被跟踪为 CVE-2024-44082 和 bug 2071740

  • 元数据指示“raw”磁盘格式的镜像可能从另一种格式透明地转换。 现在,这些镜像将精确地镜像到磁盘,而不会进行任何修改。

9.4.1

错误修复

  • 修复了一个部署实例可能无法访问配置驱动的故障情况,该情况可能在部署后发生。当块设备仅支持 4KB IO 交互时,可能会出现此问题。在使用 4KB 块 IO 大小时,Linux 中的 ISO9660 文件系统驱动程序将无法使用,因为它基于 2KB 块建模。现在,当无法挂载提供的配置驱动时,我们将尝试验证并使用 FAT 文件系统重建配置驱动。操作员可以使用 [DEFAULT]config_drive_rebuild 选项强制代理使用 FAT 文件系统写入配置驱动。

  • 修复了一个下载失败的情况,即校验和验证失败时下载不会重试。 代理现在将校验和活动包含在文件下载操作中,并且当校验和验证失败时,将根据现有的下载重试逻辑自动重试下载。 这主要是响应了底层间歇性传输故障,而我们无法通过其他方式检测到这些故障。

  • 修复了使用 efibootmgr 处理 UEFI NVRAM 记录的问题,以便我们可以接受并处理 UTF-16 编码的数据,这是 UEFI NVRAM 中记录的预期编码方式。

  • 修复了 UEFI NVRAM 记录的处理,以允许响应中出现意外字符,从而使 Ironic 不会发生致命错误。

  • 修复了在软件 RAID 上使用 RAIDed ESP 分区重建实例时的问题。

  • 修复了或至少减轻了运行中的 Ironic agent 在节点被锁定时,对 Ironic 部署进行大量查找请求的情况。特别是,这是因为查找还会驱动 agent token 的生成,这需要 conductor 分配一个 worker,生成 token,并将结果返回给 API 客户端。Ironic 的重试逻辑现在将等待最多 60 秒,如果收到 HTTP Conflict (409) 消息,agent 将自动暂停查找操作 30 秒,而不是继续尝试查找,这可能会不必要地给 Ironic 部署增加更多工作。

其他说明

  • 代理现在记录下载镜像时传输的数据大小,这在排查镜像下载问题时可能有所帮助。

9.4.0

新特性

  • 添加了两个清理步骤 MellanoxDeviceHardwareManager,用于更新 NVIDIA 网卡固件镜像和设置:* update_nvidia_nic_firmware_image * update_nvidia_nic_firmware_settings