Software Metadata Definitions
The spec will provide a base library of metadata definitions for various common software products, components, and libraries that may exist on particular image (or volume or instance). These metadata definitions will make it easier for end users and admins to easily describe the software and its properties. This information will enable an improved and faster user experience for applying software metadata, searching based on software metadata, and viewing the software information about an image. Various improvements in horizon are underway to take advantage of this metadata. For example, a user launching an instance will be able to expand the image row to see additional information about the image. This will include providing the metadata definition for properties on the image. This same information will also be visible from the image and instance details page. Implements: blueprint software-metadefs Change-Id: I70c13d1c903ef4b447eaaeb4c3af40a4cbfb3c71
This commit is contained in:
parent
224ade269d
commit
505573a345
225
specs/kilo/software-metadefs.rst
Normal file
225
specs/kilo/software-metadefs.rst
Normal file
@ -0,0 +1,225 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
==========================================
|
||||
Software Metadata Definitions
|
||||
==========================================
|
||||
|
||||
Include the URL of your launchpad blueprint:
|
||||
|
||||
https://blueprints.launchpad.net/glance/+spec/software-metadefs
|
||||
|
||||
The spec will provide a base library of metadata definitions for various
|
||||
common software products, components, and libraries that may exist on
|
||||
particular image (or volume or instance). These metadata definitions will
|
||||
make it easier for end users and admins to easily describe the software and
|
||||
its properties. This information will enable an improved and faster user
|
||||
experience for applying software metadata, searching based on software
|
||||
metadata, and viewing the software information about an image.
|
||||
|
||||
Various improvements in horizon are underway to take advantage of this
|
||||
metadata. For example, a user launching an instance will be able to expand
|
||||
the image row to see addition information about the image. This will include
|
||||
providing the metadata definition for properties on the image. This same
|
||||
information will also be visible from the image and instance details page.
|
||||
|
||||
The following blueprint is for launch instance:
|
||||
|
||||
https://blueprints.launchpad.net/horizon/+spec/launch-instance-redesign
|
||||
|
||||
The following screenshot mockup provides an example from the instance details:
|
||||
|
||||
https://wiki.openstack.org/w/images/3/37/Instance-details-mock-january-2015.png
|
||||
|
||||
The following blueprint is for instance details (see source tab):
|
||||
|
||||
https://blueprints.launchpad.net/horizon/+spec/instance-details-redesign
|
||||
|
||||
Additional horizon blueprints are being prepared that will display metadata,
|
||||
but are still undergoing collaborative UX design first.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
In Juno, the metadata definitions catalog was introduced with a primary
|
||||
intent to improve collaboration on the metadata that can be applied to
|
||||
different resources such as images, flavors, host aggregates,
|
||||
and volumes. The primary development focus in Juno was on what is currently
|
||||
system metadata in OpenStack (properties that affect scheduling and driver
|
||||
behavior).
|
||||
|
||||
The metadata fields on these same resources can also be used to provide
|
||||
additional, rich information that describes the resource for user
|
||||
understanding and search. This information can be leveraged to improve
|
||||
instance launching, application catalogs, and a variety of other user
|
||||
interaction points.
|
||||
|
||||
Current methodologies present and proposed in OpenStack require repetitive
|
||||
descriptions, categorization, imagery, and attributes to be applied on each
|
||||
instance of a resource.
|
||||
|
||||
For example, if multiple images contain Apache then each image will require
|
||||
the user to type in information about Apache, will require them to provide
|
||||
some sort of categorization tag, and will not have any common "template" like
|
||||
fields for the software which can be used for faceted search.
|
||||
|
||||
This leads to redundancy, spelling mistakes, inconsistency as well as a
|
||||
general lack of ability to present a rich UI experience. In addition,
|
||||
there is no common set of base definitions for software that can be shared
|
||||
across deployments.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The implementation of this spec will provide a base library of metadata
|
||||
definitions for various common software products, components,
|
||||
and libraries that may exist on particular image (or volume or instance).
|
||||
|
||||
The following are examples of the type of commonly used software that will
|
||||
be included:
|
||||
* Databases such as MySQL, PostgreSQL, Oracle, MongoDB, etc.
|
||||
* Web servers such as Apache, nginx, IIS
|
||||
* Runtimes like php, java, python, etc.
|
||||
|
||||
The review process of the actual proposed definitions will allow for the
|
||||
community to suggest additional software to include or to suggest removing
|
||||
certain definitions.
|
||||
|
||||
These metadata definitions will make it easier for end users and admins to
|
||||
easily describe the software and its properties. This information will
|
||||
enable an improved and faster user experience for applying software
|
||||
metadata, searching based on software metadata, and viewing the software
|
||||
information about an image.
|
||||
|
||||
Users of the glance client / cli will be able to lookup the available
|
||||
definitions just like they do today. So the below methodology that can be
|
||||
done to look up something like virtual CPU topology properties will work for
|
||||
the software definitions::
|
||||
|
||||
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
|
||||
|
||||
The metadata definitions will be included as additional json files in the
|
||||
etc/metadefs directory just like the existing example system metadata
|
||||
definitions.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
As every single image, artifact, or other type of resource is added to the
|
||||
system, the admin and users could be responsible for putting a good description
|
||||
that is consistent with other descriptions, could try to remember all the
|
||||
right tags to add, or could try to remember all the same properties to
|
||||
upload to it. This leads to redundancy, spelling mistakes,
|
||||
inconsistency as well as a general lack of ability to present a rich UI
|
||||
experience. It also doesn't enable predictable search facets for rich search
|
||||
experience.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
No impacts glance client.
|
||||
|
||||
Work is being done in horizon to take better advantage of these definitions.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
This spec will provide deployers with a base set of metadata definitions for
|
||||
software similar to what they are provided for system metadata definitions.
|
||||
They can choose to either use or not use the base definitions provided in this
|
||||
spec.
|
||||
|
||||
In Juno, example software definitions were not provided. To upgrade,
|
||||
they will need to deploy these files to etc/glance/metadefs and then call
|
||||
glance-manage db_load_metadefs. This call automatically loads new namespaces
|
||||
that aren't already loaded.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
travis-tripp
|
||||
|
||||
Other contributors:
|
||||
lakshmi-sampath
|
||||
murali-sundar
|
||||
|
||||
Reviewers
|
||||
---------
|
||||
|
||||
Core reviewer(s):
|
||||
nikhil-komawar
|
||||
<launchpad-id or None>
|
||||
|
||||
Other reviewer(s):
|
||||
wayne-okuma
|
||||
murali-sundar
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
Provide definition files for different categories of software.
|
||||
- Databases
|
||||
- Web servers
|
||||
- Runtime environments
|
||||
- More
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Existing code ensures that metadata definitions are loaded properly.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Possibly update docs to talk about the base software definitions provided.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
http://docs.openstack.org/developer/glance/metadefs-concepts.html
|
Loading…
Reference in New Issue
Block a user