将 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 的文档。

参考资料