From 7b1fb8e74c3c7a9fb9c8a846a4442f5e28acdd64 Mon Sep 17 00:00:00 2001 From: jiuyu Date: Tue, 30 Jul 2024 19:05:22 +0800 Subject: [PATCH] Feat:support subpath in juicefs volume dynamic-mount Signed-off-by: jiuyu --- addons/dynamic-mount/juicefs/docker/mount.sh | 21 ++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/addons/dynamic-mount/juicefs/docker/mount.sh b/addons/dynamic-mount/juicefs/docker/mount.sh index 8db1475ed46..993520338d7 100644 --- a/addons/dynamic-mount/juicefs/docker/mount.sh +++ b/addons/dynamic-mount/juicefs/docker/mount.sh @@ -7,17 +7,30 @@ if [[ $# -ne 4 ]]; then exit 1 fi -mount_src=$1 # e.g. juicefs://mybucket +mount_src=$1 # e.g. juicefs://volume-name/subpath mount_target=$2 # e.g. /runtime-mnt/thin/default/thin-demo/thin-fuse/mybucket fs_type=$3 mount_opt_file=$4 # e.g. /etc/fluid/mount-opts/mybucket.opts (mount options in json format) -filesystem_name=${mount_src#juicefs://} +juicefs_volume_path=${mount_src#juicefs://} +if [[ "$juicefs_volume_path" == *"/"* ]]; then + volume_name="${juicefs_volume_path%%/*}" + volume_subpath="${juicefs_volume_path#*/}" +else + volume_name=$juicefs_volume_path +fi + token_file=$(cat ${mount_opt_file} | jq -r '.["token"]') access_key_file=$(cat ${mount_opt_file} | jq -r '.["access-key"]') secret_key_file=$(cat ${mount_opt_file} | jq -r '.["secret-key"]') bucket=$(cat ${mount_opt_file} | jq -r '.["bucket"]') -juicefs auth $filesystem_name --token `cat $token_file` --access-key `cat $access_key_file` --secret-key `cat $secret_key_file` --bucket "$bucket" +juicefs auth $volume_name --token `cat $token_file` --access-key `cat $access_key_file` --secret-key `cat $secret_key_file` --bucket "$bucket" -exec juicefs mount -f $filesystem_name $mount_target \ No newline at end of file +if [[ -z "$volume_subpath" ]]; then +# e.g. juicefs://volume-name/ || juicefs://volume-name + exec juicefs mount -f $volume_name $mount_target +else +# e.g. juicefs://volume-name/subpath-1 || juicefs://volume-name/subpath-1/subpath-2/.../ + exec juicefs mount -f $volume_name $mount_target --subdir="/"$volume_subpath +fi \ No newline at end of file