跳转到: 导航, 搜索

Fuel/CI

Fuel CI 概述

Fuel 项目使用 OpenStack Gerrit 基础设施,并遵循其 开发流程

除此之外,还有一个 Fuel CI -- 第三方 CI 服务,它运行额外的检查和测试,这些检查和测试尚未在 OpenStack Infra gate 中支持。

Fuel CI 由一个 Jenkins 主节点组成,它通过 Gerrit Trigger 插件使用服务帐户 Fuel CI 连接到 Openstack Gerrit。 还有大约 30 个裸机 Jenkins 从节点。 所有 Jenkins 从节点都运行 Ubuntu 14.04 并通过 fuel-devops/fuel-qa 框架执行单元测试和部署测试。

链接

部署测试

通用部署测试

要为 Fuel 运行部署,您需要

  • Fuel 节点的 ISO 镜像 [1]
  • fuel-devops [2] - 用于管理虚拟机并以 PostgreSQL 数据库形式存储状态(vm 名称、网络接口..)的命令行工具
  • fuel-qa [3] - 基于 proboscis 的测试框架

基本设置在 [4] 中描述。

测试流程如下

  • 使用 fuel-devops 工具
    • 通过内部网络创建多个虚拟机 - 所谓的 devops 环境
  • 使用 fuel-qa 框架
Step 1. install Fuel node on first vm using the ISO image provided by the local path on the host server
Step 2. bootstrap other vms with basic OS image provided on Fuel ISO
Step 3. configure Fuel environment via API according to certain scenario
Step 4. run deployment

测试场景在 fuel-qa 文档中描述,例如 [5]。

CI 上的部署测试

fuel-library 代码本质上是一组 Puppet 清单,这些清单用于部署通过 Fuel 界面定义的环境配置。 这些清单作为 RPM 包 [6] 传递到 Fuel 节点。

为了在 CI 上节省时间和资源,我们不会为每个测试从头开始重新创建环境,而是定期获取“足够稳定”的 ISO,将其上传到 Jenkins 从节点,创建基本环境(步骤 1 和 2),并快照所有虚拟机。

然后,每次提交时,我们

  1. 使用 mock 在基于 CentOS 的 docker 容器中构建 fuel-library 包
  2. 使用 sbuild 在基于 Ubuntu 的容器中构建 deb 包
  3. 从快照恢复 devops 环境
  4. 上传并在 Fuel 节点上安装包
  5. 运行部署测试场景(步骤 3 和 4)

您可以在 [7] 中查看详细日志

Puppet OpenStack 的 CI

Fuel CI 作为一组 Puppet OpenStack 项目模块的第三方 CI,这些模块用于 fuel-library

  • puppet-aodh
  • puppet-ceilometer
  • puppet-cinder
  • puppet-glance
  • puppet-ironic
  • puppet-heat
  • puppet-horizon
  • puppet-keystone
  • puppet-murano
  • puppet-neutron
  • puppet-nova
  • puppet-openstacklib
  • puppet-sahara
  • puppet-swift

对于这些项目的每次提交,我们都会启动一个 构建集,目前包括 fuel-library noop 测试和 2 个部署测试。 部署测试与我们为 fuel-library 运行的部署测试共享相同的 工作流程 和测试场景。 有关详细信息,请参阅 [规范]。

为了防止 Puppet OpenStack 的更改对 Fuel CI 引入回归,并帮助 Puppet OpenStack 开发人员调查 Fuel CI 故障,Fuel 团队 承诺监控和调查 Fuel CI 中 PuppetOpenStack 的故障

有关 Fuel CI for Puppet OpenStack 的任何问题,请联系 #fuel-dev IRC 频道。

打包 CI 概述

Fuel 的打包 CI 为所有 Fuel 存储库构建 RPM 包。 使用 Perestroika 构建和发布包。

打包 CI 由一个 Jenkins 主节点 packaging-ci.fuel-infra.org 组成,它通过 Gearman 插件连接到 Zuul 实例 gate.fuel-infra.org。 Zuul 使用服务帐户 Fuel Packaging CI 附加到 Openstack Gerrit。

还有几个 Jenkins 从节点运行 Ubuntu 14.04 (LTS)

  • 一个发布者和镜像主机 (VM)
  • 包构建从节点 (HW)
  • 用于安装测试的从节点 (HW)
  • 用于部署(系统)测试的从节点 (HW)

构建的包在 packages.fuel-infra.org 站点上可用。

打包 CI 链接