diff --git a/fedora-kata-osbuilder.sh b/fedora-kata-osbuilder.sh index e614437..0403ee3 100755 --- a/fedora-kata-osbuilder.sh +++ b/fedora-kata-osbuilder.sh @@ -13,6 +13,9 @@ die() [ "$(id -u)" -eq 0 ] || die "$0: must be run as root" +COMMAND="$1" +[ -z "$COMMAND" ] && COMMAND="check" +[ "$COMMAND" != "check" -a "$COMMAND" != "regenerate" ] && die "$0: Unknown command=$COMMAND" IMAGE_TOPDIR="/var/cache/kata-containers" KERNEL_SYMLINK="${IMAGE_TOPDIR}/vmlinuz.container" @@ -29,11 +32,13 @@ done [ -z "$KERNEL_PATH" ] && die "$0: Didn't find kernel path for version=$KVERSION" -LINKED_KERNEL=$(readlink -n "${KERNEL_SYMLINK}" || :) -if [ "${KERNEL_PATH}" = "${LINKED_KERNEL}" ] ; then - echo "$0: symlink=${KERNEL_SYMLINK} already points to host kernel=${KERNEL_PATH}" - echo "$0: Nothing to generate. Exiting." - exit 0 +if [ "regenerate" != "$COMMAND" ]; then + LINKED_KERNEL=$(readlink -n "${KERNEL_SYMLINK}" || :) + if [ "${KERNEL_PATH}" = "${LINKED_KERNEL}" ] ; then + echo "$0: symlink=${KERNEL_SYMLINK} already points to host kernel=${KERNEL_PATH}" + echo "$0: Nothing to generate. Exiting." + exit 0 + fi fi diff --git a/kata-osbuilder-generate.service b/kata-osbuilder-generate.service index 63e1c55..7143e77 100644 --- a/kata-osbuilder-generate.service +++ b/kata-osbuilder-generate.service @@ -4,6 +4,7 @@ Description=Generate Kata appliance image for host kernel [Service] Type=oneshot ExecStart=/usr/libexec/kata-containers/fedora-kata-osbuilder.sh +ExecReload=/usr/libexec/kata-containers/fedora-kata-osbuilder.sh regenerate [Install] WantedBy=multi-user.target diff --git a/kata-osbuilder.spec b/kata-osbuilder.spec index 2f745a0..cd3d2ee 100644 --- a/kata-osbuilder.spec +++ b/kata-osbuilder.spec @@ -148,7 +148,7 @@ install -m 0644 -D -t %{buildroot}%{_unitdir} %{_sourcedir}/kata-osbuilder-gener TMPOUT="$(mktemp -t kata-rpm-post-XXXXXX.log)" echo "Creating kata appliance initrd and filesystem image..." -bash %{kataosbuilderdir}/fedora-kata-osbuilder.sh > ${TMPOUT} 2>&1 +bash %{kataosbuilderdir}/fedora-kata-osbuilder.sh regenerate > ${TMPOUT} 2>&1 if test "$?" != "0" ; then echo "Building failed. See log for details: ${TMPOUT}" exit 1