DriverLog
目录
使命
DriverLog 项目的目标是提供有关为 OpenStack 本身以及与 OpenStack 相关的项目开发的驱动程序和插件的信息。
在生产环境部署 OpenStack 时,客户希望确保某些硬件/虚拟设备确实能与某些 OpenStack 组件协同工作。
OpenStack 社区本身或许能够解决驱动程序/版本泛滥的问题:可以提供更高效、及时、透明和值得信赖的解决方案。DriverLog 是一个开源项目,旨在提供
- 关于所有第三方 OpenStack 供应商驱动程序的一个单一、统一的事实来源。
- 访问有关如何配置任何供应商的产品与 OpenStack 的说明。
- 有关供应商的驱动程序是否嵌入在 OpenStack 版本的上游代码库中的信息。
- 有关供应商是否部署了自动化测试基础设施,该基础设施提供有关供应商的驱动程序通过或未能通过功能和集成测试的反馈信息。
- OpenStack 部署者在遇到问题时快速联系供应商驱动程序维护者的快捷方式。
目标读者
这项举措有三个受益者。
厂商
- 一个易于获取、社区支持的驱动程序市场。
- 关于供应商驱动程序与 OpenStack 版本兼容性的一种通用且可衡量的真相。
- DriverLog 举措通过定义和汇总一个通用且可衡量的真相,从而减轻了断言和推广驱动程序与不同 OpenStack 版本兼容性的一些负担。
OpenStack 用户
- OpenStack 用户可以使用的标准化信息和可信信息。
- OpenStack 的质量和可靠性得到提高。
- 快速访问有关各种供应商开发的和维护的 OpenStack 驱动程序的准确和最新信息。
OpenStack 社区
- 鼓励更多供应商参与社区。
- 满足 OpenStack 用户期望的质量、可靠性和开放性。
- 加速 OpenStack 构建一个通用的、开放的框架,用于构建异构组件的任务,同时避免组件碎片化和不可操作的产品。
描述
DriverLog 是一项收集和处理有关 OpenStack 驱动程序、其维护者、在主干中的可用性、CI 测试状态等信息的服务,并使其能够在便捷的 Web 控制面板中可视化。Driver 控制面板可以按项目、供应商和其他因素查看数据。
Driverlog Dashboard
Driverlog 控制面板允许按相关的 OpenStack 版本、项目和供应商(例如,Icehouse + Neutron(网络)+ Midokura)过滤驱动程序,以及按关键字搜索。结果可以按列排序,并显示项目、供应商、驱动程序描述、主干兼容性数据(例如,Grizzly、Folsom、Havana、Icehouse),注意驱动程序是否经过 CI 测试,并识别维护者。
如果您单击 (i) 图标,您将获得有关所选驱动程序的详细信息:CI 测试结果以及维护者的个人资料,网址为 Stackatytics。
跟踪的项目
DriverLog 将项目及其驱动程序存储在配置文件 default_data.json 中。任何贡献者都可以添加未跟踪的项目。项目部分表示跟踪的项目列表。它具有以下格式
"projects": [
{
"id": "openstack/cinder",
"name": "Cinder (Block Storage)"
},
{
"id": "openstack/fuel",
"name": "Fuel"
},
{
"id": "openstack/glance",
"name": "Glance (Image Service)"
},
{
"id": "openstack/ironic",
"name": "Ironic (Bare Metal Provisioning)"
},
{
"id": "openstack/manila",
"name": "Manila (Shared File Storage)"
},
{
"id": "openstack/neutron",
"name": "Neutron (Networking)"
},
{
"id": "openstack/nova",
"name": "Nova (Compute)"
},
{
"id": "openstack/sahara",
"name": "Sahara (Data Processing)"
}
],
跟踪的版本
版本部分表示 OpenStack 版本的列表。它具有以下格式
"releases": [
{
"id": "austin",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Austin"
},
{
"id": "bexar",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Bexar"
},
{
"id": "cactus",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Cactus"
},
{
"id": "diablo",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Diablo"
},
{
"id": "essex",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Essex"
},
{
"id": "folsom",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Folsom"
},
{
"id": "grizzly",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Grizzly"
},
{
"id": "havana",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Havana"
},
{
"id": "icehouse",
"wiki": "https://wiki.openstack.org/wiki/ReleaseNotes/Icehouse"
},
{
"id": "juno",
"wiki": "https://wiki.openstack.org/wiki/Releases"
}
],
跟踪的驱动程序
任何贡献者都可以添加未跟踪的驱动程序。驱动程序部分表示跟踪的驱动程序列表。它具有以下格式
{
"project_id": "openstack/neutron",
"vendor": "Tail-f",
"name": "Tail-f NCS ML2 Mechanism Driver",
"description": "The Tail-f NCS Mechanism Driver allows OpenStack to drive the Tail-f Network Control System (NCS)",
"maintainers": [
{
"name": "Luke Gorrie",
"irc": "lukego",
"email": "luke@tail-f.com",
"launchpad_id": "lukego"
}
],
"releases": ["Havana", "Icehouse"],
"wiki": "https://wiki.openstack.org/wiki/Neutron/ML2/Tail-f-NCS-neutron-ml2-driver",
"ci": {
"id": "tailfncs",
"success_pattern": "Successful",
"failure_pattern": "Failed"
}
}
对于每个驱动程序,可以指定以下参数
- project_id - OpenStack 项目 - default_data.json 中配置的项目列表中的一个(必需)
- vendor - 驱动程序的供应商(必需)
- name - 驱动程序的名称(必需)
- description - 驱动程序的描述
- maintainers - 驱动程序维护程序的信息(可能有多个),包括
- name - 人的姓名(必需)
- email - 人的电子邮件
- irc - 人的 IRC 昵称
- launchpad_id - 人的 Launchpad ID
- wiki - 指向 OpenStack wiki 页面,其中包含驱动程序配置说明
- releases - 驱动程序支持的 OpenStack 版本的列表(填充用于未通过 CI 测试的版本)
- ci - CI 信息
- id - 外部 CI 的 Gerrit ID
- success_pattern - 用于解析 CI 的评论以获取成功运行的模式
- failure_pattern - 用于解析 CI 的评论以获取失败运行的模式。
注意:CI 模式用于确定非投票 CI 的结果,或者如果一个投票对应于多个驱动程序
操作指南:向 DriverLog 添加新的驱动程序
先决条件
在供应商将新的驱动程序添加到 DriverLog 之前,驱动程序必须满足以下要求
- 驱动程序必须具有唯一且清晰的名称
- 驱动程序必须具有完整且完整的描述。文本应回答以下问题:“此驱动程序启用什么?它具有哪些功能?”
- 驱动程序必须具有维护者。供应商应提供维护者的姓名和联系方式(电子邮件、IRC 昵称)。
- 驱动程序必须在 OpenStack wiki 或供应商网站上有一个专门的页面,其中包含配置详细信息。最好将驱动程序的章节添加到 OpenStack 配置概述 文档中。
- 驱动程序必须被接受到 OpenStack 主干中。
注意:驱动程序可以在当前的 OpenStack 版本中被弃用。
说明
DriverLog 使用 Gerrit 进行代码审查。
注意:请查看 Gerrit Workflow 以获取有关将您的更改上传到 Gerrit 的说明。
- 打开 JSON 文件。
- 将新的驱动程序部分添加到文件中。
{
"project_id": "openstack/neutron",
"vendor": "Extreme Networks",
"name": "Neutron Plugin",
"description":"The Extreme Networks OpenStack plugin runs on Extreme XOS 15.3 and later releases. This plug-in is supported on all EXOS based platforms and includes the latest OpenStack API capabilities. The Extreme Networks OpenStack 2.0 plugin enables “Networking-as-a-Service” for both Physical and Virtual Extreme Networks.",
"wiki": "http://extrcdn.extremenetworks.com/wp-content/uploads/2014/02/SDN_OpenStack_Install_Guide_Final1.pdf",
"releases": ["Icehouse"]
}
注意:配置文件中的记录应按键排序 - (project_id, vendor)。驱动程序按供应商名称的字母顺序排序。配置文件会自动验证配置文件的方案。
- 发送拉取请求。提供详细的注释,说明完成了什么。
- DriverLog Core Engineer 审查提交。如果一切正常,他/她将合并更新。
- 驱动程序将显示在 DriverLog 控制面板上的驱动程序列表中。
- “CI 测试通过”列将显示一个叉号,表示 CI 不存在。
- “在主干中”列将显示在“releases”字段中指定的版本列表。
操作指南:向 DriverLog 添加新的 Fuel 插件
先决条件
在供应商将新的 Fuel 插件添加到 DriverLog 之前,插件必须满足以下要求
- 插件必须具有唯一且清晰的名称
- 插件必须具有完整且完整的描述。文本应回答以下问题:“此插件为 Fuel 带来哪些附加功能?它具有哪些功能?”
- 插件必须具有维护者。供应商应提供维护者的姓名和联系方式(电子邮件、IRC 昵称、指向 Launchpad 个人资料的链接)。
- 插件必须有一个指向插件仓库的链接。
说明
DriverLog 使用 Gerrit 进行代码审查。
注意:请查看 Gerrit Workflow 以获取有关将您的更改上传到 Gerrit 的说明。
- 打开 JSON 文件。
- 将新的插件部分添加到文件中。
{ "project_id": "openstack/fuel",
"repo": "openstack/fuel-plugin-calico",
"vendor": "Project Calico",
"name": "Calico plugin for Fuel",
"description": "This plugin provides Calico's Layer 3 Virtual Networking for Highly Scalable Data Centers",
"maintainers": [
{
"name": "Emma Gordon",
"email": "emma@projectcalico.org",
"launchpad_id": "emma-0"
}
],
"releases": ["Juno"],
"wiki": "https://github.com/openstack/fuel-plugin-calico"
},
注意:配置文件中的记录应按键排序 - (project_id, vendor)。驱动程序按供应商名称的字母顺序排序。配置文件会自动验证配置文件的方案。
- 发送拉取请求。提供详细的注释,说明完成了什么。
- DriverLog Core Engineer 审查提交。如果一切正常,则合并提交。
- 插件将显示在 DriverLog 控制面板上的驱动程序列表中。请注意,在提交合并后,它不会立即出现。
- “CI 测试通过”列将显示一个叉号,表示 CI 不存在。
- “在主干中”列将显示在“releases”字段中指定的版本列表。
操作指南:添加“CI 测试通过”标记
先决条件
要能够添加“CI 测试通过”标记,供应商必须部署一个外部投票 CI 环境,该环境在每次提交时对驱动程序运行自动测试。有关设置外部 CI 的说明,请参见此处
说明
要配置 DriverLog 以轮询外部 CI 以获取当前的验证状态,需要提供字段“ci_id”。“ci_id”是外部 CI 的 Gerrit ID,请参见下文示例
{
"project_id": "openstack/neutron",
"vendor": "Embrane",
"name": "Neutron Plugin",
"description": "Embrane Neutron plugin enables users to interface Neutron with the Embrane heleos platform.",
"maintainers": [
{
"name": "Ivar Lazzaro",
"irc": "ivar-lazzaro",
"email": "ivar@embrane.com"
}
],
"wiki": "https://wiki.openstack.org/wiki/Neutron/EmbraneNeutronPlugin",
"ci": {
"id": "eci",
"success_pattern": "Build Successful",
"failure_pattern": "Build Failed"
}
},
- 驱动程序测试的实际结果存储在 Gerrit 中。后端作为计划的后台批处理运行,每 4 小时执行以下逻辑
- DriverLog 后端使用 CI 环境 ID (ci_id) 识别与此驱动程序相关的 Gerrit 审查。
- 后端解析所有合并的补丁,从新到旧,搜索与“success_pattern”或“failure_pattern”匹配的 CI 投票或评论消息。
- “CI 测试通过”列将显示一个勾号,表示 CI 存在。
注意:只有 default_data.json 中的已知 ci_id 才会由后端处理。
发行说明
版本 0.1
- Nova、Cinder、Neutron 和 Sahara 项目包含在 DriverLog 中。
- 项目 wiki 页面上有关受支持的驱动程序的信息被手动转换为 JSON 配置文件
代码
源代码
https://github.com/openstack/driverlog
待处理代码审查
https://review.openstack.org/#/q/status:open+driverlog,n,z
项目空间
https://launchpad.net/driverlog
Blueprints
https://blueprints.launchpad.net/driverlog
错误
https://bugs.launchpad.net/driverlog

