服务器展示中的镜像属性¶
https://blueprints.launchpad.net/nova/+spec/image-properties-in-server-show
此规范建议在服务器展示 API 中显示实例的嵌入式镜像属性。 这有很多用途,但尤其适用于 vTPM 实时迁移,以便向用户显示为其实例设置的 vTPM 密钥安全级别。
问题描述¶
Nova 在实例创建和重建时将镜像的属性复制到实例系统元数据中,以便即使镜像在 glance 中稍后被更改或删除,也能保持这些信息可用。 但是,nova API 并不向用户返回这些权威信息。 由于镜像属性会影响实例的调度方式以及在 hypervisor 中为其启用的功能,因此这些信息对用户非常有用。
用例¶
作为 VM 的所有者,我希望了解 nova 在调度和构建我的 VM 时使用的镜像属性,即使镜像在 glance 中被更改或删除。
特别是,作为现有 VM 的所有者,我想在嵌入式镜像属性中看到
hw_vtpm_secret_security,以便在我同意此类安全更改之前,我可以观察应用于我的 VM 的默认 vTPM 安全模式。 请参阅 vTPM 实时迁移。作为 VM 的所有者,我想检测管理员是否通过
nova-mange image_property set代表我更改了任何镜像属性。
提议的变更¶
在一个新的 API 微版本中,在 GET /server/details、GET /server/{server_id} 以及 POST /server/{server_id}/action 响应的重建用例中返回嵌入式镜像属性。
实现需要从 instance.system_metadata 中的镜像详细信息缓存中填充 API 响应的这部分。
备选方案¶
为每个依赖于镜像属性的特性实现单独的顶级字段。
数据模型影响¶
没有影响,因为镜像属性已经建模并持久化了。
REST API 影响¶
在一个新的微版本中,以下 API 响应将被扩展
GET /server/detailsGET /server/{server_id}POST /server/{server_id}其中 action 是 rebuild
一个新的 properties 子键将被添加到现有的 image 键下,作为一个字典,其中键和值都遵循模式 ^[a-zA-Z0-9-_:. ]{1,255}$。
新的子键将包含在响应中,并采用这些 API 的当前默认策略,即 PROJECT_READER_OR_ADMIN。
响应示例
{
"servers": [
{
"id": "65fc9d2f-1d02-4bb0-8602-b505252b17f8",
"name": "vm1",
"status": "ACTIVE",
...
"image": {
"id": "197c0527-f0f8-4f94-9ccc-82759bf0dc21",
"links": [
...
],
"properties": {
"hw_machine_type": "pc-q35-8.2",
"hw_vtpm_secret_security": "host",
"hw_tpm_version": "2.0",
"hw_tpm_model": "tpm-crb"
...
},
},
"locked": false,
...
}
]
}
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
没有,系统元数据已经在 API 响应生成时从数据库加载 自微版本 2.73 以来
其他部署者影响¶
无
开发人员影响¶
无
升级影响¶
无
实现¶
负责人¶
- 主要负责人
?
功能联络人¶
- 功能联络人
balazs-gibizer
工作项¶
在一个新的 API 微版本中,扩展 API 响应
依赖项¶
无
测试¶
单元测试
API 示例功能测试
文档影响¶
API 参考
参考资料¶
无
历史¶
发布名称 |
描述 |
|---|---|
2025.1 Epoxy |
引入 |