Sahara 核心之外的插件¶
插件是 Sahara 中非常重要的一部分,它们允许为不同的数据处理工具创建集群并在这些集群上执行作业。本提案旨在将插件代码从 Sahara 核心移除,并创建一个新项目来托管插件。
问题描述¶
将插件代码保留在 Sahara 核心中,我们受限于以里程碑周期升级插件版本。它也迫使用户在需要升级 Sahara 插件时升级 OpenStack 版本。
提议的变更¶
我们将把插件迁移到它自己的项目,并在升级新插件时发布新版本,从而允许用户无需升级整个云环境即可升级到较新版本。
为了尽可能减少项目之间的耦合,我们正在 sahara/plugins 下实施一个中介器,它将用作项目之间的 API。 此外,此 API 旨在促进两个项目的可维护性。
替代方案¶
保持插件代码不变。不进行更改不会破坏任何内容,也不会给用户带来更多困难。
数据模型影响¶
无
REST API 影响¶
无
其他最终用户影响¶
无
部署者影响¶
完成此操作后,用户将能够更快地升级插件版本。部署者需要关注 Sahara 和 sahara-plugins 之间的兼容性,如果 API 发生重大变化。
这也会对打包者和翻译人员产生影响,因为我们需要进行一次性工作来设置和复制新仓库中的翻译。
开发者影响¶
有了新项目,开发人员需要适应插件不再与核心共存的事实。Sahara 侧实现了一个新的 API(中介器),它将成为两个项目之间的桥梁。开发人员必须尊重该中介器,对其进行重大更改将需要版本升级或分支。
镜像打包影响¶
使用新的镜像生成和验证系统进行镜像打包需要安装 sahara-plugins。
Sahara-dashboard / Horizon 影响¶
无
实现¶
负责人¶
- 主要负责人
tellesnobrega
工作项¶
将插件代码从 Sahara 核心中分离出来
将插件单元测试带到插件仓库
确保 sahara-plugins 从 Sahara 的导入结构良好,以免以后与 Sahara 的更改冲突
依赖项¶
无
测试¶
将插件测试从 Sahara 核心移动到 sahara-plugins
文档影响¶
我们需要更新文档以反映此更改,并确保用户和开发人员充分了解这种新结构。
参考资料¶
无