mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
install.sh: Add wget fallback if curl isn't available
Reportedly, some systems don't have curl but wget. With this patch, install.sh will use wget instead of curl if the latter is not available on the target system. Change-Id: I0bc78feec6d8e1dbf7fbef7c2e10833b79bdbbdc Signed-off-by: Joakim Roubert <joakimr@axis.com>
This commit is contained in:
parent
ffe0288b68
commit
db441f28b8
56
install.sh
56
install.sh
|
@ -67,6 +67,7 @@ set -e
|
||||||
# if not specified.
|
# if not specified.
|
||||||
|
|
||||||
GITHUB_URL=https://github.com/rancher/k3s/releases
|
GITHUB_URL=https://github.com/rancher/k3s/releases
|
||||||
|
DOWNLOADER=
|
||||||
|
|
||||||
# --- helper functions for logs ---
|
# --- helper functions for logs ---
|
||||||
info()
|
info()
|
||||||
|
@ -260,11 +261,14 @@ setup_verify_arch() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- fatal if no curl ---
|
# --- verify existence of network downloader executable ---
|
||||||
verify_curl() {
|
verify_downloader() {
|
||||||
if [ -z `which curl || true` ]; then
|
# Return failure if it doesn't exist or is no executable
|
||||||
fatal "Can not find curl for downloading files"
|
[ -x "$(which $1)" ] || return 1
|
||||||
fi
|
|
||||||
|
# Set verified executable as our downloader program and return success
|
||||||
|
DOWNLOADER=$1
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- create tempory directory and cleanup when done ---
|
# --- create tempory directory and cleanup when done ---
|
||||||
|
@ -288,7 +292,17 @@ get_release_version() {
|
||||||
VERSION_K3S="${INSTALL_K3S_VERSION}"
|
VERSION_K3S="${INSTALL_K3S_VERSION}"
|
||||||
else
|
else
|
||||||
info "Finding latest release"
|
info "Finding latest release"
|
||||||
VERSION_K3S=`curl -w "%{url_effective}" -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||'`
|
case $DOWNLOADER in
|
||||||
|
curl)
|
||||||
|
VERSION_K3S=$(curl -w '%{url_effective}' -I -L -s -S ${GITHUB_URL}/latest -o /dev/null | sed -e 's|.*/||')
|
||||||
|
;;
|
||||||
|
wget)
|
||||||
|
VERSION_K3S=$(wget -SqO /dev/null ${GITHUB_URL}/latest 2>&1 | grep Location | sed -e 's|.*/||')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
fatal "Incorrect downloader executable '$DOWNLOADER'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
fi
|
fi
|
||||||
info "Using ${VERSION_K3S} as release"
|
info "Using ${VERSION_K3S} as release"
|
||||||
}
|
}
|
||||||
|
@ -297,7 +311,19 @@ get_release_version() {
|
||||||
download_hash() {
|
download_hash() {
|
||||||
HASH_URL=${GITHUB_URL}/download/${VERSION_K3S}/sha256sum-${ARCH}.txt
|
HASH_URL=${GITHUB_URL}/download/${VERSION_K3S}/sha256sum-${ARCH}.txt
|
||||||
info "Downloading hash ${HASH_URL}"
|
info "Downloading hash ${HASH_URL}"
|
||||||
curl -o ${TMP_HASH} -sfL ${HASH_URL} || fatal "Hash download failed"
|
case $DOWNLOADER in
|
||||||
|
curl)
|
||||||
|
curl -o ${TMP_HASH} -sfL ${HASH_URL}
|
||||||
|
;;
|
||||||
|
wget)
|
||||||
|
wget -qO ${TMP_HASH} ${HASH_URL}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
fatal "Incorrect executable '$DOWNLOADER'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Abort if download command failed
|
||||||
|
[ $? -eq 0 ] || fatal 'Hash download failed'
|
||||||
HASH_EXPECTED=`grep " k3s${SUFFIX}$" ${TMP_HASH} | awk '{print $1}'`
|
HASH_EXPECTED=`grep " k3s${SUFFIX}$" ${TMP_HASH} | awk '{print $1}'`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,7 +342,19 @@ installed_hash_matches() {
|
||||||
download_binary() {
|
download_binary() {
|
||||||
BIN_URL=${GITHUB_URL}/download/${VERSION_K3S}/k3s${SUFFIX}
|
BIN_URL=${GITHUB_URL}/download/${VERSION_K3S}/k3s${SUFFIX}
|
||||||
info "Downloading binary ${BIN_URL}"
|
info "Downloading binary ${BIN_URL}"
|
||||||
curl -o ${TMP_BIN} -sfL ${BIN_URL} || fatal "Binary download failed"
|
case $DOWNLOADER in
|
||||||
|
curl)
|
||||||
|
curl -o ${TMP_BIN} -sfL ${BIN_URL}
|
||||||
|
;;
|
||||||
|
wget)
|
||||||
|
wget -qO ${TMP_BIN} ${BIN_URL}
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
fatal "Incorrect executable '$DOWNLOADER'"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Abort if download command failed
|
||||||
|
[ $? -eq 0 ] || fatal 'Binary download failed'
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- verify downloaded binary hash ---
|
# --- verify downloaded binary hash ---
|
||||||
|
@ -355,7 +393,7 @@ download_and_verify() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
setup_verify_arch
|
setup_verify_arch
|
||||||
verify_curl
|
verify_downloader curl || verify_downloader wget || fatal 'Can not find curl or wget for downloading files'
|
||||||
setup_tmp
|
setup_tmp
|
||||||
get_release_version
|
get_release_version
|
||||||
download_hash
|
download_hash
|
||||||
|
|
Loading…
Reference in New Issue
Block a user