From 1bbf1e41063f0d301f213813847cd150b60bdafd Mon Sep 17 00:00:00 2001 From: Jose Carlos Venegas Munoz Date: Fri, 23 Nov 2018 11:32:42 -0600 Subject: [PATCH] rootfs: Allow use host repositories. Instead of create a dnf repository allow the config from the host. Signed-off-by: Jose Carlos Venegas Munoz --- rootfs-builder/rootfs.sh | 8 ++++++++ scripts/lib.sh | 13 ++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/rootfs-builder/rootfs.sh b/rootfs-builder/rootfs.sh index 04def902be..cb2f7dd7da 100755 --- a/rootfs-builder/rootfs.sh +++ b/rootfs-builder/rootfs.sh @@ -78,6 +78,9 @@ AGENT_SOURCE_BIN Path to the directory of agent binary. If set, use the binary as agent but not build agent package. Default value: +DISTRO_REPO Use host repositories to install guest packages. + Default value: + GO_AGENT_PKG URL of the Git repository hosting the agent package. Default value: ${GO_AGENT_PKG} @@ -356,6 +359,11 @@ fi mkdir -p ${ROOTFS_DIR} build_rootfs ${ROOTFS_DIR} +pushd "${ROOTFS_DIR}" >> /dev/null +if [ "$PWD" != "/" ] ; then + rm -rf ./var/cache/dnf/ +fi +popd >> /dev/null [ -n "${KERNEL_MODULES_DIR}" ] && copy_kernel_modules ${KERNEL_MODULES_DIR} ${ROOTFS_DIR} diff --git a/scripts/lib.sh b/scripts/lib.sh index ca7f500016..d725a77515 100644 --- a/scripts/lib.sh +++ b/scripts/lib.sh @@ -47,7 +47,7 @@ check_root() generate_dnf_config() { REPO_NAME=${REPO_NAME:-"base"} - CACHE_DIR=${CACHE_DIR:-"/var/cache/dnf-${OS_NAME}"} + CACHE_DIR=${CACHE_DIR:-"/var/cache/dnf"} cat > "${DNF_CONF}" << EOF [main] cachedir=${CACHE_DIR} @@ -118,7 +118,7 @@ build_rootfs() #local CONFIG_DIR=${CONFIG_DIR} check_root - if [ ! -f "${DNF_CONF}" ]; then + if [ ! -f "${DNF_CONF}" ] && [ -z "${DISTRO_REPO}" ] ; then DNF_CONF="./kata-${OS_NAME}-dnf.conf" generate_dnf_config fi @@ -133,10 +133,13 @@ build_rootfs() die "neither yum nor dnf is installed" fi - DNF="${PKG_MANAGER} --config=$DNF_CONF -y --installroot=${ROOTFS_DIR} --noplugins" + DNF="${PKG_MANAGER} -y --installroot=${ROOTFS_DIR} --noplugins" + if [ -n "${DNF_CONF}" ] ; then + DNF="${DNF} --config=${DNF_CONF}" + else + DNF="${DNF} --releasever=${OS_VERSION}" + fi $DNF install ${EXTRA_PKGS} ${PACKAGES} - - [ -n "${ROOTFS_DIR}" ] && rm -r "${ROOTFS_DIR}${CACHE_DIR}" } # Create a YAML metadata file inside the rootfs.