Skip to content
This repository was archived by the owner on Jun 28, 2024. It is now read-only.

Commit aaea778

Browse files
committed
test nydus on aarch64
Depends-on: github.com/kata-containers/kata-containers#6408
1 parent 339affb commit aaea778

2 files changed

Lines changed: 58 additions & 9 deletions

File tree

integration/nydus/nydus-container.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
metadata:
22
name: nydus-container
33
image:
4-
image: ghcr.io/dragonflyoss/image-service/alpine:nydus-latest
4+
image: ghcr.io/dragonflyoss/image-service/alpine:nydus-nightly-v6
55
command:
66
- tail
77
- -f

integration/nydus/nydus_tests.sh

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ containerd_config="/etc/containerd/config.toml"
2828
containerd_config_backup="/tmp/containerd.config.toml"
2929

3030
# test image for container
31-
IMAGE="${IMAGE:-ghcr.io/dragonflyoss/image-service/alpine:nydus-latest}"
31+
IMAGE="${IMAGE:-ghcr.io/dragonflyoss/image-service/alpine:nydus-nightly-v6}"
3232

3333
if [ "$KATA_HYPERVISOR" != "qemu" ] && [ "$KATA_HYPERVISOR" != "cloud-hypervisor" ] && [ "$KATA_HYPERVISOR" != "dragonball" ]; then
3434
echo "Skip nydus test for $KATA_HYPERVISOR, it only works for QEMU/CLH/DB now."
3535
exit 0
3636
fi
3737

3838
arch="$(uname -m)"
39-
if [ "$arch" != "x86_64" ]; then
40-
echo "Skip nydus test for $arch, it only works for x86_64 now. See https://github.com/kata-containers/tests/issues/4445"
39+
if [ "$arch" != "x86_64" -a "$arch" != "aarch64" ]; then
40+
echo "Skip nydus test for $arch, it only works for x86_64 and aarch64 now. See https://github.com/kata-containers/tests/issues/4445"
4141
exit 0
4242
fi
4343

@@ -58,17 +58,53 @@ function install_from_tarball() {
5858
curl -Ls "$tarball_url" | sudo tar xfz - -C /usr/local/bin --strip-components=1
5959
}
6060

61-
function setup_nydus() {
62-
# install nydus
63-
install_from_tarball "nydus" "nydus-static"
61+
function install_from_source() {
62+
[ -z $(command -v cargo) ] && "${dir_path}/../../.ci/install_rust.sh" && source "$HOME/.cargo/env"
63+
[ -z $(command -v cmake) ] && apt install cmake -y
64+
local src_dir=$(mktemp -d)
65+
66+
pushd ${src_dir}
67+
if false; then
68+
git clone https://github.com/dragonflyoss/image-service.git
6469

70+
pushd image-service
71+
# install nydusd nydus-image
72+
make && make install
73+
[ -f "/usr/bin/nydusd" -a ! -f /usr/local/bin/nydusd ] && ln -s /usr/bin/nydusd /usr/local/bin/nydusd
74+
[ -f "/usr/bin/nydus-image" -a ! -f /usr/local/bin/nydus-image ] && ln -s /usr/bin/nydus-image /usr/local/bin/nydus-image
75+
# install nydusify
76+
make -C contrib/nydusify/ && install -m 755 contrib/nydusify/cmd/nydusify /usr/bin
77+
popd
78+
fi
6579
# install nydus-snapshotter
66-
install_from_tarball "nydus-snapshotter" "nydus-snapshotter"
80+
git clone https://github.com/containerd/nydus-snapshotter.git
81+
pushd nydus-snapshotter
82+
make && install -m 755 bin/containerd-nydus-grpc /usr/local/bin
83+
popd
84+
85+
popd
86+
87+
# clean up temp dir
88+
rm -rf ${src_dir}
89+
}
90+
91+
function setup_nydus() {
92+
93+
# install nydus
94+
install_from_tarball "nydus" "nydus-static"
95+
96+
if [ "${arch}" == "x86_64" ]; then
97+
# install nydus-snapshotter
98+
install_from_tarball "nydus-snapshotter" "nydus-snapshotter"
99+
else
100+
install_from_source
101+
fi
67102

68103
# Config nydus snapshotter
69104
sudo -E cp "$dir_path/nydusd-config.json" /etc/
70105

71106
# start nydus-snapshotter
107+
if [ "$arch" == "x86_64" ]; then
72108
nohup /usr/local/bin/containerd-nydus-grpc \
73109
--config-path /etc/nydusd-config.json \
74110
--shared-daemon \
@@ -80,6 +116,18 @@ function setup_nydus() {
80116
--disable-cache-manager true \
81117
--enable-nydus-overlayfs true \
82118
--log-to-stdout >/dev/null 2>&1 &
119+
else
120+
nohup /usr/local/bin/containerd-nydus-grpc \
121+
--config-path /etc/nydusd-config.json \
122+
--log-level debug \
123+
--root /var/lib/containerd/io.containerd.snapshotter.v1.nydus \
124+
--log-to-stdout \
125+
--daemon-mode shared \
126+
--nydusd /usr/local/bin/nydusd \
127+
--nydus-image /usr/local/bin/nydus-image \
128+
--address /run/containerd-nydus/containerd-nydus-grpc.sock \
129+
--fs-driver fusedev >/dev/null 2>&1 &
130+
fi
83131
}
84132

85133
function config_kata() {
@@ -144,14 +192,15 @@ EOF
144192

145193
function setup() {
146194
setup_nydus
147-
config_kata
195+
# config_kata
148196
config_containerd
149197
restart_containerd_service
150198
check_processes
151199
extract_kata_env
152200
}
153201

154202
function run_test() {
203+
echo $RUNTIME_CONFIG_PATH
155204
sudo -E crictl pull "${IMAGE}"
156205
pod=$(sudo -E crictl runp -r kata $dir_path/nydus-sandbox.yaml)
157206
echo "Pod $pod created"

0 commit comments

Comments
 (0)