mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-01-29 21:39:23 +00:00
Merge pull request #8383 from jodh-intel/kata-manager-add-list-option
utils: kata-manager: Add option to list versions
This commit is contained in:
@@ -27,6 +27,10 @@ readonly kata_releases_url="https://api.github.com/repos/${kata_slug}/releases"
|
||||
readonly containerd_releases_url="https://api.github.com/repos/${containerd_slug}/releases"
|
||||
readonly containerd_io_releases_url="https://raw.githubusercontent.com/containerd/containerd.io/main/content/releases.md"
|
||||
|
||||
readonly docker_slug="moby/moby"
|
||||
readonly docker_project="Docker (moby)"
|
||||
readonly docker_releases_url="https://api.github.com/repos/${docker_slug}/releases"
|
||||
|
||||
# Directory created when unpacking a binary release archive downloaded from
|
||||
# $kata_releases_url.
|
||||
readonly kata_install_dir="${kata_install_dir:-/opt/kata}"
|
||||
@@ -109,7 +113,7 @@ github_get_latest_release()
|
||||
local latest
|
||||
latest=$(curl -sL "$url" |\
|
||||
jq -r '.[].tag_name | select(contains("-") | not)' |\
|
||||
sort -t "." -k1,1n -k2,2n -k3,3n |\
|
||||
sort -t '.' -V |\
|
||||
tail -1 || true)
|
||||
|
||||
[ -z "$latest" ] && die "Cannot determine latest release from $url"
|
||||
@@ -260,6 +264,7 @@ Options:
|
||||
-f : Force installation (use with care).
|
||||
-h : Show this help statement.
|
||||
-k <version> : Specify Kata Containers version.
|
||||
-l : List installed and available versions only, then exit (uses network).
|
||||
-o : Only install Kata Containers.
|
||||
-r : Don't cleanup on failure (retain files).
|
||||
-t : Disable self test (don't try to create a container after install).
|
||||
@@ -279,9 +284,12 @@ $warnings
|
||||
|
||||
Advice:
|
||||
|
||||
- You can check the latest version of Kata Containers by running:
|
||||
- You can check the latest version of Kata Containers by running
|
||||
one of the following:
|
||||
|
||||
$ $script_name -l
|
||||
$ kata-runtime check --only-list-releases
|
||||
$ kata-ctl check only-list-releases
|
||||
|
||||
EOF
|
||||
}
|
||||
@@ -772,7 +780,7 @@ test_installation()
|
||||
local image="docker.io/library/busybox:latest"
|
||||
sudo $tool image pull "$image"
|
||||
|
||||
local container_name="test-kata"
|
||||
local container_name="${script_name/./-}-test-kata"
|
||||
|
||||
# Used to prove that the kernel in the container
|
||||
# is different to the host kernel.
|
||||
@@ -885,6 +893,55 @@ validate_containerd_flavour()
|
||||
grep -qE "$flavours_regex" <<< "$flavour" || die "expected flavour to match '$flavours_regex', found '$flavour'"
|
||||
}
|
||||
|
||||
list_versions()
|
||||
{
|
||||
local -r not_installed='<not installed>'
|
||||
|
||||
# The latest available checks will hit the network so inform the
|
||||
# user what we are doing in case of network delays.
|
||||
info "Getting version details"
|
||||
|
||||
local installed_kata
|
||||
installed_kata=$("$kata_shim_v2" --version 2>/dev/null ||\
|
||||
echo "$not_installed")
|
||||
|
||||
local installed_containerd
|
||||
installed_containerd=$(containerd --version 2>/dev/null ||\
|
||||
echo "$not_installed")
|
||||
|
||||
local installed_docker
|
||||
installed_docker=$(docker --version 2>/dev/null ||\
|
||||
echo "$not_installed")
|
||||
|
||||
local latest_kata
|
||||
latest_kata=$(github_get_latest_release "$kata_releases_url" || true)
|
||||
[ -z "$latest_kata" ] && \
|
||||
die "cannot determine latest version of $project"
|
||||
|
||||
local latest_containerd
|
||||
latest_containerd=$(github_get_latest_release "$containerd_releases_url" || true)
|
||||
[ -z "$latest_containerd" ] && \
|
||||
die "cannot determine latest version of $containerd_project"
|
||||
|
||||
local latest_docker
|
||||
latest_docker=$(github_get_latest_release "$docker_releases_url" || true)
|
||||
[ -z "$latest_docker" ] && \
|
||||
die "cannot determine latest version of $docker_project"
|
||||
|
||||
info "$kata_project: installed version: $installed_kata"
|
||||
info "$kata_project: latest version: $latest_kata"
|
||||
|
||||
echo
|
||||
|
||||
info "$containerd_project: installed version: $installed_containerd"
|
||||
info "$containerd_project: latest version: $latest_containerd"
|
||||
|
||||
echo
|
||||
|
||||
info "$docker_project: installed version: $installed_docker"
|
||||
info "$docker_project: latest version: $latest_docker"
|
||||
}
|
||||
|
||||
handle_args()
|
||||
{
|
||||
local cleanup="true"
|
||||
@@ -894,13 +951,14 @@ handle_args()
|
||||
local only_run_test="false"
|
||||
local enable_debug="false"
|
||||
local install_docker="false"
|
||||
local list_versions='false'
|
||||
|
||||
local opt
|
||||
|
||||
local kata_version=""
|
||||
local containerd_flavour="lts"
|
||||
|
||||
while getopts "c:dDfhk:ortT" opt "$@"
|
||||
while getopts "c:dDfhk:lortT" opt "$@"
|
||||
do
|
||||
case "$opt" in
|
||||
c) containerd_flavour="$OPTARG" ;;
|
||||
@@ -909,6 +967,7 @@ handle_args()
|
||||
f) force="true" ;;
|
||||
h) usage; exit 0 ;;
|
||||
k) kata_version="$OPTARG" ;;
|
||||
l) list_versions='true' ;;
|
||||
o) skip_containerd="true" ;;
|
||||
r) cleanup="false" ;;
|
||||
t) disable_test="true" ;;
|
||||
@@ -920,6 +979,8 @@ handle_args()
|
||||
|
||||
shift $[$OPTIND-1]
|
||||
|
||||
[ "$list_versions" = 'true' ] && list_versions && exit 0
|
||||
|
||||
[ -z "$kata_version" ] && kata_version="${1:-}" || true
|
||||
[ -z "$containerd_flavour" ] && containerd_flavour="${2:-}" || true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user