* feat: move OS type, CPU model and system options to the VM Basics tab OS Type, CPU Model and the CPU/system checkboxes (CPU pinning, USB tablet, TPM, EFI, Secure Boot and their persistent-state options) are core machine settings, but they were buried at the bottom of Advanced Options. Show them on the Basics tab, next to CPU and memory. Install Guest Agent stays in Advanced Options because it changes the cloud config. It now sits right below the User Data editor (the data it modifies) through a new optional slot in the Cloud Config component. Only the placement changes; behaviour and validation are untouched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Alejandro Bonilla <abonilla@suse.com> * feat: follow the review on the VM Basics layout - Basics now reads OS Type and CPU Model, then CPU and memory, then the system checkboxes, the CPU Manager banner and the SSH key, in the order proposed in review. The checkboxes sit in one wrapper; USB Tablet drops its extra mt-20 and uses the plain `check` class like the others. - Advanced Options puts Maintenance Strategy on the same row as Run Strategy; Reserved Memory moves to its own row. - The moved labels leave harvester.virtualMachine.advancedOptions: TPM, EFI, Secure Boot and the persistent-state labels are now under harvester.virtualMachine.systemOptions (also used by the template version editor), and the CPU Manager banner text is under harvester.virtualMachine.cpuPinning.cpuManager. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Alejandro Bonilla <abonilla@suse.com> * feat: match the VM template form and address review on the VM Basics layout The VM template form still had OS Type, CPU Model and the CPU/system checkboxes under Advanced Options, so creating a VM and creating a template put them in different places. Use the same layout as the VM form: - Basics: OS Type and CPU Model, then CPU and memory, then the CPU Pinning, USB Tablet, TPM, EFI and Secure Boot checkboxes (plus the persistent-state options when they apply), then the SSH key. - Advanced Options: Run Strategy and Maintenance Strategy on one row, Reserved Memory on its own row, then Show more and Cloud Config. Install Guest Agent sits right below the User Data editor through the after-user-data slot. Review follow-ups on both forms: - OS Type shows an info icon in create mode warning that selecting an image with an OS label on the Volumes tab may change the OS Type selection, now that OS Type comes before the volumes. - The CPU Manager banner under CPU Pinning is info in create mode, where it only explains why the checkbox is disabled, and stays a warning in edit mode, where it is about the restart. Only placement and presentation change; behaviour and validation are untouched. Signed-off-by: Alejandro Bonilla <abonilla@suse.com> --------- Signed-off-by: Alejandro Bonilla <abonilla@suse.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
harvester-ui-extension
The Harvester UI Extension is a Rancher extension that provides the user interface for Harvester within the Rancher Dashboard.
Note: This extension is available starting from Rancher 2.10.0. Ensure your Rancher version is 2.10.0 or later to access Harvester integration.
Installation
For Harvester UI extension installation instructions, please refer to the page Rancher Integration -> Harvester UI Extension in official Harvester documentation.
Development Setup
Ensure Node.js v20 or later is installed for development and debugging.
Standalone Mode
Run the extension standalone with hot reload at https://localhost:8005.
# Install dependencies
yarn install
# Start the development server
RANCHER_ENV=harvester API=https://your-harvester-ip yarn dev
# Example with specific server version
RANCHER_ENV=harvester VUE_APP_SERVER_VERSION=v1.5.0 API=https://192.168.1.123 yarn dev
You may also define environment variables in a .env file:
RANCHER_ENV=harvester
VUE_APP_SERVER_VERSION=v1.5.0
API=https://192.168.1.123
Rancher Integration Mode
To run as a Rancher extension, follow the Rancher UI Extension Guide.
API=https://your-rancher-ip yarn dev
Commit Message Guidelines
This project uses commit-lint with Conventional Commits to ensure consistent and meaningful commit messages.
Commit Message Format
All commit messages must follow the conventional commit format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Supported Types
- feat: New features
- fix: Bug fixes
- docs: Documentation changes
- style: Code style changes (formatting, missing semicolons, etc.)
- refactor: Code refactoring
- perf: Performance improvements
- test: Adding or updating tests
- build: Build system or external dependencies
- ci: CI/CD changes
- chore: Other changes that don't modify src or test files
- revert: Reverts a previous commit
- wip: Work in progress
- deps: Dependency updates
- security: Security fixes
Examples
# Feature
git commit -m "feat: add new virtual machine creation wizard"
# Bug fix
git commit -m "fix: resolve memory leak in VM console"
# Documentation
git commit -m "docs: update installation instructions"
# Breaking change
git commit -m "feat!: change API endpoint structure
BREAKING CHANGE: The /api/v1/vms endpoint has been replaced with /api/v2/vms"
Git Hooks
The project uses Husky to automatically validate commit messages and run linting before commits:
- pre-commit: Runs ESLint to ensure code quality
- commit-msg: Validates commit message format using commit-lint
These hooks are automatically installed when you run yarn install.
Manual Validation
You can manually validate commit messages:
# Validate the last commit
yarn commitlint
# Validate a specific commit
npx commitlint --from <commit-hash>
# Validate a range of commits
npx commitlint --from <start-hash> --to <end-hash>
Branch Structure
main– Main development branchrelease-harvester-vX.Y– Stable release branches per version seriesvX.Y-head– Testing branches for ongoing changes to extension builds in each release series
Note: The
vX.Y-headbranches are auto-generated and kept in sync with release branches. Use these for testing the latest changes in each version series.
Testing Guidelines
UI Extension Testing
To validate changes in a release series, switch to the appropriate vX.Y-head branch. For main branch testing, use main-head.
- Examples:
- Test
1.0.xseries →v1.0-head - Test
1.5.xseries →v1.5-head
- Test
Steps:
- Navigate to Rancher UI → Local → App → Repositories
- Refresh the Harvester repository using the target
vX.Y-headbranch - Go to the Extensions page and install the desired version
Standalone Mode Testing
To test the standalone UI, configure Harvester to load the UI from an external source.
- Examples of
ui-index:- Main branch →
https://releases.rancher.com/harvester-ui/dashboard/latest/index.html - Release series
1.5.x→https://releases.rancher.com/harvester-ui/dashboard/release-harvester-v1.5/index.html
- Main branch →
Steps:
- Go to Harvester UI → Advanced → Settings → UI
- Set ui-source to
External - Set ui-index to the desired URL
Contributing
If you want to contribute, start by reading this document, then visit our Getting Started guide to learn how to develop and submit changes.
License
Copyright (c) 2014-2026 SUSE, LLC.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.