支持在实例启动时添加标签¶
https://blueprints.launchpad.net/nova/+spec/support-tag-instance-when-boot
该蓝图建议支持在实例启动时添加标签。
问题描述¶
服务器标签在 microversion 2.26 中得到支持,但目前我们只能为已经存在于云中的实例添加标签,也就是说,我们无法在启动实例时设置标签。用户必须先找到实例,然后通过另一个 API 调用添加标签。当用户执行批量启动时,这不够用户友好,事后逐个添加标签将不切实际。
用例¶
作为用户,我希望在启动实例时添加标签,尤其是在执行批量启动时,我可能希望为通过此调用创建的实例添加一些标签。
提议的变更¶
为服务器创建 API 添加一个新的 microversion,以支持在启动实例时添加标签。可以添加的标签数量将受 instance.MAX_TAG_COUNT 限制,就像 server-tags API 所做的那样。
备选方案¶
保留当前的实现。
数据模型影响¶
将在 build_requests 表中添加一个新的列 tags。该列的大小至少为 3200,这是由 50 个标签(每个实例的限制)组成的序列化列表的长度,其中每个标签的长度为 60(每个标签的大小限制)。
REST API 影响¶
- URL
/v2.1/servers
- 请求方法
POST
标签数据可以作为可选参数添加到请求负载中
{
...
'tags': ['foo', 'bar', 'baz']
...
}
每个标签的长度将限制为 60,与当前 server-tags API 中标签长度的限制相同。[1]
在 microversion 2.26 之后,标签字段已包含在 GET /servers/{server_id} 响应中。[2]
安全影响¶
无
通知影响¶
标签将包含在 instance.create 版本化通知中 [3]。
其他最终用户影响¶
用户可以使用特定的 microversion 在启动实例时设置标签。python-novaclient 也会进行修改以支持此功能。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
郑振宇
工作项¶
支持在启动时标记实例
添加相关测试
依赖项¶
无
测试¶
添加相关单元测试
添加相关功能测试
添加相关的 tempest 测试
文档影响¶
添加文档,说明在 microversion 之后可以在启动实例时添加标签。
参考资料¶
[1] https://github.com/openstack/nova/blob/808ab5d4/nova/api/validation/parameter_types.py#L418
[2] https://github.com/openstack/nova/blob/808ab5d4/nova/api/openstack/compute/views/servers.py#L164
[3] https://blueprints.launchpad.net/nova/+spec/additional-notification-fields-for-searchlight
历史¶
发布名称 |
描述 |
|---|---|
Ocata |
引入 |
Pike |
重新提出 |