集群升级¶
Trove 目前支持从一个数据存储版本升级到另一个版本的实例,但缺乏对集群的升级功能。此蓝图概述了实现集群升级的框架和 API。
Launchpad 蓝图: https://blueprints.launchpad.net/trove/+spec/cluster-upgrade
问题描述¶
Trove 目前不支持将集群升级到新的数据存储版本。
提议的变更¶
实现一个新的集群升级 API,用于将集群升级到新的数据存储版本。
此蓝图仅概述实现集群升级的框架和 API。它不会详细说明任何特定数据存储的升级实现,因为每个数据存储的实现可能不同。
如果您的规范建议对 Trove REST API 进行任何更改,例如更改可以返回或接受的参数,甚至客户端调用 API 时发生的事情的语义,那么您应该在提交消息中添加 APIImpact 标记。带有 APIImpact 标记的规范可以通过以下查询找到
https://review.openstack.org/#/q/status:open+project:openstack/trove-specs+message:apiimpact,n,z
代码片段等应放置在适当标记的块中
# This is a bash command
ls -lf
# sample code
for count in range(1, 10):
print count
配置¶
预计不会有与数据存储无关的配置设置。特定数据存储的设置将在每个数据存储实现的规范中详细说明。
数据库¶
预计不会有数据库更改。
公共 API¶
将实现一个新的 REST API 用于集群升级
请求
PATCH v1/{tenant_id}/cluster/{cluster_id}
{
"cluster":
{
"datastore_version": "<datastore_version_uuid>"
}
}
响应
{
}
REST 返回码
202 - Accepted.
400 - BadRequest. Server could not understand request.
404 - Not Found. <datastore_version_id> not found.
公共 API 安全¶
没有安全影响。
Python API¶
将在 trove API 中实现一个新的方法。该方法将根据提供的 datastore_version 指定的镜像升级集群。
upgrade(cluster, datastore_version)
- cluster
要升级的集群
- datastore_version
trove 集群将升级到的数据存储版本,或其 ID
CLI (python-troveclient)¶
将实现一个新的 CLI 调用。此新调用将根据提供的 datastore_version 指定的镜像升级集群。
trove cluster-upgrade <cluster> <datastore_version>
- cluster
要升级的集群
- datastore_version
实例将升级到的数据存储版本
内部 API¶
将使用单实例升级的实现来升级实例上的客户代理。
Guest Agent¶
对于初始实现,预计现有的升级前和升级后方法就足够了。
备选方案¶
Dashboard 影响 (UX)¶
将实现一个新的集群操作,以允许升级集群。该功能将类似于单实例的功能。
实现¶
负责人¶
- 主要负责人
6-morgan
- Dashboard 指定人
<launchpad-id 或 None>
里程碑¶
- 完成目标里程碑
例如,Liberty-1
工作项¶
此实现已发布,并已准备好进行审查,前提是此规范获得批准。
升级影响¶
没有升级影响。
依赖项¶
测试¶
由于这只是一个框架,没有特定数据存储的实现,因此此更改中不包含任何集成测试。
文档影响¶
此更改对文档团队有什么影响?有些更改可能需要向文档团队捐赠资源以更新文档。不要重复上面讨论的细节,但请在此处引用它们。
参考资料¶
无。
附录¶
无。