2023.1 项目工作项

大多数 Ironic 贡献者拥有大量的职责,包括但不限于,维护所有分支和项目的 CI 工作,回移植 bug 修复,以及任何下游作业职责,这些职责不包括 Ironic 贡献。

由于这些工作在六个月的发布周期中可能差异很大,我们选择不再为特定的工作项指定时间表。相反,我们将记录我们希望完成的工作项,然后允许社区在时间允许的情况下选择并处理它们。

我们强烈鼓励所有公司和个人贡献者投入资源来帮助维护公共资源;包括 CI 和稳定分支。我们投入的贡献者越多,帮助保持公共资源健康,我们就有更多的时间来处理新的项目。

本文档代表我们对 2023.1 的展望,一旦发布将不会更新。有关正在进行中的项目的状态信息,请参阅 Ironic 白板:https://etherpad.openstack.org/p/IronicWhiteBoard。有关已完成项目的信息,请参阅 Ironic 发布说明。

表格中的每个项目都包括
  • 工作项名称,链接到描述

  • 类别可以是…
    • 维护:保持 Ironic 正常运行必须执行的工作

    • Bugfix:增强现有代码以覆盖更多边缘情况并解决 bug 的工作

    • Feature:一个以前不存在的新 Ironic 功能

  • Champions 是最熟悉相关技术的人员,如果您想实施工作项,他们是一个很好的资源。

2023.1 工作项

名称

类别

Champions

SQLAlchemy 2.0 兼容性

维护

TheJulia

Nova Ironic Driver 分片

Bugfix

JayF, johnthetubaguy, TheJulia

清理租户创建的 RAID

Bugfix

dtantsur, ftarasenko

移除默认使用 MD5

Bugfix

TheJulia

将 Inspector 合并到 Ironic

维护

dtantsur, jjelinek

Active Steps

Feature

moshele, janders

Conductor 扩展和锁定

Bugfix

stevebaker

目标详情

SQLAlchemy 2.0 兼容性

我们的 DB 层目前使用 SQLAlchemy 1.4 或更早版本,并且严重依赖于自动提交行为。此外,作为迁移到 2.0 的一部分,SQLAlchemy 现在要求开发人员比以前的版本更明确地进行查询。作为此迁移的一部分,需要做大量的工作,但由此产生的代码中的 DB 层应该会更清晰。

Nova Ironic Driver 分片

现有 Nova Ironic driver 的故障场景令人沮丧:当实例被配置时,它会永久绑定到配置它的 nova-compute,如果该 compute 宕机则无法管理。此外,在高负载下,由于查询所有 Ironic 节点所需的时间较长,因此存在更多的竞争条件。

相反,我们将向 Ironic 添加支持,添加一个分片键,Nova 可以使用它。这将允许我们将 Ironic 节点管理分散到 nova-compute 服务集群上。此外,希望实现高可用性的运营商将能够设置 nova-compute 服务上 Ironic 节点的活动/被动故障转移。

清理租户创建的 RAID

Ironic 社区注意到越来越多的案例,BMaaS 系统的客户正在执行诸如设置自己的 RAID 组之类的操作。这会使部署/清理复杂化,在某些情况下还会导致机器的重新部署。

为了解决这个问题,Ironic 社区正在考虑更改整体清理工作流程,以拆卸发现的 raid 组。虽然这尚未明确定义,但我们希望这样做可以改善运营商和最终用户的体验。

移除默认使用 MD5

MD5 散列算法仍然受 Ironic 支持用于镜像散列。这并不理想,因为 MD5 已被破解。这项工作将是一个破坏性更改;默认禁止使用 MD5 散列。希望为了 API 兼容性原因继续使用 MD5 的运营商可以通过配置重新启用它。

将 Inspector 合并到 Ironic

Ironic Inspector 最初被创建为 Ironic 外部的服务。现在,它被全球许多 Ironic 运营商使用,应该与主要服务集成。现在也是进行这项工作的好时机,因为 Ironic Inspector 也需要更新才能与 SQLAlchemy 2.0 协同工作。

Active Steps

Ironic 使用步骤在部署或清理期间对节点执行操作。我们希望将这个步骤的概念扩展到允许对正在主动部署的节点进行维护。这个新的 Active Steps 功能将允许运营商执行固件更新——或对已配置的 ACTIVE 节点执行任何其他自动化操作。

Conductor 扩展和锁定

传统上,Ironic 采取了激进的节点锁定方法,以牺牲操作在 Conductor 关机或不可用时失败为代价。此更改将允许运营商从集群中优雅地关闭 Conductor,确保正在进行的操作不会失败。作为实施和改进的一部分,我们还需要缩小 Ironic 锁定节点的情况,并改进我们的锁定方法。

发布计划

贡献者在选择要处理的项目时,请记住我们的计划发布。

以下日期仅供参考;请参阅 https://releases.openstack.org/antelope/schedule.html 以获取与发布相关的完整计划,以及 https://docs.openstack.org/ironic/latest/contributor/releasing.html 以获取 Ironic 特定的发布信息。

Bugfix Release 1

第一个 bugfix 发布计划在 12 月的第一周进行。

Bugfix release 2

第二个 bugfix 发布计划在 2 月的第一周进行。

Deadline Week

2 月 13 日当周有多个截止日期/冻结期:* 必须执行客户端库的最终发布 * 要求冻结 * 软字符串冻结 - Ironic 服务通常被最小化翻译;这通常不适用于我们的服务,例如 API 和 Conductor,但可能会通过其他翻译的项目影响我们。* 功能冻结 - Ironic 通常没有功能冻结,但我们可能会受到其他项目功能冻结的影响。

Final 2023.1 (Integrated) Release

Ironic 项目的最终发布必须在 2023 年 3 月 17 日之前完成。