Skip to content

Install/Restore/Clone/Move with additional-volume support#1004

Merged
stephdl merged 60 commits intomainfrom
sdl-7757
Jan 27, 2026
Merged

Install/Restore/Clone/Move with additional-volume support#1004
stephdl merged 60 commits intomainfrom
sdl-7757

Conversation

@stephdl
Copy link
Contributor

@stephdl stephdl commented Jan 7, 2026

Summary

This PR improves node selection and storage handling across install/restore/clone/move flows.

Changes

Node selection

  • Show a dedicated message when a node is offline (so users understand why it can’t be selected).
  • Fix the disable logic so nodes are disabled when they are non-eligible and/or offline.

Additional disk / volume support

  • Allow selecting an additional disk when mountpoints are available from list-mountpoints.
  • Improve the UI to surface additional storage availability (node indication + additional volumes selector).

Modals impacted

  • InstallAppModal
    • Offline-node feedback
    • Improved step navigation
    • Additional volume selection when offered
  • CloneOrMoveAppModal
    • Refactored flow for improved volume selection and navigation
  • RestoreSingleInstanceModal
    • Handles additional volumes
    • Improved loading states

Other

  • Update i18n prompts/messages for the new UX.
  • Bump @nethserver/ns8-ui-lib to 1.11.0.

Notes for testing or review

  • install the core version : ./core-install ghcr.io/nethserver/core:sdl-7757
  • create an additional disk, mount it to the fstab
fdisk -l
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir -p /mnt/data
blkid /dev/sdb1
vim  /etc/fstab
add this example: UUID=109d0947-8cd9-441d-9887-902a3396beea /mnt/data ext4 defaults,nofail 0 2
ls /mnt/data/

the actions list-mountpoints should show your disk

[root@R1-pve ~]# api-cli run node/1/list-mountpoints | jq
{
  "mountpoints": [
    {
      "path": "/mnt/data",
      "label": "",
      "size": 67317051392,
      "used": 7893012480,
      "available": 59424038912,
      "ui_name": "data"
    }
  ],
  "default_disk": {
    "size": 60747141120,
    "used": 11857985536,
    "available": 48889155584,
    "path": "/",
    "label": "",
    "ui_name": ""
  }
}

for a good testing

  • test on one node with mattermost (no additional disk possible way), nextcloud (possible additional disk)
  • test clone, install, backup and restore
  • do the same with two nodes
  • test clone, move, install, backup and restore

Refs NethServer/dev#7757

@stephdl stephdl force-pushed the sdl-7757 branch 5 times, most recently from 4cdc465 to ad117fd Compare January 13, 2026 15:05
@stephdl stephdl requested a review from Copilot January 20, 2026 14:24
@stephdl stephdl changed the title Add offline node message and update disabled nodes logic Install/Restore/Clone/Move: offline-node messaging, correct node disabling, and additional-volume support Jan 20, 2026
@stephdl stephdl changed the title Install/Restore/Clone/Move: offline-node messaging, correct node disabling, and additional-volume support offline-node messaging, correct node disabling, and additional-volume support Jan 20, 2026
@stephdl stephdl changed the title offline-node messaging, correct node disabling, and additional-volume support Install/Restore/Clone/Move with additional-volume support Jan 20, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request enhances the user interface for application installation, cloning, moving, and restoration by adding offline node detection and volume selection capabilities. The changes convert several modals to wizard-style interfaces and implement comprehensive cluster status checking.

Changes:

  • Converted InstallAppModal, CloneOrMoveAppModal, and RestoreSingleInstanceModal from simple modals to multi-step wizards with volume selection
  • Added offline node detection and display logic to properly disable nodes that are either non-eligible or offline
  • Introduced AdditionnalVolumesSelector component for selecting storage volumes during installation/restoration
  • Removed obsolete translation keys that were no longer needed after the UI improvements

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
InstallAppModal.vue Converted to wizard with volume selection, added offline node detection and cluster status checking
CloneOrMoveAppModal.vue Converted to wizard with volume selection, integrated offline node handling into disabled nodes logic
AdditionnalVolumesSelector.vue New component for displaying and selecting storage volumes with usage information
NodeSelector.vue Added visual indicator for nodes with additional storage available
RestoreSingleInstanceModal.vue Extended with volume selection step and offline node detection for backup restoration
translation files Removed obsolete translation keys and added new keys for volume selection and offline status

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@stephdl stephdl requested a review from andre8244 January 26, 2026 15:39
Copy link
Contributor

@andre8244 andre8244 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few minor adjustments then we're done 💪

@stephdl stephdl requested a review from andre8244 January 27, 2026 14:42
@stephdl stephdl merged commit 9f3df19 into main Jan 27, 2026
2 checks passed
@stephdl stephdl deleted the sdl-7757 branch January 27, 2026 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants