将 os_tempest 角色与 TripleO 集成¶
Launchpad 蓝图
https://blueprints.launchpad.net/tripleo/+spec/os-tempest-tripleo
Tempest 提供了一套包含电池的 API 和集成测试,用于验证 OpenStack 部署。在 TripleO 项目中,我们正在努力使用 OpenStack Ansible 项目提供的统一 tempest 角色,即 os_tempest,在 TripleO CI 中,以便与多个部署工具进行协作,并改进 OpenStack 社区内的测试策略。
问题描述¶
在 OpenStack 生态系统中,我们有多个基于 ansible 的部署工具,它们使用自己的角色来安装/配置和运行 tempest 测试。这些角色中的每一个都在尝试做类似的事情,与不同的部署工具相关联。例如:TripleO CI 上的 validate-tempest ansible 角色提供了大部分功能,但它与 TripleO 部署绑定在一起,并提供了一些不错的功能(例如:bugcheck、失败测试邮件通知、stackviz、python-tempestconf 支持自动生成 tempest.conf),而这些功能在其他角色中缺失。这导致了重复,并降低了 tempest 测试在它们之间无法正常工作的情况,从而阻碍了测试方面的协作。
OpenStack Ansible 团队提供了 os_tempest 角色,用于安装/配置/运行 tempest 以及处理 tempest 结果,其工作内容与各种部署工具用于测试的角色之间存在大量重复。它几乎提供了每个部署工具特定的 tempest 角色所提供的所有功能。还有一些缺失的功能可以添加到角色中,使其可供其他部署工具使用。
提议的变更¶
在 TripleO CI 中使用统一的 os_tempest ansible 角色将有助于维护 TripleO 项目中更少的角色,并帮助我们与 openstack-ansible 团队协作,以共享/改进整个 OpenStack 生态系统中的测试策略,并快速解决 tempest 问题。
- 为了实现这一点,我们需要
改进 os_tempest 角色,以添加对软件包/容器安装、python-tempestconf、stackviz、跳过列表、bugcheck、tempest 日志收集的支持,并将其放置在适当的位置。
拥有一个在独立运行的 tempest 上使用 os_tempest 角色以及在 OSA 侧上运行的 CI 作业。
提供从 validate-tempest 角色迁移的便捷路径。
替代方案¶
如果我们不使用现有的 os_tempest 角色,那么我们需要重写 validate-tempest 角色,这将再次导致重复,并且会花费大量时间,并且还需要另一组努力来在社区中采用,这似乎不可行。
安全影响¶
无
升级影响¶
无
其他最终用户影响¶
我们需要教育用户迁移到 os_tempest。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
有助于更多的协作和改进测试。
实现¶
负责人¶
- 主要负责人
Arx Cruz (arxcruz)
Chandan Kumar (chkumar246)
Martin Kopec (mkopec)
工作项¶
从 Distro 包中安装 tempest 及其依赖项
从容器运行 tempest
启用 stackviz
python-tempestconf 支持
skiplist 管理
将所有 tempest 相关文件放在一个地方
Bugcheck
基于独立运行的 TripleO CI 作业,使用 os_tempest 角色
从 validate-tempest 迁移到 os_tempest 角色的路径
关于如何使用它的文档更新
RDO 软件包
依赖项¶
目前,os_tempest 角色在从源代码(git、pip、venv)安装 tempest 时依赖于 python_venv_build 角色。我们需要将其打包在 RDO 中。
测试¶
统一的 tempest 角色 os_tempest 将取代 validate-tempest 角色,并进行更多改进。
文档影响¶
需要更新关于如何使用 os_tempest 的文档。
参考资料¶
统一 Tempest 角色创建和协作邮件:http://lists.openstack.org/pipermail/openstack-dev/2018-August/133838.html
os_tempest 角色:http://git.openstack.org/cgit/openstack/openstack-ansible-os_tempest