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

文档影响

我们需要更新文档以反映此更改,并确保用户和开发人员充分了解这种新结构。

参考资料