无分支 Tempest - 服务扩展¶
https://blueprints.launchpad.net/tempest/+spec/branchless-tempest-extensions
这是无分支 Tempest 的后续工作,用于在发布过程中添加的新服务扩展。
问题描述¶
在转向无分支 Tempest 后,我们现在正在多个 OpenStack 代码分支上运行 Tempest。目前是 icehouse 和 juno,但未来将是 icehouse、juno 和 kepler。
当 Nova 在 Juno 中添加一个新扩展,并且 Tempest 中需要针对该 API 部分的测试时会发生什么? 今天该测试会失败,因为它无法通过 icehouse。
提议的变更¶
建议的更改是在 devstack-gate 功能网格中添加另一层,该层指定每个发布版本支持哪些扩展。
目前在 nova 定义中我们有
nova:
base:
services: [n-api, n-cond, n-cpu, n-crt, n-net, n-obj, n-sch]
设想中的定义如下所示
nova:
base:
services: [n-api, n-cond, n-cpu, n-crt, n-net, n-obj, n-sch]
icehouse:
compute-ext: [floating-ips, aggregates, ... ]
扩展列表不存在意味着假定为“全部”。 此外,预计您能够像 rm-services 一样指定“rm-compute-ext”,以便您可以执行以下操作。
nova-cells:
base:
services: [n-cell]
rm-compute-ext: [aggregates, hosts]
这将禁用配置时任何时候的这些 nova 扩展。
为了使之起作用,需要在以下方面进行更改
devstack-gate
以解析这些额外的段落并将它们传递给 devstack
devstack
根据它获取项目的扩展列表并设置正确的扩展
正确计算 master 的“全部”情况(尤其是在我们支持 rm-compute-ext 段落的情况下)
当这些映射到功能标志时,设置已启用功能的正确 tempest 字段。
替代方案¶
Nova API 微版本可能在这里消除分支情况下的需求,因为我们将能够指定特定的测试具有特定的必需版本。 但是,这不能解决 cells 的情况。
实现¶
负责人¶
- 主要负责人
目前还没有
里程碑¶
未知
工作项¶
工作项跨项目
见上文
依赖项¶
仅以上列出的