← Back to team overview

openstack team mailing list archive

Re: Agreeing a common set of Image Properties

 

Looks like Pádraig and I were thinking alike.
On Apr 7, 2012 8:49 PM, "Pádraig Brady" <P@xxxxxxxxxxxxxx> wrote:

> On 04/07/2012 11:13 PM, Justin Santa Barbara wrote:
> > Is there a (de-facto) standard for image metadata/properties?  I'd like
> to be able to able to launch e.g. the Debian Squeeze image provided by the
> cloud.  This is particularly important for clouds that don't allow image
> upload, but likely this will remain useful because different clouds will
> have different tweaks needed (e.g installing the right drivers based on the
> hypervisor).
> >
> > I could try "smart"-parsing the names, but it seems like metadata is the
> right way to do this, and I see no reason why any cloud would gain any
> advantage from not adopting a common convention.  I know some clouds have
> started implementing their own approaches, but I don't believe anyone is
> locked into anything.
> >
> > In the interest of efficiency, I'm going to make a proposal for people
> to attack:
> >
> > 3 main pieces of metadata: os:distro, os:version_major, os:version_minor
> >
> > I'm thinking of the os prefix as standing for OpenStack, not Operating
> System.  I'd like to 'reserve' the os prefix for 'agreed' prefixes.  Maybe
> this should be openstack.org:distro ?
> >
> > os:distro would be the primary domain name of the distro, i.e.
> redhat.com <http://redhat.com>, ubuntu.com <http://ubuntu.com>, debian.org<
> http://debian.org>, centos.org <http://centos.org> etc
> >
> > os:version_major would be the major version of the release:
> > debian.org <http://debian.org>: 6.0, 5.0, 4.0, 3.1, 3.0, 2.2, 2.1, 2.0
> > ubuntu.com <http://ubuntu.com>: 10.04, 10.10, 11.04, 11.10, 12.04
> >
> > Numbers seem more machine-friendly than codenames - 6.0, not squeeze -
> humans will probably use the image names.
> >
> > os:version_minor would be the minor version of the release (because it's
> a minor revision, hopefully we shouldn't normally have to check this,
> although we might want to select the latest always).
> >
> > So os:distro="debian.org <http://debian.org>" os:version_major "6.0"
> os:version_minor "3" would be an image of debian 6.0.3.
> >
> > Questions / ideas for other properties:
> >
> >   * Some clouds will automatically respin images e.g. weekly with the
> latest updates.  This could also be exposed through metadata.
>  os:updated_through= "20120301" ?
> >   * Some clouds will offer only bare images, some will provide a variety
> e.g. bare, LAMP, Hadoop, etc.  Should we use the native package names to
> indicate additional packages?  e.g. os:packages="apache2,mysql,php5" ?
> >
> > As a (programmatic) consumer of these images, my wishlist:
> >
> >   * A cloud will have to put on whatever drivers / agents they need to,
> but ideally these should otherwise be clean images, with minimal deviation
> from the stock install.  (Or 'clean' images should be available alongside
> other images)  It would be great if I could be launch a 'clean' image on
> any OpenStack cloud and have it behave more or less the same; I shouldn't
> have to second guess any additional tweaks.
> >   * I would like to be able to launch the clean image and install
> updates myself, in case I don't want a particular update.  Providing a fast
> apt cache is much better than providing respun images, for my use-case.  I
> would be great if old images stuck around, therefore!
> >
>
> This overlaps a lot with the output from the virt-inspector component of
> libguestfs,
> which might help solidify ideas:
>
> $ virt-inspector /var/lib/libvirt/images/rh63.img
>
> <operatingsystems>
>  <operatingsystem>
>    <root>/dev/VolGroup/lv_root</root>
>    <name>linux</name>
>    <arch>x86_64</arch>
>    <distro>rhel</distro>
>    <product_name>Red Hat Enterprise Linux Workstation release 6.3 Beta
> (Santiago)</product_name>
>    <major_version>6</major_version>
>    <minor_version>3</minor_version>
>    <package_format>rpm</package_format>
>    <package_management>yum</package_management>
>    <hostname>localhost.localdomain</hostname>
>    <format>installed</format>
>    ...
>    <applications>
>      ...
>      <application>
>        <name>coreutils</name>
>        <version>8.4</version>
>        <release>18</release>
>      </application>
>      ...
>
> Note that it doesn't have an "updated_through" element, but that would be
> fairly
> amorphous anyway given the combinations possible through updates.
>
> cheers,
> Pádraig.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>

Follow ups

References