From f55dce43dae3f9443511c413245a855ddb2ea2e1 Mon Sep 17 00:00:00 2001 From: Nicolas Richart <nicolas.richart@epfl.ch> Date: Sat, 20 Jul 2024 00:49:50 +0200 Subject: [PATCH] overlayfs did not work moved things to squashfuse --- .gitlab-ci.yml | 4 ++-- ci/apptainer_by_hand.sh | 6 +++--- ci/fuse-overlayfs.sh | 22 +++++++--------------- ci/prepare_squashfs.sh | 2 -- ci/squashfuse_ll.sh | 18 ++++++++++++++++++ 5 files changed, 30 insertions(+), 22 deletions(-) create mode 100755 ci/squashfuse_ll.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8f35937..073afc8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -78,8 +78,8 @@ variables: --bind ${CI_DATA}/spack-mirror:${MOUNT_POINT}/spack-mirror --bind ${CI_DATA}/squashfs-cache/:/squashfs-cache --bind ${CI_DATA}/overlayfs:/overlayfs - --fusemount "host:/usr/libexec/apptainer/bin/squashfuse_ll ${CI_DATA}/squashfs-cache/${stack}-${environment}-${SQUASHFS_ID}.sqfs /overlayfs/lower-${SQUASHFS_ID}-${CI_JOB_ID}" - --fusemount "host:${CI_PROJECT_DIR}/ci/fuse-overlayfs.sh ${CI_DATA} ${SQUASHFS_ID}-${CI_JOB_ID} ${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}" + --fusemount "host:${CI_PROJECT_DIR}/ci/squashfuse_ll.sh ${CI_DATA} ${SQUASHFS_ID}-${CI_JOB_ID} ${CI_DATA}/squashfs-cache/${stack}-${environment}-${SQUASHFS_ID}.sqfs /overlayfs/lower-${SQUASHFS_ID}-${CI_JOB_ID}" + --fusemount "container:${CI_PROJECT_DIR}/ci/fuse-overlayfs.sh ${SQUASHFS_ID}-${CI_JOB_ID} ${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}" after_script: - if [ $CI_JOB_STATUS != "success" ]; then exit 0; fi - ${CI_PROJECT_DIR}/ci/update_squashfs.sh diff --git a/ci/apptainer_by_hand.sh b/ci/apptainer_by_hand.sh index e716e27..7b7d41d 100755 --- a/ci/apptainer_by_hand.sh +++ b/ci/apptainer_by_hand.sh @@ -19,7 +19,7 @@ export STACK_VERSION=$(jq -Mrc .stack.version ${CI_PROJECT_DIR}/stacks/${stack}/ APPTAINER_IMAGE=~/rhel9-kuma.sif -./ci/prepare_squashfs.sh +#./ci/prepare_squashfs.sh echo "host:/usr/libexec/apptainer/bin/squashfuse_ll ${CI_DATA}/squashfs-cache/${stack}-${environment}-${SQUASHFS_ID}.sqfs /overlayfs/lower-${SQUASHFS_ID}-${CI_JOB_ID}" echo "host:${CI_PROJECT_DIR}/ci/fuse-overlayfs.sh ${CI_DATA} ${SQUASHFS_ID}-${CI_JOB_ID} ${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}" @@ -39,7 +39,7 @@ srun ${srun_options} --pty apptainer run \ --env CI_PROJECT_DIR=${CI_PROJECT_DIR} \ --env CI_JOB_ID=${CI_JOB_ID} \ --env SQUASHFS_ID=${SQUASHFS_ID} \ - --fusemount "host:/usr/libexec/apptainer/bin/squashfuse_ll ${CI_DATA}/squashfs-cache/${stack}-${environment}-${SQUASHFS_ID}.sqfs /overlayfs/lower-${SQUASHFS_ID}-${CI_JOB_ID}" \ - --fusemount "host:${CI_PROJECT_DIR}/ci/fuse-overlayfs.sh ${CI_DATA} ${SQUASHFS_ID}-${CI_JOB_ID} ${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}" \ + --fusemount "host:${CI_PROJECT_DIR}/ci/squashfuse_ll.sh ${CI_DATA} ${SQUASHFS_ID}-${CI_JOB_ID} ${CI_DATA}/squashfs-cache/${stack}-${environment}-${SQUASHFS_ID}.sqfs /overlayfs/lower-${SQUASHFS_ID}-${CI_JOB_ID}" \ + --fusemount "container:${CI_PROJECT_DIR}/ci/fuse-overlayfs.sh ${SQUASHFS_ID}-${CI_JOB_ID} ${MOUNT_POINT}/${stack}/${environment}/${STACK_VERSION}" \ ${APPTAINER_IMAGE} \ bash diff --git a/ci/fuse-overlayfs.sh b/ci/fuse-overlayfs.sh index f9723f0..6bc9af3 100755 --- a/ci/fuse-overlayfs.sh +++ b/ci/fuse-overlayfs.sh @@ -1,22 +1,14 @@ #!/usr/bin/env sh -CI_DATA=$1 -suffix=$2 -mount_point=$3 +suffix=$1 +mount_point=$2 -for i in upper wd -do - if [ -d ${CI_DATA}/overlayfs/$i-${suffix} ] - then - rm -rf ${CI_DATA}/overlayfs/$i-${suffix} - fi - mkdir -p ${CI_DATA}/overlayfs/$i-${suffix} -done -/usr/libexec/apptainer/bin/fuse-overlayfs \ +#/usr/libexec/apptainer/bin/fuse-overlayfs \ +fuse-overlayfs \ -o squash_to_uid=$(id -u) \ -o squash_to_gid=$(id -g) \ - -o lowerdir=${CI_DATA}/overlayfs/lower-${suffix} \ - -o upperdir=${CI_DATA}/overlayfs/upper-${suffix} \ - -o workdir=${CI_DATA}/overlayfs/wd-${suffix} \ + -o lowerdir=/overlayfs/lower-${suffix} \ + -o upperdir=/overlayfs/upper-${suffix} \ + -o workdir=/overlayfs/wd-${suffix} \ $mount_point diff --git a/ci/prepare_squashfs.sh b/ci/prepare_squashfs.sh index 178c2a8..e25e459 100755 --- a/ci/prepare_squashfs.sh +++ b/ci/prepare_squashfs.sh @@ -13,7 +13,6 @@ do fi done - # Check if MR as squashfs sqfs_image=$(ls -t1 ${CI_DATA}/squashfs-cache/${stack}-${environment}-${squash_id}*.sqfs 2> /dev/null | head -1) if [ $? -ne 0 ] @@ -49,4 +48,3 @@ else fi echo "Found ${sqfs_image}" fi - diff --git a/ci/squashfuse_ll.sh b/ci/squashfuse_ll.sh new file mode 100755 index 0000000..60c7b20 --- /dev/null +++ b/ci/squashfuse_ll.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env sh + +CI_DATA=$1 +suffix=$2 +image=$3 +mount_point=$4 + +for i in upper wd +do + if [ -d ${CI_DATA}/overlayfs/$i-${suffix} ] + then + rm -rf ${CI_DATA}/overlayfs/$i-${suffix} + fi + mkdir -p ${CI_DATA}/overlayfs/$i-${suffix} +done + + +/usr/libexec/apptainer/bin/squashfuse_ll $image $mount_point -- GitLab