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

Commit 7bdeffa

Browse files
author
ChengyuZhu6
committed
.ci: add function to install vanilla containerd
add function to install vanilla containerd Depends-on: github.com/kata-containers/kata-containers#7998 Signed-off-by: ChengyuZhu6 <[email protected]>
1 parent 02255f8 commit 7bdeffa

File tree

4 files changed

+54
-5
lines changed

4 files changed

+54
-5
lines changed

.ci/install_cri_containerd.sh

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
1717
# Flag to do tasks for CI
1818
CI=${CI:-""}
1919

20+
SNAPSHOTTER=${SNAPSHOTTER:-""}
21+
2022
# shellcheck source=./lib.sh
2123
source "${script_dir}/lib.sh"
2224

@@ -81,17 +83,42 @@ install_from_static_tarball() {
8183
sudo tar -xvf "${tarball_name}" -C /
8284
}
8385

86+
install_vanilla_from_static_tarball() {
87+
echo "Trying to install containerd from static tarball"
88+
local tarball_url="https://github.com/containerd/containerd/releases/download"
89+
local containerd_tarball_version="v1.7.0"
90+
local containerd_version=${containerd_tarball_version#v}
91+
local tarball_name="containerd-${containerd_version}-${CONTAINERD_OS}-${CONTAINERD_ARCH}.tar.gz"
92+
local url="${tarball_url}/${containerd_tarball_version}/${tarball_name}"
93+
94+
echo "Download tarball from ${url}"
95+
if ! curl -OL -f "${url}"; then
96+
echo "Failed to download tarball from ${url}"
97+
return 1
98+
fi
99+
100+
tmp_dir=$(mktemp -d -t install-vanilla-containerd-tmp.XXXXXXXXXX)
101+
sudo tar -xvf "${tarball_name}" -C $tmp_dir/
102+
sudo install -D -m 755 "$tmp_dir/bin/containerd" "/usr/local/bin/containerd-vanilla"
103+
104+
systemctl status containerd
105+
}
106+
84107
install_cri-tools() {
85-
crictl_repo=$(get_version "externals.critools.url")
86-
crictl_version=$(get_version "externals.critools.version")
87-
crictl_tag_prefix="v"
108+
crictl_repo=$(get_version "externals.critools.url")
109+
crictl_version=$(get_version "externals.critools.version")
110+
crictl_tag_prefix="v"
88111

89-
crictl_url="${crictl_repo}/releases/download/v${crictl_version}/crictl-${crictl_tag_prefix}${crictl_version}-linux-$(${script_dir}/kata-arch.sh -g).tar.gz"
90-
curl -Ls "$crictl_url" | sudo tar xfz - -C /usr/local/bin
112+
crictl_url="${crictl_repo}/releases/download/v${crictl_version}/crictl-${crictl_tag_prefix}${crictl_version}-linux-$(${script_dir}/kata-arch.sh -g).tar.gz"
113+
curl -Ls "$crictl_url" | sudo tar xfz - -C /usr/local/bin
91114
}
92115

93116
install_from_static_tarball || install_from_source
94117

118+
if [ "${SNAPSHOTTER}" == "nydus" ]; then
119+
install_vanilla_from_static_tarball
120+
fi
121+
95122
install_cri-tools
96123

97124
sudo systemctl daemon-reload

.ci/lib.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,9 @@ cleanup_nydus_snapshotter_dependencies() {
398398
if [ -f "/usr/local/bin/nydus-image" ]; then
399399
rm -f "/usr/local/bin/nydus-image"
400400
fi
401+
if [ -f "/usr/local/bin/containerd-vanilla" ]; then
402+
rm -f "/usr/local/bin/containerd-vanilla"
403+
fi
401404
}
402405

403406
gen_clean_arch() {

integration/confidential/lib.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,24 @@ is_containerd_support_per_runtime_snapshotter() {
472472
printf '%s\n' ${required_version} ${containerd_version} | sort --check=quiet -V
473473
}
474474

475+
set_vanilla_containerd() {
476+
sudo systemctl stop containerd
477+
sleep 5
478+
sudo mv /usr/local/bin/containerd /usr/local/bin/containerd-coco
479+
sudo cp /usr/local/bin/containerd-vanilla /usr/local/bin/containerd
480+
echo "vanilla containerd version: $(containerd --version | awk '{print $3}')"
481+
}
482+
483+
unset_vanilla_containerd() {
484+
sudo systemctl stop containerd
485+
sleep 5
486+
sudo rm -f /usr/local/bin/containerd
487+
sudo mv /usr/local/bin/containerd-coco /usr/local/bin/containerd
488+
echo "coco containerd version: $(containerd --version | awk '{print $3}')"
489+
}
490+
475491
configure_containerd_for_nydus_snapshotter() {
492+
set_vanilla_containerd
476493
if [ "${SNAPSHOTTER:-}" = "nydus" ]; then
477494
local containerd_config="$1"
478495
snapshotter_socket="/run/containerd-nydus/containerd-nydus-grpc.sock"

integration/kubernetes/confidential/image_pulling_with_snapshotter.bats

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,6 @@ teardown() {
6767
teardown_common
6868
remove_test_image "$image_unsigned_protected" || true
6969
kill_nydus_snapshotter_process
70+
unset_vanilla_containerd
71+
restart_containerd
7072
}

0 commit comments

Comments
 (0)