devtest_overcloud_images
========================
Build images with environment variables. This script works best
when using tripleo-image-elements for Overcloud configuration.

#. Undercloud UI needs SNMPd for monitoring of every Overcloud node
   ::

        if [ "$USE_UNDERCLOUD_UI" -ne 0 ] ; then
            OVERCLOUD_CONTROL_DIB_EXTRA_ARGS="$OVERCLOUD_CONTROL_DIB_EXTRA_ARGS snmpd"
            OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS="$OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS snmpd"
            OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS="$OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS snmpd"
        fi

#. Create your overcloud control plane image.

   ``$OVERCLOUD_*_DIB_EXTRA_ARGS`` (CONTROL, COMPUTE, BLOCKSTORAGE) are
   meant to be used to pass additional build-time specific arguments to
   ``disk-image-create``.

   ``$SSL_ELEMENT`` is used when building a cloud with SSL endpoints - it should be
   set to openstack-ssl in that situation.
   ::

        if [ ! -e $TRIPLEO_ROOT/overcloud-control.qcow2 -o "$USE_CACHE" == "0" ] ; then
            $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
                -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-control \
                $OVERCLOUD_CONTROL_DIB_ELEMENTS \
                $DIB_COMMON_ELEMENTS $OVERCLOUD_CONTROL_DIB_EXTRA_ARGS ${SSL_ELEMENT:-} 2>&1 | \
                tee $TRIPLEO_ROOT/dib-overcloud-control.log
        fi

#. Create your block storage image if some block storage nodes are to be used. This
   is the image the undercloud deploys for the additional cinder-volume nodes.
   ::

        if [ ${OVERCLOUD_BLOCKSTORAGESCALE:-0} -gt 0 ]; then
            if [ ! -e $TRIPLEO_ROOT/overcloud-cinder-volume.qcow2 -o "$USE_CACHE" == "0" ]; then
                $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
                    -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-cinder-volume \
                    $OVERCLOUD_BLOCKSTORAGE_DIB_ELEMENTS $DIB_COMMON_ELEMENTS \
                    $OVERCLOUD_BLOCKSTORAGE_DIB_EXTRA_ARGS 2>&1 | \
                    tee $TRIPLEO_ROOT/dib-overcloud-cinder-volume.log
            fi
        fi

   If enabling distributed virtual routing for Neutron on the overcloud the compute node
   must have the ``neutron-router`` element installed.
   ::

        OVERCLOUD_DISTRIBUTED_ROUTERS=${OVERCLOUD_DISTRIBUTED_ROUTERS:-'False'}
        OVERCLOUD_L3=${OVERCLOUD_L3:-'relocate'}
        if [ $OVERCLOUD_DISTRIBUTED_ROUTERS == "True" -o $OVERCLOUD_L3 == "dvr"  ]; then
            OVERCLOUD_COMPUTE_DIB_ELEMENTS="$OVERCLOUD_COMPUTE_DIB_ELEMENTS neutron-router"
        fi

#. Create your overcloud compute image. This is the image the undercloud
   deploys to host the overcloud Nova compute hypervisor components.
   ::

        if [ ! -e $TRIPLEO_ROOT/overcloud-compute.qcow2 -o "$USE_CACHE" == "0" ]; then
            $TRIPLEO_ROOT/diskimage-builder/bin/disk-image-create $NODE_DIST \
                -a $NODE_ARCH -o $TRIPLEO_ROOT/overcloud-compute \
                $OVERCLOUD_COMPUTE_DIB_ELEMENTS $DIB_COMMON_ELEMENTS \
                $OVERCLOUD_COMPUTE_DIB_EXTRA_ARGS 2>&1 | \
                tee $TRIPLEO_ROOT/dib-overcloud-compute.log
        fi
