diff --git a/ct/k0s-v4.sh b/ct/k0s-v5.sh similarity index 88% rename from ct/k0s-v4.sh rename to ct/k0s-v5.sh index 8254c26c..3e5ddf1a 100644 --- a/ct/k0s-v4.sh +++ b/ct/k0s-v5.sh @@ -1,4 +1,14 @@ #!/usr/bin/env bash +function header_info { + cat <<"EOF" + __ ____ + / /__/ __ \__v4_ + / //_/ / / / ___/ + / ,< / /_/ (__ ) +/_/|_|\____/____/ + +EOF +} echo -e "Loading..." APP="k0s" var_disk="4" @@ -7,8 +17,7 @@ var_ram="2048" var_os="debian" var_version="11" NSAPP=$(echo ${APP,,} | tr -d ' ') -var_install="${NSAPP}-install" -NEXTID=$(pvesh get /cluster/nextid) +var_install="${NSAPP}-v5-install" INTEGER='^[0-9]+$' YW=$(echo "\033[33m") BL=$(echo "\033[36m") @@ -20,6 +29,7 @@ CL=$(echo "\033[m") BFR="\\r\\033[K" HOLD="-" CM="${GN}✓${CL}" +CROSS="${RD}✗${CL}" set -o errexit set -o errtrace set -o nounset @@ -35,31 +45,22 @@ function error_exit() { echo -e "$flag $msg" 1>&2 exit $EXIT } -if (whiptail --title "${APP} LXC" --yesno "This will create a New ${APP} LXC. Proceed?" 10 58); then - echo "User selected Yes" -else - clear - echo -e "⚠ User exited script \n" - exit -fi -function header_info { - cat <<"EOF" - __ ____ - / /__/ __ \__v4_ - / //_/ / / / ___/ - / ,< / /_/ (__ ) -/_/|_|\____/____/ - -EOF -} + function msg_info() { local msg="$1" echo -ne " ${HOLD} ${YW}${msg}..." } + function msg_ok() { local msg="$1" echo -e "${BFR} ${CM} ${GN}${msg}${CL}" } + +function msg_error() { + local msg="$1" + echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" +} + function PVE_CHECK() { PVE=$(pveversion | grep "pve-manager/7" | wc -l) if [[ $PVE != 1 ]]; then @@ -69,6 +70,30 @@ function PVE_CHECK() { exit fi } + +if command -v pveversion >/dev/null 2>&1; then + if (whiptail --title "${APP} LXC" --yesno "This will create a New ${APP} LXC. Proceed?" 10 58); then + NEXTID=$(pvesh get /cluster/nextid) + else + clear + echo -e "⚠ User exited script \n" + exit + fi +fi +if ! command -v pveversion >/dev/null 2>&1; then + if [[ ! -f /etc/k0s/k0s.yaml ]]; then + msg_error "No ${APP} Installation Found!"; + exit + fi + if (whiptail --title "${APP} LXC UPDATE" --yesno "This will update ${APP} LXC. Proceed?" 10 58); then + echo "User selected Update" + else + clear + echo -e "⚠ User exited script \n" + exit + fi +fi + function default_settings() { echo -e "${DGN}Using Container Type: ${BGN}Unprivileged${CL} ${RD}NO DEVICE PASSTHROUGH${CL}" CT_TYPE="1" @@ -102,6 +127,7 @@ function default_settings() { SSH="no" echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" VERB="no" + VERB2="silent" echo -e "${BL}Creating a ${APP} LXC using the above default settings${CL}" } function advanced_settings() { @@ -113,7 +139,7 @@ function advanced_settings() { if [ $exitstatus = 0 ]; then echo -e "${DGN}Using Container Type: ${BGN}$CT_TYPE${CL}" fi - PW1=$(whiptail --inputbox "Set Root Password (needed for root ssh access)" 8 58 --title "PASSWORD (leave blank for automatic login)" --cancel-button Exit-Script 3>&1 1>&2 2>&3) + PW1=$(whiptail --inputbox "Set Root Password (needed for root ssh access)" 8 58 --title "PASSWORD(leave blank for automatic login)" --cancel-button Exit-Script 3>&1 1>&2 2>&3) exitstatus=$? if [ $exitstatus = 0 ]; then if [ -z $PW1 ]; then @@ -254,9 +280,11 @@ function advanced_settings() { if (whiptail --defaultno --title "VERBOSE MODE" --yesno "Enable Verbose Mode?" 10 58); then echo -e "${DGN}Enable Verbose Mode: ${BGN}Yes${CL}" VERB="yes" + VERB2="" else echo -e "${DGN}Enable Verbose Mode: ${BGN}No${CL}" VERB="no" + VERB2="silent" fi if (whiptail --title "ADVANCED SETTINGS COMPLETE" --yesno "Ready to create ${APP} LXC?" --no-button Do-Over 10 58); then echo -e "${RD}Creating a ${APP} LXC using the above advanced settings${CL}" @@ -267,7 +295,7 @@ function advanced_settings() { advanced_settings fi } -function start_script() { +function install_script() { if (whiptail --title "SETTINGS" --yesno "Use Default Settings?" --no-button Advanced 10 58); then header_info echo -e "${BL}Using Default Settings${CL}" @@ -278,8 +306,19 @@ function start_script() { advanced_settings fi } + +function update_script() { clear -start_script +header_info +msg_info "Updating ${APP} LXC" +apt-get update &>/dev/null +apt-get -y upgrade &>/dev/null +msg_ok "Updated ${APP} LXC" +msg_ok "Update Successfull" +exit +} +clear +if ! command -v pveversion >/dev/null 2>&1; then update_script; else install_script; fi if [ "$VERB" == "yes" ]; then set -x; fi if [ "$CT_TYPE" == "1" ]; then FEATURES="nesting=1,keyctl=1" @@ -289,6 +328,7 @@ fi TEMP_DIR=$(mktemp -d) pushd $TEMP_DIR >/dev/null export VERBOSE=$VERB +export STD=$VERB2 export SSH_ROOT=${SSH} export CTID=$CT_ID export PCT_OSTYPE=$var_os