48 lines
2.3 KiB
Bash
Executable File
48 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
INSTALL_PATH="/usr/local/bin"
|
|
|
|
# Fetch latest versions dynamically
|
|
KUBECTL_VERSION=$(curl -L -s https://dl.k8s.io/release/stable.txt)
|
|
KUBIE_VERSION=$(curl -s https://api.github.com/repos/sbstp/kubie/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
|
|
KTAIL_VERSION=$(curl -s https://api.github.com/repos/atombender/ktail/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
|
|
K9S_VERSION=$(curl -s https://api.github.com/repos/derailed/k9s/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
|
|
YQ_VERSION=$(curl -s https://api.github.com/repos/mikefarah/yq/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
|
|
|
|
HELM_URL="https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3"
|
|
HELM_CMD="/tmp/get_helm.sh"
|
|
|
|
# Detect sudo or doas
|
|
SUDO_CMD=$(command -v sudo || command -v doas) || { echo "Neither sudo nor doas found. Please install one of them."; exit 1; }
|
|
|
|
# Detect system architecture
|
|
INSTALL_ARCH=$(uname -m | sed -E 's/x86_64/amd64/; s/aarch64/arm64/; s/armv7l/arm/; s/ppc64le/ppc64le/; s/s390x/s390x/')
|
|
if [ -z "$INSTALL_ARCH" ]; then
|
|
echo "Unsupported architecture: $(uname -m)"
|
|
exit 1
|
|
fi
|
|
|
|
# Fetch binaries
|
|
$SUDO_CMD wget -qO ${INSTALL_PATH}/kubectl https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/${INSTALL_ARCH}/kubectl
|
|
$SUDO_CMD wget -qO ${INSTALL_PATH}/kubie https://github.com/sbstp/kubie/releases/download/${KUBIE_VERSION}/kubie-linux-${INSTALL_ARCH}
|
|
$SUDO_CMD wget -qO ${INSTALL_PATH}/yq https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_${INSTALL_ARCH}
|
|
$SUDO_CMD wget -qO ${INSTALL_PATH}/ktail https://github.com/atombender/ktail/releases/download/${KTAIL_VERSION}/ktail-linux-${INSTALL_ARCH}
|
|
|
|
# k9s (tar.gz format)
|
|
$SUDO_CMD wget -qO ${INSTALL_PATH}/k9s_Linux_${INSTALL_ARCH}.tar.gz https://github.com/derailed/k9s/releases/download/${K9S_VERSION}/k9s_linux_${INSTALL_ARCH}.tar.gz
|
|
$SUDO_CMD tar -xzf ${INSTALL_PATH}/k9s_Linux_${INSTALL_ARCH}.tar.gz -C ${INSTALL_PATH}/ k9s
|
|
$SUDO_CMD chown root:root ${INSTALL_PATH}/k9s
|
|
$SUDO_CMD rm -f ${INSTALL_PATH}/k9s_Linux_${INSTALL_ARCH}.tar.gz
|
|
|
|
# Set execution permissions
|
|
$SUDO_CMD chmod a+x ${INSTALL_PATH}/kubectl ${INSTALL_PATH}/kubie ${INSTALL_PATH}/yq ${INSTALL_PATH}/k9s ${INSTALL_PATH}/ktail
|
|
|
|
# Install Helm
|
|
echo "Installing Helm..."
|
|
curl -fsSL -o ${HELM_CMD} ${HELM_URL}
|
|
chmod 700 ${HELM_CMD}
|
|
$SUDO_CMD ${HELM_CMD} --no-sudo
|
|
rm -f ${HELM_CMD}
|
|
|
|
echo "Installation complete"
|