From f34553f5b7aa3aae20cfa9d0fb4bd9bfd9915729 Mon Sep 17 00:00:00 2001 From: Chris Hunt Date: Wed, 8 Apr 2026 14:22:36 +0100 Subject: [PATCH] KASM-8264 Update upgrade --- index.js | 30 +++---------------- public/js/index.js | 74 ++++++++++++++++++---------------------------- 2 files changed, 32 insertions(+), 72 deletions(-) diff --git a/index.js b/index.js index 76719c3..824581c 100644 --- a/index.js +++ b/index.js @@ -259,33 +259,10 @@ io.on('connection', async function (socket) { // Run bash upgrade with our custom flags async function upgrade(data) { - // Determine upgrade settings - upgradeSettings = data[0]; - var imagesI = data[1]; - upgradeFlags = ['/kasm_release/upgrade.sh', '-L', port]; - if (upgradeSettings.keepOldImages == true) { - upgradeFlags.push('-K'); - } else { - upgradeFlags.push('-U'); - } + upgradeFlags = ['/kasm_release/upgrade.sh', '-L', port, '-K']; - // GPU yaml merge - if (upgradeSettings.forceGpu !== 'disabled' && imagesI.images) { - imagesI = await setGpu(imagesI); - } - - // Write finalized image data - let yamlStr = yaml.dump(imagesI); - if (yamlStr.startsWith("false")) { - upgradeFlags = upgradeFlags.filter(function(e) { return e !== '-K' }); - upgradeFlags = upgradeFlags.filter(function(e) { return e !== '-U' }); - } else { - await fsw.writeFile('/kasm_release/conf/database/seed_data/default_images_' + arch + '.yaml', yamlStr); - await appendRollingToServiceImages(); - } - - // Copy over version - await fsw.copyFile('/version.txt', '/opt/version.txt'); + // Patch service image tags for rolling builds + await appendRollingToServiceImages(); // Run upgrade let cmd = pty.spawn('/bin/bash', upgradeFlags); @@ -294,6 +271,7 @@ io.on('connection', async function (socket) { }); cmd.on('exit', function(code, signal) { if (code == 0) { + fsw.copyFile('/version.txt', '/opt/version.txt'); socket.emit('done', port); } }); diff --git a/public/js/index.js b/public/js/index.js index 7e34819..3a33ab6 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -6,6 +6,8 @@ var term; var installImages = []; var installSettings = {}; var upgradeSettings = {}; +var currentVersion = ''; +var isUpgrade = false; var selected = false; // Socket.io connection @@ -43,21 +45,10 @@ async function install() { // Execute upgrade async function upgrade() { - showTerminal() + isUpgrade = true; + showTerminal(); titleChange('Upgrading'); - // Create new object based on image selection - let selectedImages = {alembic_version: images.alembic_version, images: [], group_images: []}; - if (installImages.length == 0) { - socket.emit('upgrade', [upgradeSettings, false]); - } else { - for await (let image of installImages) { - let srcImage = images.images.find(x => x.friendly_name === image); - srcImage['enabled'] = true; - selectedImages.images.push(srcImage); - selectedImages.group_images.push({image_id: srcImage.image_id, group_id: "68d557ac-4cac-42cc-a9f3-1c7c853de0f3"}); - } - socket.emit('upgrade', [upgradeSettings, selectedImages]); - } + socket.emit('upgrade', [upgradeSettings, false]); } // Show page container @@ -112,6 +103,7 @@ async function renderDash(data) { titleChange('Dashboard'); let info = data[0]; images = data[1]; + currentVersion = info.currentVersion; versionChange(info.currentVersion, info.sourceLocal); // Store GPU info $('body').data('gpuInfo', info.gpuInfo); @@ -264,40 +256,25 @@ async function pickSettings() { } // Render upgrade form -async function renderUpgrade() { +function renderUpgrade() { showContainer(); - let gpus = $('body').data('gpuInfo'); titleChange('Upgrade Settings'); - let form = $('
', {id: 'settingsform'}); let fieldset = $('
').append($('').text('Kasm Upgrade Settings')); - let keepOldImages = $('
', {class: 'form-group'}).append([ - $('