软件元数据定义

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/glance/+spec/software-metadefs

该规范将提供一个基础的元数据定义库,用于各种常见的软件产品、组件和库,这些软件可能存在于特定的镜像(或卷或实例)中。这些元数据定义将使最终用户和管理员更容易地描述软件及其属性。这些信息将提高并加快用户应用软件元数据、基于软件元数据搜索以及查看镜像软件信息的体验。

为了利用这些元数据,地平线(horizon)正在进行各种改进。例如,用户启动实例时,将能够展开镜像行以查看有关镜像的更多信息。这将包括提供镜像上属性的元数据定义。这些信息也将从镜像和实例详情页面可见。

以下蓝图是关于启动实例的

https://blueprints.launchpad.net/horizon/+spec/launch-instance-redesign

以下屏幕截图模拟图提供了实例详情中的一个示例

https://wiki.openstack.org/w/images/3/37/Instance-details-mock-january-2015.png

以下蓝图是关于实例详情的(请参阅 source 选项卡)

https://blueprints.launchpad.net/horizon/+spec/instance-details-redesign

正在准备更多地平线蓝图,这些蓝图将显示元数据,但首先正在进行协作的 UX 设计。

问题描述

在 Juno 中,引入了元数据定义目录,其主要目的是改善对可以应用于不同资源(如镜像、flavor、host aggregates 和卷)的元数据的协作。Juno 的主要开发重点是当前 OpenStack 中的系统元数据(影响调度和驱动程序行为的属性)。

这些相同资源上的元数据字段也可以用于提供额外的、丰富的描述资源的信息,以便用户理解和搜索。可以利用这些信息来改进实例启动、应用程序目录以及各种其他用户交互点。

当前的方法以及 OpenStack 中提出的方法都需要重复的描述、分类、图像和属性应用于资源的每个实例。

例如,如果多个镜像包含 Apache,那么每个镜像都需要用户输入有关 Apache 的信息,需要他们提供某种类型的分类标签,并且没有任何通用的“模板”式字段用于软件,这些字段可用于分面搜索。

这会导致冗余、拼写错误、不一致性以及无法呈现丰富的 UI 体验。此外,没有一套通用的基础定义可供跨部署共享的软件。

提议的变更

本规范的实施将提供一个基础的元数据定义库,用于各种常见的软件产品、组件和库,这些软件可能存在于特定的镜像(或卷或实例)中。

以下是包含的常用软件示例: * 数据库,如 MySQL、PostgreSQL、Oracle、MongoDB 等。 * Web 服务器,如 Apache、nginx、IIS * 运行时环境,如 php、java、python 等。

实际的提议定义审查过程将允许社区建议包含其他软件或建议删除某些定义。

这些元数据定义将使最终用户和管理员更容易地描述软件及其属性。这些信息将提高并加快用户应用软件元数据、基于软件元数据搜索以及查看镜像软件信息的体验。

glance 客户端 / cli 的用户将能够查找可用的定义,就像他们今天所做的那样。因此,可以用来查找虚拟 CPU 拓扑属性的方法将适用于软件定义

glance --os-image-api-version 2 md-namespace-list

glance --os-image-api-version 2 md-namespace-show OS::Compute::VirtCPUTopology

glance --os-image-api-version 2 md-property-show OS::Compute::VirtCPUTopology cpu_maxsockets

元数据定义将作为 etc/metadefs 目录中的附加 json 文件包含在内,就像现有的示例系统元数据定义一样。

备选方案

随着向系统中添加的每个镜像、工件或其他类型的资源,管理员和用户可能需要负责放置与其它描述一致的良好描述,可能需要尝试记住要添加的所有正确标签,或者可能需要尝试记住要上传的所有相同属性。这会导致冗余、拼写错误、不一致性以及无法呈现丰富的 UI 体验。它也不支持丰富的搜索体验的可预测搜索方面。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

对 glance 客户端没有影响。

地平线(horizon)正在进行工作,以更好地利用这些定义。

性能影响

无。

其他部署者影响

本规范将为部署者提供一套软件元数据定义的基础,类似于为系统元数据定义提供的基础。他们可以选择使用或不使用本规范提供的基础定义。

在 Juno 中,没有提供示例软件定义。要升级,他们需要将这些文件部署到 etc/glance/metadefs,然后调用 glance-manage db_load_metadefs。此调用自动加载尚未加载的新命名空间。

开发人员影响

实现

负责人

主要负责人

travis-tripp

其他贡献者

lakshmi-sampath murali-sundar

评审人员

核心评审人

nikhil-komawar <launchpad-id 或 None>

其他审核员

wayne-okuma murali-sundar

工作项

提供不同类别软件的定义文件。
  • 数据库

  • Web 服务器

  • 运行时环境

  • 更多

依赖项

测试

现有代码确保元数据定义被正确加载。

文档影响

可能更新文档以讨论提供的基础软件定义。

参考资料

https://docs.openstack.org/developer/glance/metadefs-concepts.html