Neutron 插件和驱动程序
- TC 批准的 Neutron 项目列表 - http://governance.openstack.org/reference/projects/neutron.html
- 关于 Neutron 项目列表的更多详细信息 - https://docs.openstack.org/developer/neutron/#neutron-stadium
- Neutron 领域和项目的联系人 - https://docs.openstack.org/developer/neutron/policies/neutron-teams.html#core-review-hierarchy
- 如何开发 Neutron 组件 - https://docs.openstack.org/developer/neutron/devref/contribute.html
简介
确保发布质量通过适当的测试是 OpenStack 社区的重要原则,Neutron 团队希望尽我们的一份力量。我们引入以下更改,以提高对供应商插件和驱动程序代码的质量和稳定性的可见性。此处描述的策略立即生效。
原理
第三方插件的代码提案一直以来都对 Neutron 核心团队提出了审查挑战。在早期,代码通常由核心项目贡献者提出,我们的审查过程仅验证是否满足社区编码风格和单元测试的要求。随着 Neutron 通过扩展添加了新的资源,Neutron 审查人员确保提出的代码能够正常工作变得更加困难。许多插件和/或驱动程序需要专有硬件和/或软件来进行此类测试。
除了测试更改之外,Neutron 团队还在修订第三方代码联系人的要求。这些更改使对联系人的书面期望与当前实践保持一致。
插件和驱动程序流程
将插件或驱动程序合并到 Neutron 上游,可以使您受益于同步发布,并且您的插件或驱动程序可能与基于上游同步发布发布的发行版一起打包。但是,这并不是“免费的午餐”,您应该理想情况下付出比您获得的更多,通过将您的代码上游来做到这一点。当您提交代码时,您给现有的审查和基础设施带来了负担。对后续的错误修复和回溯到稳定版本也是如此。因此,您应该有来自您的公司或团队的人员审查上游的其他代码,参与会议等。以下是包含上游代码的要求列表
- 通过审查的代码,具有足够的单元测试,并符合 pep8 指南。
- 一个 正常运行的 CI 系统,该系统已成功针对您的插件/驱动程序补丁以及其他补丁运行。
- 参与 Neutron 会议、IRC 频道和邮件列表。
- 插件/驱动程序团队的成员参与上游代码的审查。
删除上游插件或驱动程序
如果您未能满足上述标准,您的插件或驱动程序有被从上游删除的风险。核心团队将继续评估第三方 CI 系统,以确保它们正在运行并正确测试第三方插件和驱动程序的补丁。如果它们未能正常运行,将向 openstack-dev 邮件列表发送电子邮件,要求所有者修复此问题。理想情况下,所有者将回复电子邮件线程,并与 Neutron 和 Infra 团队合作解决 CI 问题。如果没有收到回复,或者在 2 周内没有取得足够的进展来解决该问题,将启动删除上游插件或驱动程序的流程。要将您的插件或驱动程序上游恢复,需要一个正常运行的第三方 CI 系统运行一个月,并正确投票更改上游。
联系人要求
每个第三方插件和/或驱动程序应指定每个协调发布周期中的联系人。该联系人将作为 Neutron 核心团队与支持插件或驱动程序的供应商或社区之间的联络人。联系人应
- 参加每周 Neutron 团队 IRC 会议
- 成为积极的审查员和贡献者
- 成为 openstack-dev 邮件列表的积极参与者
- 协助核心团队对插件和/或驱动程序特定的错误进行分类
- 确保 OpenStack 开发期限正确传达给他们的公司和/或社区
测试要求
https://wiki.openstack.org/wiki/NeutronThirdPartyTesting
现有的插件和驱动程序
Neutron 项目仓库中现有的插件和驱动程序将获得一个宽限期,直到 Icehouse-2 里程碑,以实施外部第三方测试。届时,Neutron 团队将发布兼容插件和驱动程序列表(即,满足测试要求的插件和驱动程序)。没有外部测试的插件和驱动程序将在 Icehouse 版本中被弃用,并在 J 版本周期打开时成为删除的候选对象。
页面 ThirdPartySystems 收集了有关所有第三方 CI 系统(包括 Neutron 相关)的信息。
| 供应商 | 插件/驱动程序名称 | 联系人姓名 | 状态 | 重新检查命令 | 笔记 |
|---|---|---|---|---|---|
| Neutron 团队 | ML2 - OVS/LB | Infra 团队 | Y | 由 Infra 覆盖(Jenkins) | |
| A10 Networks | LBaaS 驱动程序 | Doug Wiegley | Y | redo-a10 | 无 |
| Arista Networks | ML2 驱动程序 | Sukhdev Kapur | Y | recheck/reverify no bug/bug # | 无 |
| Avaya | ML2 驱动程序 | Ravi Palaparthi | Y | 无 | |
| Big Switch | 插件 | Kevin Benton | Y | recheck-bigswitch | 无 |
| Big Switch | ML2 驱动程序 | Kevin Benton | Y | 无 | |
| BNC | DCFabric-ML2-Driver | Yanwei Xu | Y | recheck-DCFabric | 无 |
| Brocade | Vyatta 插件 | Karthik Natarajan | Y | 无 | |
| Brocade | ML2 驱动程序 | Shiv Haris | Y | 无 | |
| Cisco | 插件 - NXOS | Dane Leblanc | N | 它已被弃用,将在 Juno 中删除 | |
| Cisco | 插件 - N1Kv | Dane Leblanc | Y | recheck cisco-n1kv | 无 |
| Cisco | ML2 - APIC | Dane Leblanc | Y | recheck cisco-apic | 无 |
| Cisco | ML2 - DFA | Dane Leblanc | Y | 无 | |
| Cisco | ML2 - NXOS | Dane Leblanc | Y | recheck cisco-ml2 | 无 |
| Cisco | CSR1kv - 路由器服务插件 | Nikolay Fedotov, Richard Winters | Y | recheck cisco-csr1kv | 无 |
| Cisco | VPNaaS - 驱动程序 | Dane Leblanc | Y | recheck cisco-vpnaas | 无 |
| Cloudbase Solutions | 插件 - Hyper-V | Alessandro Pilotti | Y | 无 | |
| Embrane | 插件 | Ignacio Scopetta | N | embrane-recheck | CI 无法通过他们自己的插件提交:https://review.openstack.org/#/c/108226/ |
| Embrane | LBaaS - 驱动程序 | Ignacio Scopetta | N | embrane-recheck | 没有 CI。是 Neutron 中被删除的候选对象 |
| Freescale | ML2 - 驱动程序 | Trinath Somanchi | Y | recheck freescale | 无 |
| Freescale | FWaaS - 插件 | Trinath Somanchi | Y | recheck freescale | 无 |
| HP | ML2 OVSvAPP - 驱动程序 | Romil Gupta | Y | recheck-hpnetworkingci | 无 |
| IBM | 插件 - SDN-VE | Daya Kamath | Y | 无 | |
| Juniper | 插件 - Contrail | Rudra Rugge | Y | 无 | |
| Mellanox | 插件 | Omri Marcovitch | N | recheck mlnx | 它已被弃用。将在 Kilo 中删除 |
| Mellanox | ML2 - 驱动程序 | Omri Marcovitch | Y | recheck mlnx | 无 |
| Mellanox | ML2 - Sriovnic 开关 | Omri Marcovitch | Y | recheck mlnx | 无 |
| Metaplugin | 插件 - 多个 | NTT 团队 | Y | metaplugin-recheck | 无 |
| Midokura | 插件 - Midonet | Lucas Eznarriaga | Y | recheck midokura | 无 |
| NEC | 插件 - OpenFlow | Akihiro Motoki | Y | recheck-nec | 无 |
| Citrix NetScaler | LBaaS - 驱动程序 | Parikshit Manur | Y | 无 | |
| Nuage Networks | 插件 - VSP | Sailaja Yanamandra | Y | recheck-nuage | 无 |
| OFAgent | ML2 - OF | Yamamoto Takashi | Y | ryu-recheck | 无 |
| One Convergence | 插件 - NVSD | Hemanth Ravi | Y | recheck oneconvergence | 无 |
| OpenDaylight | ML2 - ODL | Dave Tucker (dave_tucker) / Kyle Mestery (mestery) | Y | recheck-opendaylight | 无 |
| PLUMgrid | 插件 - Director | Fawad Khaliq | Y | 无 | |
| Pluribus Networks | ML2 驱动程序- Pluribus | Prashanth Prahalad | Y | 无 | |
| Ryu | 插件 - Ryu Controller | Yamamoto Takashi | Y | ryu-recheck | 已弃用。将在 Kilo 中删除 |
| Radware | LBaaS - 驱动程序 | Samuel Bercovici | N | CI 不存在。应从 Neutron 中删除 | |
| Tail-f NCS | ML2 - NCS | Luke Gorrie | Y | recheck cisco-tailf | 无 |
| vArmour | FWaaS | Gary Duan | Y | recheck varmour | 无 |
| VMware | 插件 - NSX | Aaron Rosen | Y | vmware-recheck | 无 |