From b15eac47a6e9238515731d3295d04c2c122bf89d Mon Sep 17 00:00:00 2001 From: Derek Su Date: Wed, 10 May 2023 00:31:01 +0800 Subject: [PATCH] prerequisite: check the nvme-cli version Old "nvme connect" does not support output format "-o" option. Longhorn 5738 Signed-off-by: Derek Su --- scripts/environment_check.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/environment_check.sh b/scripts/environment_check.sh index 467d94e..dd8024c 100755 --- a/scripts/environment_check.sh +++ b/scripts/environment_check.sh @@ -1,5 +1,7 @@ #!/bin/bash +NVME_CLI_VERSION="1.12" + ###################################################### # Log ###################################################### @@ -405,6 +407,24 @@ check_hugepage() { fi } +function check_nvme_cli() { + local pod=$1 + + value=$(kubectl exec -i $pod -- nsenter --mount=/proc/1/ns/mnt -- bash -c 'nvme version' 2>/dev/null) + if [ $? -ne 0 ]; then + node=$(kubectl get ${pod} --no-headers -o=custom-columns=:.spec.nodeName) + error "Failed to check nvme-cli version on node ${node}" + return 1 + fi + + local actual_version=$(echo "$value" | grep -o "[0-9]\+\.[0-9]\+") + if [[ "$(printf '%s\n' "${NVME_CLI_VERSION}" "$actual_version" | sort -V | tail -n1)" == "$actual_version" ]]; then + return 0 + fi + error "nvme-cli version should be at least ${NVME_CLI_VERSION} on node ${node}. Actual: ${actual_version}" + return 1 +} + function show_help() { cat <