From 0137274b58a4e9b589f59f9d5e279407ef9573e1 Mon Sep 17 00:00:00 2001 From: Satoru Takeuchi Date: Mon, 2 Feb 2026 13:47:38 +0000 Subject: [PATCH] test: create iscsi disk if extra disk does not exist We found a new github runner that doesn't have an extra disk mounted on /mnt and it causes massive amounts of CI failures. We can overcome this circumstance by creating an iSCSI disk as an extra disk. ref. https://github.com/rook/rook/issues/16978#issue-3862612835 Signed-off-by: Satoru Takeuchi --- tests/scripts/github-action-helper.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/scripts/github-action-helper.sh b/tests/scripts/github-action-helper.sh index 435931b16..6093d589e 100755 --- a/tests/scripts/github-action-helper.sh +++ b/tests/scripts/github-action-helper.sh @@ -38,6 +38,21 @@ fi # FUNCTIONS # ############# +function create_extra_disk() { + sudo apt install -y targetcli-fb open-iscsi + truncate -s 75G ~/iscsi-disk.img + sudo targetcli /backstores/fileio create disk1 ~/iscsi-disk.img 75G + local target_iqn=iqn.2026-02.target.local:disk1 + sudo targetcli /iscsi create ${target_iqn} + sudo targetcli /iscsi/${target_iqn}/tpg1/luns create /backstores/fileio/disk1 + local init_iqn=iqn.2026-02.initiator.local + echo "InitiatorName=${init_iqn}" | sudo tee /etc/iscsi/initiatorname.iscsi >/dev/null + sudo targetcli /iscsi/${target_iqn}/tpg1/acls create ${init_iqn} + sudo targetcli /iscsi/${target_iqn}/tpg1/acls/${init_iqn} create tpg_lun_or_backstore=lun0 mapped_lun=0 + sudo iscsiadm -m discovery -t sendtargets -p 127.0.0.1 + sudo iscsiadm -m node --login +} + function find_extra_block_dev() { # shellcheck disable=SC2005 # redirect doesn't work with sudo, so use echo echo "$(sudo lsblk)" >/dev/stderr # print lsblk output to stderr for debugging in case of future errors @@ -49,6 +64,10 @@ function find_extra_block_dev() { echo " == find_extra_block_dev(): boot_dev='$boot_dev'" >/dev/stderr # debug in case of future errors # --nodeps ignores partitions extra_dev="$(sudo lsblk --noheading --list --nodeps --output KNAME | egrep -v "($boot_dev|loop|nbd)" | head -1)" + if [ -z "$extra_dev" ]; then + create_extra_disk >/dev/stderr + extra_dev="$(sudo lsblk --noheading --list --nodeps --output KNAME | egrep -v "($boot_dev|loop|nbd)" | head -1)" + fi echo " == find_extra_block_dev(): extra_dev='$extra_dev'" >/dev/stderr # debug in case of future errors echo "$extra_dev" # output of function } @@ -116,6 +135,14 @@ function use_local_disk_for_integration_test() { sudo apt purge snapd -y sudo udevadm control --log-priority=debug sudo swapoff --all --verbose + + # Create an extra disk if doesn't exist. + : "$(block_dev)" + sudo lsblk + + unset pipefail + mountpoint -q /mnt || return 0 + set pipefail sudo umount /mnt sudo sed -i.bak '/\/mnt/d' /etc/fstab # search for the device since it keeps changing between sda and sdb