qemu image compatibility fixes

QEMU images created with disk-image-create default to compat=1.1, which
does not work with some public cloud providers (e.g. HP Public Cloud).
Adding a flag to select QEMU Image options and defaulting to
compat=0.10, which works for all QEMU versions > 0.10

Change-Id: I1e5f97b259ca47c432715604a661efc2e11eafce
Closes-Bug: 1453278
This commit is contained in:
Min Pae 2015-05-08 13:58:27 -07:00
parent ed020e4e44
commit e8c24d0e0a
2 changed files with 18 additions and 1 deletions

View File

@ -39,6 +39,9 @@ OAC_DIR=$DEST/os-apply-config
TIE_REPO=${TIE_REPO:-${GIT_BASE}/openstack/tripleo-image-elements.git}
TIE_BRANCH=${TIE_BRANCH:-master}
# QEMU Image Options
DIB_QEMU_IMG_OPTIONS='compat=0.10'
# Functions
# ---------
@ -86,6 +89,11 @@ function disk_image_create_upload {
pypi_mirror_url_1=http://pypi.python.org/simple
fi
QEMU_IMG_OPTION=""
if [ ! -z "${DIB_QEMU_IMG_OPTIONS}" ]; then
QEMU_IMG_OPTION="--qemu-img-options ${DIB_QEMU_IMG_OPTIONS}"
fi
# The disk-image-create command to run
ELEMENTS_PATH=$elements_path \
DIB_APT_SOURCES=$DIB_APT_SOURCES \
@ -94,6 +102,7 @@ function disk_image_create_upload {
PYPI_MIRROR_URL_1=$pypi_mirror_url_1 \
disk-image-create -a amd64 $image_elements ${extra_elements:-} \
--image-cache $DIB_IMAGE_CACHE \
${QEMU_IMG_OPTION} \
-o $image_path
local token=$(keystone token-get | grep ' id ' | get_field 2)

View File

@ -22,6 +22,9 @@ SIZE="2"
ELEMENTS="os-apply-config os-refresh-config ntp hosts cue-rabbitmq-base ifmetric"
ELEMENTS_PATH="$CUE_HOME/contrib/image-elements"
# QEMU Image options
QEMU_IMG_OPTIONS='compat=0.10'
# Install some required apt packages if needed
if ! [ -e /usr/sbin/debootstrap -a -e /usr/bin/qemu-img ]; then
sudo apt-get update
@ -47,6 +50,11 @@ if [ ! -d $BUILD_DIR/dist ]; then
mkdir $BUILD_DIR/dist
fi
# Complete QEMU_IMG_OPTIONS
if [ ! -z "${QEMU_IMG_OPTIONS}" ]; then
QEMU_IMG_OPTIONS="--qemu-img-options ${QEMU_IMG_OPTIONS}"
fi
# Prepare venv for diskimage-builder
virtualenv $BUILD_DIR/diskimage-builder/.venv
@ -56,6 +64,6 @@ virtualenv $BUILD_DIR/diskimage-builder/.venv
pip install -r requirements.txt
python setup.py install
popd
disk-image-create -a amd64 -o $BUILD_DIR/dist/$BUILD_FILE --image-size $SIZE $COMMON_ELEMENTS $ELEMENTS
disk-image-create -a amd64 -o $BUILD_DIR/dist/$BUILD_FILE --image-size $SIZE $QEMU_IMG_OPTIONS $COMMON_ELEMENTS $ELEMENTS
)