[openstack-dev] Request for feedback - Nova image building proof of concept

Daniel P. Berrange berrange at redhat.com
Thu Apr 4 14:19:20 UTC 2013

On Wed, Apr 03, 2013 at 05:10:35PM -0500, Ian McLeod wrote:
> We've put together a simple proof of concept of driving native operating
> system installers using Nova:
> https://github.com/redhat-openstack/image-building-poc
> The python CLI tool in this repo, when combined with the example install
> scripts, can build both glance-backed and cinder-backed JEOS images for
> the following operating systems entirely inside of Nova:
> Fedora 17, 18
> Ubuntu 10.04, 12.04, 12.10
> RHEL 5.9, 6.4
> These builds can be done using network install sources and, in some
> limited cases, DVD/ISO install sources.  Full details can be found in
> the README.md file on github.
> Some background discussion about this approach from earlier this year
> can be found here:
> https://wiki.openstack.org/wiki/NovaImageBuilding
> The code is a bit rough around the edges but we believe the approach has
> promise and can form the basis for a proper image building service
> native to OpenStack.
> I'd be grateful if anyone who's interested in the problem of image
> building could have a look at this, give it a try and share
> thoughts/feedback.
> It's been developed against the packstack Folsom release but has had
> some limited testing against devstack Grizzly installs.  Building glance
> backed images may well be possible in earlier releases.
> Some specific additional things I'd like to work on are:
> * Expanding the collection of example kickstart/preseed files
> * Adding the ability to pull kickstart/preseed files from libosinfo
> * Adding support for installers beyond Ubuntu and Anaconda - I have
> taken an early look at Yast but have yet to wrap my brain around the
> bootstrap process.

IMHO the tool should not contain any kickstart files at all, nor
explicit support for different installers. The main goal of libosinfo
is to enable the creation of applications like this, without needing
to have any OS specific code what-so-ever. All the OS specific info
ought to be isolated in the libosinfo database, so that all code is
purely metadata driven. In other words once the basic tool is created
to use libosinfo, there should be now coding work required to support
any other OS distros. Simply dropping in a suitable data file to the
libosinfo data is all that should be requried for ongoing support.

It may be that you find cases where libosinfo isn't providing enough
metadata to avoid OS-specific python code, but that should be fairly
rare, since the GNOME Boxes app developers have already done alot of
work to ensure libosinfo is covering all bases.

|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

More information about the OpenStack-dev mailing list