Jump to: navigation, search

Difference between revisions of "Glance-common-image-properties"

 
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{ImplementedFeature}}
 +
This is the full specification for blueprint: https://blueprints.launchpad.net/glance/+spec/glance-common-image-properties
 +
 
 
= Additional common image properties =
 
= Additional common image properties =
  
In order to make images more easily searchable in different openstack installations, it would be useful to add some common properties identifying operating system characteristics to Glance images.
+
We propose adding three properties to Glance images that identify operating system characteristics: `os_arch`, `os_distro`, `os_version`.  Descriptions of each follow.  For more context, see the email thread on this topic [1].
 
 
We propose adding four properties: `os_arch`, `os_distro`, `os_version`, `os_nick`.  Descriptions of each follow.  For more context, see the email thread on this topic [1].
 
  
 
== Property: os_arch ==
 
== Property: os_arch ==
Line 24: Line 24:
  
 
<pre><nowiki>
 
<pre><nowiki>
     "os_arch": "x86_64"
+
     "os_arch": "x86-64"
 
</nowiki></pre>
 
</nowiki></pre>
  
Line 30: Line 30:
 
Standardized values will aid in searching for an appropriate image. I propose that we keep a list of suggested values on a web page similar to the image statuses page [2].  This could be as loosely moderated as a wiki page or it could have some kind of clearly stated submission procedure for new os_arch values.  I think usage would be self-policing, i.e., if you want your images to be found, you'd want to use the community's terms for the architecture.
 
Standardized values will aid in searching for an appropriate image. I propose that we keep a list of suggested values on a web page similar to the image statuses page [2].  This could be as loosely moderated as a wiki page or it could have some kind of clearly stated submission procedure for new os_arch values.  I think usage would be self-policing, i.e., if you want your images to be found, you'd want to use the community's terms for the architecture.
  
 +
See [4] for an example version of the standardized values page.
 +
----
 
== Property: os_distro ==
 
== Property: os_distro ==
 
JSONSchema of proposed property in Image Schema:
 
JSONSchema of proposed property in Image Schema:
Line 54: Line 56:
 
Standardized values will aid in searching for an appropriate image.
 
Standardized values will aid in searching for an appropriate image.
 
Same idea as the `os_arch` proposal, though this would probably change much
 
Same idea as the `os_arch` proposal, though this would probably change much
faster.  The page would outline the basic rule (e.g., "Common nuame of the
+
faster.  The page would outline the basic rule (e.g., "Common name of the
 
operating system distribution in all-lowercase") and provide a list of names
 
operating system distribution in all-lowercase") and provide a list of names
 
to use.  (If we want to be developer-friendly, we could have associated with
 
to use.  (If we want to be developer-friendly, we could have associated with
Line 60: Line 62:
 
for the proper value.)
 
for the proper value.)
  
 +
See [5] for an example version of the standardized values page.
 +
----
 
== Property: os_version ==
 
== Property: os_version ==
 
JSONSchema of proposed property in Image Schema
 
JSONSchema of proposed property in Image Schema
Line 83: Line 87:
 
=== Discussion ===
 
=== Discussion ===
 
Previous discussion [3] mentioned standardizing this field, but the values are controlled by the operating system vendors.  It makes sorting tricky, but this this would be a secondary sort field anyway.
 
Previous discussion [3] mentioned standardizing this field, but the values are controlled by the operating system vendors.  It makes sorting tricky, but this this would be a secondary sort field anyway.
 +
----
 +
 +
= Use Cases =
 +
* List all available Ubuntu Linux images
 +
 +
<pre><nowiki>
 +
GET /v2/images?os_distro=ubuntu
 +
</nowiki></pre>
  
== Property: os_nick ==
+
* List all available 64-bit SUSE Linux images
JSONSchema of proposed property in Image Schema:
 
  
 
<pre><nowiki>
 
<pre><nowiki>
{
+
GET /v2/images?os_distro=opensuse&os_arch=x86-64
  "os_nick":
 
  {
 
    "type": "string",
 
    "required": false,
 
    "default": null,
 
    "description": "Operating system release nickname as specified by the distributor",
 
  }
 
}
 
 
</nowiki></pre>
 
</nowiki></pre>
  
=== Example usage ===
+
* List all available 64-bit CentOS 6.2 Linux images
  
 
<pre><nowiki>
 
<pre><nowiki>
  "os_nick": "Oneiric Oncelot"
+
GET /v2/images?os_distro=centos&os_arch=x86-64&os_version=6.2
 
</nowiki></pre>
 
</nowiki></pre>
  
=== Discussion ===
 
This could assist searching.
 
  
== References ==
+
----
 +
= References =
  
 
* [1] http://markmail.org/message/zjbcg2kkmpbhfrj3
 
* [1] http://markmail.org/message/zjbcg2kkmpbhfrj3
 
* [2] http://docs.openstack.org/developer/glance/statuses.html
 
* [2] http://docs.openstack.org/developer/glance/statuses.html
 
* [3] http://wiki.openstack.org/CommonImageProperties
 
* [3] http://wiki.openstack.org/CommonImageProperties
 +
* [4] http://wiki.openstack.org/glance-common-image-properties-os_arch
 +
* [5] http://wiki.openstack.org/glance-common-image-properties-os_distro

Latest revision as of 15:47, 30 September 2013

Warning.svg Old Design Page

This page was used to help design a feature that has been implemented. As a result, this page is unlikely to be updated and could contain outdated information. It was last updated on 2013-09-30

This is the full specification for blueprint: https://blueprints.launchpad.net/glance/+spec/glance-common-image-properties

Additional common image properties

We propose adding three properties to Glance images that identify operating system characteristics: `os_arch`, `os_distro`, `os_version`. Descriptions of each follow. For more context, see the email thread on this topic [1].

Property: os_arch

JSONSchema of proposed property in Image Schema:

{
  "os_arch":
  {
     "type": "string",
     "required": false,
     "default": null,
     "description": "Operating system architecture as specified in http://docs.openstack.org/developer/glance/image_properties/os_arch",
  }
}

Example usage

    "os_arch": "x86-64"

Discussion

Standardized values will aid in searching for an appropriate image. I propose that we keep a list of suggested values on a web page similar to the image statuses page [2]. This could be as loosely moderated as a wiki page or it could have some kind of clearly stated submission procedure for new os_arch values. I think usage would be self-policing, i.e., if you want your images to be found, you'd want to use the community's terms for the architecture.

See [4] for an example version of the standardized values page.


Property: os_distro

JSONSchema of proposed property in Image Schema:

{
  "os_distro":
  {
     "type": "string",
     "required": false,
     "default": null,
     "description": "Common name of operating system distribution as specified in http://docs.openstack.org/developer/glance/image_properties/os_distro",
  }
}

Example usage

  "os_distro": "debian"

Discussion

Standardized values will aid in searching for an appropriate image. Same idea as the `os_arch` proposal, though this would probably change much faster. The page would outline the basic rule (e.g., "Common name of the operating system distribution in all-lowercase") and provide a list of names to use. (If we want to be developer-friendly, we could have associated with each approved name a list of un-approved variants to make it easier to search for the proper value.)

See [5] for an example version of the standardized values page.


Property: os_version

JSONSchema of proposed property in Image Schema

{
  "os_version":
  {
     "type": "string",
     "required": false,
     "default": null,
     "description": "Operating system version as specified by the distributor",
  }
}

Example usage

  "os_version": "11.10"

Discussion

Previous discussion [3] mentioned standardizing this field, but the values are controlled by the operating system vendors. It makes sorting tricky, but this this would be a secondary sort field anyway.


Use Cases

  • List all available Ubuntu Linux images
GET /v2/images?os_distro=ubuntu
  • List all available 64-bit SUSE Linux images
GET /v2/images?os_distro=opensuse&os_arch=x86-64
  • List all available 64-bit CentOS 6.2 Linux images
GET /v2/images?os_distro=centos&os_arch=x86-64&os_version=6.2



References