#!/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"