Skip to content

Commit 13e8842

Browse files
committed
fix: install blobfuse package issue in blobfuse-proxy initContainer
1 parent 8b35923 commit 13e8842

File tree

2 files changed

+55
-10
lines changed

2 files changed

+55
-10
lines changed

pkg/blobfuse-proxy/init.sh

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,65 @@
1717
set -xe
1818

1919
INSTALL_BLOBFUSE_PROXY=${INSTALL_BLOBFUSE_PROXY:-true}
20-
INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:-true}
2120
DISABLE_UPDATEDB=${DISABLE_UPDATEDB:-true}
2221
SET_MAX_OPEN_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:-true}
2322
SET_READ_AHEAD_SIZE=${SET_READ_AHEAD_SIZE:-true}
2423
READ_AHEAD_KB=${READ_AHEAD_KB:-15380}
2524

2625
HOST_CMD="nsenter --mount=/proc/1/ns/mnt"
2726

28-
# install/update blobfuse
29-
if [ "${INSTALL_BLOBFUSE}" = "true" ]
27+
DISTRIBUTION=$($HOST_CMD cat /etc/os-release | grep ^ID= | cut -d'=' -f2 | tr -d '"')
28+
echo "Linux distribution: $DISTRIBUTION"
29+
30+
if [ "${DISTRIBUTION}" = "ubuntu" ] && { [ "${INSTALL_BLOBFUSE}" = "true" ] || [ "${INSTALL_BLOBFUSE2}" = "true" ]; }
3031
then
31-
cp /blobfuse-proxy/packages-microsoft-prod.deb /host/etc/
32-
yes | $HOST_CMD dpkg -i /etc/packages-microsoft-prod.deb && \
33-
$HOST_CMD apt update && \
34-
$HOST_CMD apt-get install -y fuse blobfuse2 blobfuse="${BLOBFUSE_VERSION}" && \
32+
release=$($HOST_CMD lsb_release -rs)
33+
echo "Ubuntu release: $release"
34+
35+
if [ "$(expr "$release" \< "22.04")" -eq 1 ]
36+
then
37+
cp /blobfuse-proxy/packages-microsoft-prod-18.04.deb /host/etc/packages-microsoft-prod.deb
38+
else
39+
cp /blobfuse-proxy/packages-microsoft-prod-22.04.deb /host/etc/packages-microsoft-prod.deb
40+
fi
41+
42+
# when running dpkg -i /etc/packages-microsoft-prod.deb, need to enter y to continue.
43+
# refer to https://stackoverflow.com/questions/45349571/how-to-install-deb-with-dpkg-non-interactively
44+
yes | $HOST_CMD dpkg -i /etc/packages-microsoft-prod.deb && $HOST_CMD apt update
45+
46+
pkg_list=""
47+
if [ "${INSTALL_BLOBFUSE}" = "true" ] && [ "$(expr "$release" \< "22.04")" -eq 1 ]
48+
then
49+
pkg_list="${pkg_list} fuse"
50+
# install blobfuse with latest version or specific version
51+
if [ -z "${BLOBFUSE_VERSION}" ]; then
52+
echo "install blobfuse with latest version"
53+
pkg_list="${pkg_list} blobfuse"
54+
else
55+
pkg_list="${pkg_list} blobfuse=${BLOBFUSE_VERSION}"
56+
fi
57+
fi
58+
59+
if [ "${INSTALL_BLOBFUSE2}" = "true" ]
60+
then
61+
if [ "$(expr "$release" \< "22.04")" -eq 1 ]; then
62+
echo "install fuse for blobfuse2"
63+
pkg_list="${pkg_list} fuse"
64+
else
65+
echo "install fuse3 for blobfuse2, current release is $release"
66+
pkg_list="${pkg_list} fuse3"
67+
fi
68+
69+
# install blobfuse2 with latest version or specific version
70+
if [ -z "${BLOBFUSE2_VERSION}" ]; then
71+
echo "install blobfuse2 with latest version"
72+
pkg_list="${pkg_list} blobfuse2"
73+
else
74+
pkg_list="${pkg_list} blobfuse2=${BLOBFUSE2_VERSION}"
75+
fi
76+
fi
77+
echo "begin to install ${pkg_list}"
78+
$HOST_CMD apt-get install -y $pkg_list
3579
$HOST_CMD rm -f /etc/packages-microsoft-prod.deb
3680
fi
3781

@@ -102,4 +146,4 @@ then
102146
SUBSYSTEM=="bdi", ACTION=="add", PROGRAM="$AWK_PATH -v bdi=\$kernel 'BEGIN{ret=1} {if (\$4 == bdi){ret=0}} END{exit ret}' /proc/fs/nfsfs/volumes", ATTR{read_ahead_kb}="$READ_AHEAD_KB"
103147
EOF
104148
$HOST_CMD udevadm control --reload
105-
fi
149+
fi

pkg/blobplugin/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && clean-install ca-
3333
ARG ARCH=amd64
3434
RUN if [ "$ARCH" = "amd64" ] ; then \
3535
clean-install libcurl4-gnutls-dev && \
36-
wget -O /blobfuse-proxy/packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
37-
dpkg -i /blobfuse-proxy/packages-microsoft-prod.deb && apt update && apt install blobfuse blobfuse2 fuse -y && apt remove wget -y; fi
36+
wget -O /blobfuse-proxy/packages-microsoft-prod-22.04.deb https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb && \
37+
wget -O /blobfuse-proxy/packages-microsoft-prod-18.04.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
38+
dpkg -i /blobfuse-proxy/packages-microsoft-prod-18.04.deb && apt update && apt install blobfuse blobfuse2 fuse -y && apt remove wget -y; fi
3839
LABEL maintainers="andyzhangx"
3940
LABEL description="Azure Blob Storage CSI driver"
4041

0 commit comments

Comments
 (0)