diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8f35937d85054b06dc1b75ede14ce9d5282a6d1e..073afc854e4ffa8f7082dcc23ba721925e05120e 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 e716e27bbc520b388133e86318a75e3b1933a91c..7b7d41dc48ab3332a32114ff7a23030af22b1381 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 f9723f0241b537862e55e1d1809b045e69190bc5..6bc9af3115615de2f3d92381aab6cd23225d134e 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 178c2a889e7f64a62a98fe0c91dad1232657dcd7..e25e4595398cac634695b9d2cdb2eed7452df1a4 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 0000000000000000000000000000000000000000..60c7b204b09b31f3ec628f79974b2c7bc3b0fc4c --- /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