diff --git a/bin/disk-image-create b/bin/disk-image-create index 3a913b27..acb50492 100755 --- a/bin/disk-image-create +++ b/bin/disk-image-create @@ -450,9 +450,9 @@ for X in ${!IMAGE_TYPES[@]} ; do fi done -if [[ ! $IMAGE_ELEMENT =~ ironic-agent ]]; then - # Prep filesystem by discarding all unused space - fstrim_image +if [[ ! $IMAGE_ELEMENT =~ no-final-image ]]; then + # Prep filesystem by discarding all unused space + fstrim_image fi # Unmount and cleanup the /mnt and /build subdirectories, to save @@ -460,8 +460,8 @@ fi unmount_image cleanup_build_dir -has_raw_type= -if [[ ! $IMAGE_ELEMENT =~ ironic-agent && "$IS_RAMDISK" == "0" ]]; then +if [[ (! $IMAGE_ELEMENT =~ no-final-image) && "$IS_RAMDISK" == "0" ]]; then + has_raw_type= for IMAGE_TYPE in ${IMAGE_TYPES[@]} ; do # We have to do raw last because it is destructive if [ "$IMAGE_TYPE" = "raw" ]; then @@ -470,10 +470,10 @@ if [[ ! $IMAGE_ELEMENT =~ ironic-agent && "$IS_RAMDISK" == "0" ]]; then compress_and_save_image $IMAGE_NAME.$IMAGE_TYPE fi done -fi -if [ -n "$has_raw_type" ]; then - IMAGE_TYPE="raw" - compress_and_save_image $IMAGE_NAME.$IMAGE_TYPE + if [ -n "$has_raw_type" ]; then + IMAGE_TYPE="raw" + compress_and_save_image $IMAGE_NAME.$IMAGE_TYPE + fi fi # Remove the leftovers, i.e. the temporary image directory. diff --git a/elements/ironic-agent/element-deps b/elements/ironic-agent/element-deps index ee8155c4..27cda407 100644 --- a/elements/ironic-agent/element-deps +++ b/elements/ironic-agent/element-deps @@ -1,4 +1,5 @@ dhcp-all-interfaces +no-final-image package-installs pip-and-virtualenv pkg-map diff --git a/elements/no-final-image/README.rst b/elements/no-final-image/README.rst new file mode 100644 index 00000000..737dc1e8 --- /dev/null +++ b/elements/no-final-image/README.rst @@ -0,0 +1,13 @@ +============== +no-final-image +============== + +This is a noop element which can be used to indicate to diskimage-builder that +it should not bother creating a final image out of the generated filesystem. +It is useful in cases where an element handles all of the image building +itself, such as ironic-agent or Docker images. In those cases the final image +normally generated by diskimage-builder is not the desired output, so there's +no reason to spend time creating it. + +Elements that wish to behave this way should include this element in their +element-deps file.