增强基于 Glance 元数据的 Heat 编排¶
bp glance-heat-metadata-enhancements <https://blueprints.launchpad.net/heat/+spec/glance-heat-metadata-enhancements>_
此蓝图扩展了 Heat 的编排能力,使其包含用户定义的键/值对。可以将此蓝图视为蓝图 heat-glance-image-tag-support <https://blueprints.launchpad.net/heat/+spec/heat-glance-image-tag-support>_ 的扩展。
问题描述¶
虽然 Heat 当前编排许多 Glance 镜像属性,但其支持并不完整。具体来说,Glance 在上传时添加键/值属性到镜像的功能并未暴露给 HOT 作者。这些属性可能被其他 OpenStack 组件和与 Glance 交互的驱动程序使用,并且对于操作员了解镜像本身也很有用。
提议的变更¶
修改 OS::Glance::Image 以允许用户定义的键/值。将向属性模式添加以下条目
PROPERTY: properties.Schema(
properties.Schema.MAP,
_('Arbitrary properties to associate with the image.'),
update_allowed=True,
default={}
)
由于此蓝图旨在暴露 Glance 的 –property 标志,因此上述模式条目向模板作者提供 property: {key1: value1, key2: value2, …} 的形式。
备选方案¶
希望应用当前不受支持的元数据的用户需要在堆栈部署后进行操作。
实现¶
在 heat/engine/resources/openstack/glance/image.py 中,需要修改 PROPERTIES 和 properties_schema 变量以处理键/值对。特别是,这些键/值将作为属性模式映射实现。handle_create() 方法也将扩展,以通过 client.images.update 将 metadata 映射传递给 Glance 客户端。还将实现 handle_update() 方法,以避免潜在地重新创建大型镜像的代价。
负责人¶
- 主要负责人
Jaime Guerrero, <jg3755@att.com, jaimguer>
- 其他贡献者
Rusty Eddy, <ge363p@att.com>
里程碑¶
newton-2
工作项¶
修改 PROPERTIES 变量
修改 properties_schema
修改 handle_create()
实现 handle_update()
编写支持的 Glance 和用户定义元数据的测试
依赖项¶
由于 Heat 正在迁移到 Glance API v2,因此此蓝图的实现将针对该 API 的特定切换。Heat 代码将在预期 Glance v2 支持的功能方面进行修改。Heat 迁移到 Glance v2 的蓝图可以在 migrate-to-glance-v2 <https://blueprints.launchpad.net/heat/+spec/migrate-to-glance-v2>_ 找到。
实现将遵循 heat-glance-image-tag-support <https://blueprints.launchpad.net/heat/+spec/heat-glance-image-tag-support>_ 的风格。
有关 Glance 镜像元数据功能的更多信息,请参阅 Image metadata <https://docs.openstack.org/image-guide/image-metadata.html>_。