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

Commit

Permalink
.ci: add function to install vanilla containerd
Browse files Browse the repository at this point in the history
add function to install vanilla containerd
Signed-off-by: ChengyuZhu6 <[email protected]>
  • Loading branch information
ChengyuZhu6 committed Sep 21, 2023
1 parent b4c9d12 commit 3121183
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 11 deletions.
37 changes: 32 additions & 5 deletions .ci/install_cri_containerd.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Flag to do tasks for CI
CI=${CI:-""}

SNAPSHOTTER=${SNAPSHOTTER:-""}

# shellcheck source=./lib.sh
source "${script_dir}/lib.sh"

Expand Down Expand Up @@ -81,17 +83,42 @@ install_from_static_tarball() {
sudo tar -xvf "${tarball_name}" -C /
}

install_vanilla_from_static_tarball() {
echo "Trying to install containerd from static tarball"
local tarball_url="https://github.com/containerd/containerd/releases/download"
local containerd_tarball_version="v1.7.0"
local containerd_version=${containerd_tarball_version#v}
local tarball_name="containerd-${containerd_version}-${CONTAINERD_OS}-${CONTAINERD_ARCH}.tar.gz"
local url="${tarball_url}/${containerd_tarball_version}/${tarball_name}"

echo "Download tarball from ${url}"
if ! curl -OL -f "${url}"; then
echo "Failed to download tarball from ${url}"
return 1
fi

tmp_dir=$(mktemp -d -t install-vanilla-containerd-tmp.XXXXXXXXXX)
sudo tar -xvf "${tarball_name}" -C $tmp_dir/
sudo install -D -m 755 "$tmp_dir/bin/containerd" "/usr/local/bin/containerd-vanilla"

systemctl status containerd
}

install_cri-tools() {
crictl_repo=$(get_version "externals.critools.url")
crictl_version=$(get_version "externals.critools.version")
crictl_tag_prefix="v"
crictl_repo=$(get_version "externals.critools.url")
crictl_version=$(get_version "externals.critools.version")
crictl_tag_prefix="v"

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

install_from_static_tarball || install_from_source

if [ "${SNAPSHOTTER}" == "nydus" ]; then
install_vanilla_from_static_tarball
fi

install_cri-tools

sudo systemctl daemon-reload
3 changes: 3 additions & 0 deletions .ci/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,9 @@ cleanup_nydus_snapshotter_dependencies() {
if [ -f "/usr/local/bin/nydus-image" ]; then
rm -f "/usr/local/bin/nydus-image"
fi
if [ -f "/usr/local/bin/containerd-vanilla" ]; then
rm -f "/usr/local/bin/containerd-vanilla"
fi
}

gen_clean_arch() {
Expand Down
12 changes: 6 additions & 6 deletions integration/confidential/lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ configure_cc_containerd() {
# Even if we are not saving the original file it is a good idea to
# restart containerd because it might be in an inconsistent state here.
sudo systemctl stop containerd
sleep 5
sleep 10
[ -n "$saved_containerd_conf_file" ] && \
sudo cp -f "$containerd_conf_file" "$saved_containerd_conf_file"
restart_containerd
Expand Down Expand Up @@ -476,18 +476,18 @@ is_containerd_support_per_runtime_snapshotter() {

set_vanilla_containerd() {
sudo systemctl stop containerd
sleep 5
sudo mv /usr/local/bin/containerd /usr/local/bin/containerd-coco
sudo cp /usr/local/bin/containerd-vanilla /usr/local/bin/containerd
sleep 10
sudo mv -f /usr/local/bin/containerd /usr/local/bin/containerd-coco
sudo cp -f /usr/local/bin/containerd-vanilla /usr/local/bin/containerd
echo "vanilla containerd version: $(containerd --version | awk '{print $3}')"
restart_containerd
}

unset_vanilla_containerd() {
sudo systemctl stop containerd
sleep 5
sleep 10
sudo rm -f /usr/local/bin/containerd
sudo mv /usr/local/bin/containerd-coco /usr/local/bin/containerd
sudo mv -f /usr/local/bin/containerd-coco /usr/local/bin/containerd
echo "coco containerd version: $(containerd --version | awk '{print $3}')"
restart_containerd
}
Expand Down

0 comments on commit 3121183

Please sign in to comment.