支持在实例启动时添加标签

https://blueprints.launchpad.net/nova/+spec/support-tag-instance-when-boot

此蓝图建议添加在实例启动时添加标签的支持。

问题描述

服务器标签在 microversion 2.26 中得到支持,但目前我们只能为已经存在于云中的实例添加标签,也就是说,我们无法在启动实例时设置标签。用户必须先找到实例,然后使用另一个 API 调用添加标签。当用户进行批量启动时,这不够用户友好,之后逐个为这些实例添加标签是不切实际的。

用例

作为用户,我希望在启动实例时添加标签,尤其是在进行批量启动时,我可能希望为通过此调用创建的实例添加一些标签。

提议的变更

为服务器创建 API 添加一个新的 microversion,以支持在启动实例时添加标签。可以添加的标签数量将受到 instance.MAX_TAG_COUNT 的限制,就像 server-tags API 所做的那样。

备选方案

保留当前实现。

数据模型影响

REST API 影响

  • URL
    • /v2.1/servers

  • 请求方法
    • POST

标签数据可以添加到请求负载中

{
    ...
    'tags': ['foo', 'bar', 'baz']
    ...
}

如果已设置,标签也将包含在响应中

{
    ...
    'tags': ['foo', 'bar', 'baz']
    ...
}

如果没有设置,标签将是一个空列表

{
    ...
    'tags': []
    ...
}

安全影响

通知影响

其他最终用户影响

用户可以使用特定的 microversion 在启动实例时设置标签。python-novaclient 也会进行修改以支持此功能。

性能影响

其他部署者影响

将添加一个新的 microversion。

开发人员影响

实现

负责人

主要负责人

郑振宇

工作项

  • 添加启动时实例标签支持

  • 添加相关测试

依赖项

测试

  • 添加相关单元测试

  • 添加相关功能测试

  • 添加相关的 tempest 测试

文档影响

添加文档,说明在 microversion 之后可以在启动实例时添加标签。

参考资料

历史

修订版

发布名称

描述

Ocata

引入