集群升级

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

工作项

此实现已发布,并已准备好进行审查,前提是此规范获得批准。

升级影响

没有升级影响。

依赖项

测试

由于这只是一个框架,没有特定数据存储的实现,因此此更改中不包含任何集成测试。

文档影响

此更改对文档团队有什么影响?有些更改可能需要向文档团队捐赠资源以更新文档。不要重复上面讨论的细节,但请在此处引用它们。

参考资料

无。

附录

无。