mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
install.sh: Use built-in shell functionality instead of awk
If install.sh relies on awk, install.sh malfunctions when run on a device with a limited environment where awk is not available. This patch replaces the use of awk with built-in shell script functionality. Change-Id: I071d9f565ff7ef38445a6dd0ea9692b903721601 Signed-off-by: Joakim Roubert <joakimr@axis.com>
This commit is contained in:
parent
ffe0288b68
commit
1d220e33a5
33
install.sh
33
install.sh
@ -298,13 +298,15 @@ download_hash() {
|
||||
HASH_URL=${GITHUB_URL}/download/${VERSION_K3S}/sha256sum-${ARCH}.txt
|
||||
info "Downloading hash ${HASH_URL}"
|
||||
curl -o ${TMP_HASH} -sfL ${HASH_URL} || fatal "Hash download failed"
|
||||
HASH_EXPECTED=`grep " k3s${SUFFIX}$" ${TMP_HASH} | awk '{print $1}'`
|
||||
HASH_EXPECTED=`grep " k3s${SUFFIX}$" ${TMP_HASH}`
|
||||
HASH_EXPECTED=${HASH_EXPECTED%%[[:blank:]]*}
|
||||
}
|
||||
|
||||
# --- check hash against installed version ---
|
||||
installed_hash_matches() {
|
||||
if [ -x ${BIN_DIR}/k3s ]; then
|
||||
HASH_INSTALLED=`sha256sum ${BIN_DIR}/k3s | awk '{print $1}'`
|
||||
HASH_INSTALLED=`sha256sum ${BIN_DIR}/k3s`
|
||||
HASH_INSTALLED=${HASH_INSTALLED%%[[:blank:]]*}
|
||||
if [ "${HASH_EXPECTED}" = "${HASH_INSTALLED}" ]; then
|
||||
return
|
||||
fi
|
||||
@ -322,7 +324,8 @@ download_binary() {
|
||||
# --- verify downloaded binary hash ---
|
||||
verify_binary() {
|
||||
info "Verifying binary download"
|
||||
HASH_BIN=`sha256sum ${TMP_BIN} | awk '{print $1}'`
|
||||
HASH_BIN=`sha256sum ${TMP_BIN}`
|
||||
HASH_BIN=${HASH_BIN%%[[:blank:]]*}
|
||||
if [ "${HASH_EXPECTED}" != "${HASH_BIN}" ]; then
|
||||
fatal "Download sha256 does not match ${HASH_EXPECTED}, got ${HASH_BIN}"
|
||||
fi
|
||||
@ -414,7 +417,12 @@ done
|
||||
pstree() {
|
||||
for pid in $@; do
|
||||
echo $pid
|
||||
pstree $(ps -o ppid= -o pid= | awk "\$1==$pid {print \$2}")
|
||||
# Find and show pstree for child processes of $pid
|
||||
while read parent child; do
|
||||
[ $parent -ne $pid ] || pstree $child
|
||||
done <<-EOF
|
||||
$(ps -o ppid= -o pid=)
|
||||
EOF;
|
||||
done
|
||||
}
|
||||
|
||||
@ -425,7 +433,11 @@ killtree() {
|
||||
killtree $(lsof | sed -e 's/^[^0-9]*//g; s/ */\t/g' | grep -w 'k3s/data/[^/]*/bin/containerd-shim' | cut -f1 | sort -n -u)
|
||||
|
||||
do_unmount() {
|
||||
MOUNTS=`cat /proc/self/mounts | awk '{print $2}' | grep "^$1" | sort -r`
|
||||
MOUNTS=
|
||||
while read ignore mount ignore; do
|
||||
MOUNTS="$mount\n$MOUNTS"
|
||||
done </proc/self/mounts
|
||||
MOUNTS=$(printf $MOUNTS | sort -r -)
|
||||
if [ -n "${MOUNTS}" ]; then
|
||||
umount ${MOUNTS}
|
||||
fi
|
||||
@ -434,10 +446,13 @@ do_unmount() {
|
||||
do_unmount '/run/k3s'
|
||||
do_unmount '/var/lib/rancher/k3s'
|
||||
|
||||
nets=$(ip link show | grep 'master cni0' | awk -F': ' '{print $2}' | sed -e 's|@.*||')
|
||||
for iface in $nets; do
|
||||
ip link delete $iface;
|
||||
done
|
||||
# Delete network interface(s) that match 'master cni0'
|
||||
while read ignore iface ignore; do
|
||||
iface=${iface%%@*}
|
||||
[ -z "$iface" ] || ip link delete $iface
|
||||
done <<-EOF
|
||||
$(ip link show | grep 'master cni0')
|
||||
EOF
|
||||
ip link delete cni0
|
||||
ip link delete flannel.1
|
||||
rm -rf /var/lib/cni/
|
||||
|
Loading…
Reference in New Issue
Block a user