1
0
mirror of https://github.com/kata-containers/kata-containers.git synced 2025-05-09 17:07:33 +00:00

kata-manager: Install cni for containerd

When just containerd is installed without installing nerdctl,
cni plugins are missing from the installation.
containerd tarball does not include cni plugin files.
Hence install cni plugins separately for containerd.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This commit is contained in:
Archana Shinde 2024-05-18 00:19:57 +00:00
parent d23d58a484
commit 0e28e904e0

View File

@ -38,6 +38,10 @@ readonly nerdctl_project="nerdctl"
readonly nerdctl_releases_url="https://api.github.com/repos/${nerdctl_slug}/releases"
readonly nerdctl_supported_arches="x86_64 aarch64"
readonly cni_project="cni-plugins"
readonly cni_slug="containernetworking/plugins"
readonly cni_releases_url="https://api.github.com/repos/${cni_slug}/releases"
# Directory created when unpacking a binary release archive downloaded from
# $kata_releases_url.
readonly kata_install_dir="${kata_install_dir:-/opt/kata}"
@ -222,6 +226,9 @@ github_get_release_file_url()
regex="nerdctl-full-${version_number}-linux-${arch_regex}.tar.gz" ;;
*containerd*)
regex="containerd-${version_number}-linux-${arch_regex}.tar.gz" ;;
*containernetworking*)
regex="cni-plugins-linux-${arch_regex}-${version}.tgz" ;;
*) die "invalid url: '$url'" ;;
esac
@ -547,6 +554,9 @@ install_containerd()
done
info "$project installed\n"
# Installing cni plugins for containerd
install_cni
}
install_nerdctl()
@ -594,6 +604,38 @@ install_nerdctl()
info "cni plugins installed under /opt/cni/bin"
}
install_cni()
{
local project="$cni_project"
info "Downloading $project latest release"
local results
results=$(github_download_package \
"$cni_releases_url" \
"" \
"$project")
[ -z "$results" ] && die "Cannot download $project release file"
local version
version=$(echo "$results"|cut -d: -f1)
local file
file=$(echo "$results"|cut -d: -f2-)
[ -z "$version" ] && die "Cannot determine $project resolved version"
[ -z "$file" ] && die "Cannot determine $project release file"
info "Installing $project release $version from $file"
sudo mkdir -p /opt/cni/bin
sudo tar -C /opt/cni/bin -xvf "${file}"
info "$project installed\n"
}
configure_containerd()
{
local enable_debug="${1:-}"