From bda6c52a401d3571d0846b4fc018afcc89e1d698 Mon Sep 17 00:00:00 2001 From: Phan Le Date: Fri, 6 Oct 2023 16:59:18 -0700 Subject: [PATCH] Add kernel release check to environment_check.sh longhorn-6854 Signed-off-by: Phan Le (cherry picked from commit d30a970ea8acd44d75f000ae133cb05cadc2db3e) --- scripts/environment_check.sh | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/scripts/environment_check.sh b/scripts/environment_check.sh index ad4b509..1df1f5f 100755 --- a/scripts/environment_check.sh +++ b/scripts/environment_check.sh @@ -301,6 +301,28 @@ check_multipathd() { fi } +verlte() { + printf '%s\n' "$1" "$2" | sort -C -V +} + +verlt() { + ! verlte "$2" "$1" +} + +check_kernel_release() { + local pods=$(kubectl get pods -o name -l app=longhorn-environment-check) + + recommended_kernel_release="5.8" + + for pod in ${pods}; do + local kernel=$(detect_node_kernel_release ${pod}) + if verlt "$kernel" "$recommended_kernel_release" ; then + local node=$(kubectl get ${pod} --no-headers -o=custom-columns=:.spec.nodeName) + warn "Node $node has outdated kernel release: $kernel. Recommending kernel release >= $recommended_kernel_release" + fi + done +} + check_iscsid() { local pods=$(kubectl get pods -o name -l app=longhorn-environment-check) local all_found=true @@ -362,7 +384,7 @@ check_nfs_client_kernel_support() { ###################################################### # Main logics ###################################################### -DEPENDENCIES=("kubectl" "jq" "mktemp") +DEPENDENCIES=("kubectl" "jq" "mktemp" "sort" "printf") check_local_dependencies "${DEPENDENCIES[@]}" # Check the each host has a unique hostname (for RWX volume) @@ -380,5 +402,6 @@ check_package_installed check_iscsid check_multipathd check_mount_propagation +check_kernel_release exit 0