Image building tools for OpenStack
Go to file
Ian Wienand 6c394f5746 Pass all blockdevices to bootloader
Currently we only export "image-block-device" which is the loopback
device (/dev/loopX) for the underlying image.  This is the device we
install grub to (from inside the chroot ...)

This is ok for x86, but is insufficient for some platforms like PPC
which have a separate boot partition.  They do not want to install to
the loop device, but do things like dd special ELF files into special
boot partitions.

The first problem seems to be that in level1/partitioning.py we have a
whole bunch of different paths that either call partprobe on the loop
device, or kpartx.  We have _all_part_devices_exist() that gates the
kpartx for unknown reasons.  We have detach_loopback() that does not
seem to remove losetup created devices.  I don't think this does
cleanup if it uses kpartx correctly.  It is extremley unclear what's
going to be mapped where.

This moves to us *only* using kpartx to map the partitions of the loop
device.  We will *not* call partprobe and create the /dev/loopXpN
devices and will only have the devicemapper nodes kpartx creates.
This seems to be best.  Cleanup happens inside partitioning.py.
practice.  Deeper thinking about this, and more cleanup of the
variables will be welcome.

This adds "image-block-devices" (note the extra "s") which exports all
the block devices with name and path.  This is in a string format that
can be eval'd to an array (you can't export arrays).

This is then used in a follow-on
(I0918e8df8797d6dbabf7af618989ab7f79ee9580) to pick the right
partition on PPC.

Change-Id: If8e33106b4104da2d56d7941ce96ffcb014907bc
2017-06-08 17:14:22 +10:00
bin Allow ELEMENTS_DIR to be configurable 2017-03-14 09:57:10 -06:00
diskimage_builder Pass all blockdevices to bootloader 2017-06-08 17:14:22 +10:00
doc Remove ccache 2017-05-31 08:28:09 +10:00
releasenotes Remove dracut-network element 2017-05-31 08:36:56 +10:00
tests Add a keep-output flag for functional tests 2017-06-07 11:47:12 +10:00
.gitignore Use sphinx warning-is-error 2017-03-14 14:49:49 +11:00
.gitreview Update stackforge references to openstack 2013-08-17 22:58:26 -04:00
.testr.conf Fix coverage report 2017-01-18 16:14:01 +11:00
babel.cfg Make it possible for openstack-CI to run tests 2013-02-04 22:26:17 -08:00
bindep.txt Use https in docs links 2017-06-05 22:54:23 +07:00
LICENSE Fix copyrights for HP work. 2012-11-15 16:20:32 +13:00
pylint.cfg Refactor: use lazy logging 2017-05-30 14:39:58 +10:00
README.rst Use https in docs links 2017-06-05 22:54:23 +07:00
requirements.txt Use networkx for digraph 2017-05-26 11:42:10 +10:00
setup.cfg Use https in docs links 2017-06-05 22:54:23 +07:00
setup.py Updated from global requirements 2017-03-13 19:30:19 +00:00
test-requirements.txt Updated from global requirements 2017-06-06 12:13:28 +00:00
tox.ini Add env var to dump config graph 2017-06-08 05:04:58 +00:00

Image building tools for OpenStack

diskimage-builder is a flexible suite of components for building a wide-range of disk images, filesystem images and ramdisk images for use with OpenStack.

This repository has the core functionality for building such images, both virtual and bare metal. Images are composed using elements; while fundamental elements are provided here, individual projects have the flexibility to customise the image build with their own elements.

For example:

$ DIB_RELEASE=trusty disk-image-create -o ubuntu-trusty.qcow2 vm ubuntu

will create a bootable Ubuntu Trusty based qcow2 image.

diskimage-builder is useful to anyone looking to produce customised images for deployment into clouds. These tools are the components of TripleO that are responsible for building disk images. They are also used extensively to build images for testing OpenStack itself, particularly with nodepool. Platforms supported include Ubuntu, CentOS, RHEL and Fedora.

Full documentation, the source of which is in doc/source/, is published at:

Copyright

Copyright 2012 Hewlett-Packard Development Company, L.P. Copyright (c) 2012 NTT DOCOMO, INC.

All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.