From 15b36b4d16afb9702d7a43ce722a2f8a1b715cf7 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 24 Jun 2025 13:24:55 +0200 Subject: [PATCH] Minio: use latest version or latest feature rich version (#5423) * minio ref * Improvements * Update minio-install.sh --- ct/minio.sh | 23 +++++++++++++++++--- install/minio-install.sh | 46 +++++++++++++++++++++++++++++++++------- 2 files changed, 58 insertions(+), 11 deletions(-) diff --git a/ct/minio.sh b/ct/minio.sh index a7b4700dd..018fdb4d0 100644 --- a/ct/minio.sh +++ b/ct/minio.sh @@ -27,16 +27,33 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi + FEATURE_RICH_VERSION="2025-04-22T22-12-26Z" RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + CURRENT_VERSION="" + [[ -f /opt/${APP}_version.txt ]] && CURRENT_VERSION=$(cat /opt/${APP}_version.txt) + RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}') + + if [[ "${CURRENT_VERSION}" == "${FEATURE_RICH_VERSION}" && "${RELEASE}" != "${FEATURE_RICH_VERSION}" ]]; then + echo + echo "You are currently running the last feature-rich community version: ${FEATURE_RICH_VERSION}" + echo "WARNING: Updating to the latest version will REMOVE most management features from the Console UI." + echo "Do you still want to upgrade to the latest version? [y/N]: " + read -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + msg_ok "No update performed. Staying on the feature-rich version." + exit + fi + fi + + if [[ "${CURRENT_VERSION}" != "${RELEASE}" ]]; then msg_info "Stopping ${APP}" systemctl stop minio msg_ok "${APP} Stopped" msg_info "Updating ${APP} to ${RELEASE}" mv /usr/local/bin/minio /usr/local/bin/minio_bak - curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o $(basename "https://dl.min.io/server/minio/release/linux-amd64/minio") - mv minio /usr/local/bin/ + curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio chmod +x /usr/local/bin/minio echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP}" diff --git a/install/minio-install.sh b/install/minio-install.sh index c94af1227..fe6bc6b47 100644 --- a/install/minio-install.sh +++ b/install/minio-install.sh @@ -13,31 +13,60 @@ setting_up_container network_check update_os -msg_info "Setup MinIO" -RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}') -curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio +FEATURE_RICH_VERSION="2025-04-22T22-12-26Z" + +echo +echo "MinIO recently removed many management features from the Console UI." +echo "The last feature-complete version is: $FEATURE_RICH_VERSION" +echo "Latest versions require the paid edition for full UI functionality." +echo +echo "Choose which version to install:" +echo " [N] Feature-rich community version ($FEATURE_RICH_VERSION) [Recommended]" +echo " [Y] Latest version (may lack UI features)" +echo +read -p "Install latest MinIO version? [y/N]: " -n 1 -r +echo +if [[ $REPLY =~ ^[Yy]$ ]]; then + USE_LATEST=true +else + USE_LATEST=false +fi + +msg_info "Setting up MinIO" +if [[ "$USE_LATEST" == "true" ]]; then + RELEASE=$(curl -fsSL https://api.github.com/repos/minio/minio/releases/latest | grep '"tag_name"' | awk -F '"' '{print $4}') + DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/minio" +else + RELEASE="$FEATURE_RICH_VERSION" + DOWNLOAD_URL="https://dl.min.io/server/minio/release/linux-amd64/archive/minio.RELEASE.${FEATURE_RICH_VERSION}" +fi + +curl -fsSL "$DOWNLOAD_URL" -o /usr/local/bin/minio chmod +x /usr/local/bin/minio useradd -r minio-user -s /sbin/nologin mkdir -p /home/minio-user chown minio-user:minio-user /home/minio-user mkdir -p /data chown minio-user:minio-user /data + MINIO_ADMIN_USER="minioadmin" MINIO_ADMIN_PASSWORD="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)" + cat </etc/default/minio MINIO_ROOT_USER=${MINIO_ADMIN_USER} MINIO_ROOT_PASSWORD=${MINIO_ADMIN_PASSWORD} EOF + { echo "" - echo "MinIO-Credentials" + echo "MinIO Credentials" echo "MinIO Admin User: $MINIO_ADMIN_USER" echo "MinIO Admin Password: $MINIO_ADMIN_PASSWORD" } >>~/minio.creds -echo "${RELEASE}" >/opt/${APPLICATION}_version.txt +echo "${RELEASE}" >/opt/${APPLICATION,,}_version.txt msg_ok "Setup MinIO" -msg_info "Creating Service" +msg_info "Creating service" cat </etc/systemd/system/minio.service [Unit] Description=MinIO @@ -57,8 +86,9 @@ LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF + systemctl enable -q --now minio -msg_ok "Created Service" +msg_ok "Service created" motd_ssh customize @@ -66,4 +96,4 @@ customize msg_info "Cleaning up" $STD apt-get -y autoremove $STD apt-get -y autoclean -msg_ok "Cleaned" +msg_ok "Cleanup complete"