集群 root 启用¶
本规范旨在为集群添加 root 启用支持。
Launchpad蓝图
https://blueprints.launchpad.net/trove/+spec/vertica-cluster-user-features
问题描述¶
Trove 的集群 API 当前不支持 root 启用。
提议的变更¶
为集群添加 root 启用支持,并提供可选的用户提供的密码。用户提供的密码对于在 Horizon 中提供良好的用户体验至关重要,启用 root 用户应该允许用户输入密码,而不是要求用户在响应对话框中等待密码弹出。
配置¶
无
数据库¶
无
公共 API¶
此更改将添加一个新的 /clusters/<cluster_id>/root 资源,类似于实例上的 /root 资源,并添加可选密码。
请求
{
"password": "secretsecret"
}
POST /v1.0/[account-id]/clusters/<cluster_id>/root
响应
{
"username": "root",
"password": "secretsecret"
}
GET /v1.0/<tenant_id>/clusters/<cluster_id>/root
DELETE /v1.0/<tenant_id>/clusters/<cluster_id>/root
公共 API 安全¶
此 API 的安全性将以与现有实现相同的方式处理。
Python API¶
无
CLI (python-troveclient)¶
将添加新的 cluster-root-enable 和 cluster-root-show 命令
更改将影响
troveclient/v1/root.py troveclient/v1/shell.py troveclient/v1/clusters.py
内部 API¶
应为集群添加 root 启用支持。更改包括
trove/extensions/routes/mysql.py trove/extensions/mysql/service.py trove/extensions/mysql/models.py trove/guestagent/api.py
Guest Agent¶
guestagent API 将获得一个新的 enable_root(self, password) 函数,该函数允许可选地向 guest agent 提供密码。此函数将添加到现有函数,以确保与现有镜像的向后兼容性。
此外,每个 guest agent 数据存储实现都需要实现 enable_root(password) 函数。
备选方案¶
无
升级影响¶
无
依赖项¶
无
测试¶
将添加新的单元和场景测试,以断言 root 启用在集群级别按预期工作
文档影响¶
需要记录对 clusters 资源所做的 API 更改以及新集群 root 资源的添加。
参考资料¶
无