Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions deploy/base/kubernetes/v1.28.15/scripts/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,5 @@ arch=$(uname -m)
if [[ "$arch" != "x86_64" && "$arch" != "aarch64" ]]; then
error "Host CPU architecture must be AMD64 (x86_64) or AArch64 (aarch64). Current: $arch"
fi
kernel_full=$(uname -r)
if [ "$(ver_ge "$kernel_full" "4.19.57")" -ne 0 ]; then
if [[ "$kernel_full" != *"el8"* && "$kernel_full" != *"el9"* ]]; then
error "Linux kernel must be >= 4.19.57 or an equivalent supported version (for example RHEL8's 4.18). Current: $kernel_full"
fi
fi
bash kernel.sh
logger "check root,port,cri success"
50 changes: 50 additions & 0 deletions deploy/base/kubernetes/v1.28.15/scripts/kernel.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/bin/bash
source common.sh
ver_ge() {
# usage: ver_ge "4.19.57" "4.18"
awk -v a="$1" -v b="$2" 'BEGIN{
split(a,A,"[.-]"); split(b,B,"[.-]");
for(i=1;i<=3;i++){ if(A[i]=="") A[i]=0; if(B[i]=="") B[i]=0 }
for(i=1;i<=3;i++){ if(A[i]>B[i]){print 0; exit} else if(A[i]<B[i]){print 1; exit} }
print 0
}'
}
kernel_full="$(uname -r)" # e.g. 5.14.0-503.14.1.el9_4.x86_64 / 4.18.0-372.32.1.el8_6.x86_64
kernel_ver="${kernel_full%%-*}" # only version:5.14.0 / 4.18.0

os_id=""; os_ver="";
if [ -r /etc/os-release ]; then
. /etc/os-release
os_id="${ID:-}"; os_ver="${VERSION_ID:-}" # e.g. 8.6 / 9.4 / 20.03
fi

is_rhel_like=false
case "$os_id" in
rhel|rocky|almalinux|centos|ol) is_rhel_like=true ;;
esac

is_euler_like=false
case "$os_id" in
euleros|EulerOS|openEuler) is_euler_like=true ;;
esac

ok=false

# Condition 1: General kernel line
if ver_ge "$kernel_ver" "5.10"; then
ok=true

# Condition 2: RHEL-like and kernel >= 4.18
elif $is_rhel_like && ver_ge "$kernel_ver" "4.18"; then
ok=true

# Condition 3 (optional): EulerOS/openEuler and kernel >= 4.18
elif $is_euler_like && ver_ge "$kernel_ver" "4.18"; then
ok=true
fi

if [ "$ok" != true ]; then
error "Linux kernel must be >= 5.10 OR vendor-backed equivalent (e.g., RHEL >= 8.6 with 4.18+, EulerOS/openEuler >= 20.03 with 4.18+). Current: $kernel_full (OS: ${ID:-unknown} ${VERSION_ID:-unknown})"
fi

logger "Kernel check passed: $kernel_full (OS: ${ID:-unknown} ${VERSION_ID:-unknown})"
Loading