In Harvester v1.9.0, we're moving LHv2 from "Experimental" to "Preview",
so I've added a new preview label to the settings interface. I figure
given Experimental had the "error" color, I should make "Preview" use
the warning color, to make it a bit less alarming :-)
Related-to: https://github.com/harvester/harvester/issues/9960
(cherry picked from commit 4fa6470343)
Signed-off-by: Tim Serong <tserong@suse.com>
Co-authored-by: Tim Serong <tserong@suse.com>
Co-authored-by: Volker Theile <vtheile@suse.com>
* fix: vGPU doesn't display in edit VM page
* fix: align PCI passthrough action buttons height
Match the enable/disable passthrough and Actions dropdown buttons to 40px and move the selected-count label below them.
---------
(cherry picked from commit d550046189)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* fix: prevent duplicated cloud-config for empty user data
* refactor: AI review
---------
(cherry picked from commit fabc1cec21)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* deps: update rancher/shell to 3.0.12-rc.7
* fix: move filter labels/schedule buttons position
* feat: improve serial console
* feat(serial-console): add terminal search toolbar and highlight tuning
* refactor: clear searach result after close
* refactor: fine tune serial console
---------
(cherry picked from commit f97f14c811)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* fix: project resource quota not set in POST API payload
* fix: guard onQuotasInput against undefined payload
---------
(cherry picked from commit f8a29a1c54)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* fix: VM migration tab not appear when first login
* feat: add access/ volume mode model
* feat: add selected all | clear all actions for selected VM
* fix: bugs in VM selection table
* refactor: copilot review
---------
(cherry picked from commit afe632b723)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Make syncStaticIpAnnotations idempotent so it no longer mutates VM
annotations when already in sync, breaking a reactive update loop that
froze the browser on the VM detail page. Also stack multiple IP
addresses vertically in the IP Address column.
(cherry picked from commit b87f367583)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Allow users to author and persist Cloud Config (cloud-init) on Windows VMs. Today the Cloud Config editor is hidden entirely when OS Type is set to Windows, and even if user-data/network-data has been supplied elsewhere the cloudinitdisk volume and its Secret are silently dropped from the VM spec. This is more restrictive than what Windows guests actually support: Cloudbase-Init reads cloudinit-style NoCloud datasources on Windows and is a common way to bootstrap Windows guests (install VMDP + qemu-guest-agent, enable OpenSSH server, drop authorized_keys, run first-boot runcmd scripts, join a domain, etc.).
Windows guests today have to hand-edit the VM YAML after the UI creates the VM — a workflow that is fragile, undiscoverable, and defeats the point of a UI. See the linked upstream issue for the same request from the operator side.
Backport of https://github.com/harvester/harvester-ui-extension/issues/984
(cherry picked from commit e013534373)
Signed-off-by: Alejandro Bonilla <abonilla@suse.com>
Signed-off-by: Volker Theile <vtheile@suse.com>
Co-authored-by: Alejandro Bonilla <abonilla@suse.com>
Co-authored-by: Volker Theile <vtheile@suse.com>
* ci: trigger standalone build when PR labeled with build-artifact (#1058)
* ci: trigger standalone build when PR labeled with build-artifact
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: skip upload gate for PR-triggered standalone builds
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
(cherry picked from commit ac26fe2f0e)
* fix: CI_BRANCH
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: add VMware VDDK image option to VM migration provider
Add an optional VMware VDDK Image field to the Configure Provider step of the VM migration wizard, bound to spec.settings.vddkInitImage when set and left unset when empty. Supports create and edit flows and populates from the existing provider when editing.
* refactor: copilot review
---------
(cherry picked from commit a6bd7ec00e)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Show an error banner and disable the Create and Start action when the migration plan name matches an existing provider or migration plan name.
(cherry picked from commit 790cade04d)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* refactor: new design for review page
* refactor: customize empty table rows message
* refactor: fixed the table column
* style: update header tag and align fixed header actions in review migration step
* style: remove unneeded overflow css
---------
(cherry picked from commit 2903e86c02)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* refactor: modify relatedResources using ownerReferences uid
* refactor: wordings
* fix(vm-migration): keep completed VMs green and linkable in failed plans
When a plan fails overall, VMs that already reached 100% were marked with an error: their progress bar turned red while the label still read "Finished Successfully", and the migrated-VM detail link was hidden.
Skip the plan-level failure fallback for VMs at 100% and drop the !planFailed guard from the detail-link condition so successfully migrated VMs stay green and stay navigable.
---------
(cherry picked from commit 2d747e435a)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
formatDuration returned an empty value when a migration was in progress (started set but completed missing), causing the duration column to show an em-dash for all running plans. It now computes elapsed time up to Date.now() when completed is absent, only returning the placeholder when started is unset or timestamps are invalid.
Related issue: harvester/harvester#10417
(cherry picked from commit 7a84e08f99)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* ci: disable header-max-length commit rule
* docs(agents): clarify agent guide and share it across AI assistants
- Symlink CLAUDE.md and GEMINI.md to AGENTS.md so Claude Code, Copilot
and Gemini read the same guidance
- Use the full conventional-commit format with scope in the guide
- Clarify Vue SFC block order and the feature-flag development steps
- Bump the documented Node.js requirement to v24
---------
(cherry picked from commit 3d39626b93)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* refactor(host): update resource usage gauges and table column headers
- Replace ConsumptionGauge with PercentageBar in CPU/Memory/Storage
formatters to show the percentage next to the progress bar
- Rename the Disk State column header to Disk (via i18n)
- Display the CPU Manager column header on two lines
* refactor: add noopener noreferrer rel
---------
(cherry picked from commit 1c3b40b631)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Strip the scope in parentheses so titles like 'refactor(host): ...'
resolve to the 'refactor' type instead of falling back to 'other'.
(cherry picked from commit 87baf75301)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: improve VM migration dashboard mapping labels and VM detail link
- Display Management Network / Ignored labels via i18n in mappings column and review card
- Add clickable external-link icon to migrated VM detail page after successful migration
- Add tooltip to the VM detail external-link icon
* refactor: modify duration column width
* refactor: copilot review comment
---------
(cherry picked from commit a10d651827)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* fix: regenerate stale cloud-init secret name after VM name change
When creating a VM, the cloud-init/sysprep secret name was generated
once and cached for the component's lifetime (needNewSecret is always
false during create). If a first create attempt was rejected by the
API (e.g. duplicate name) and the user corrected the name and retried,
the VM was created successfully but reused the secret name derived
from the rejected attempt, and any subsequent secret-creation failure
surfaced as a stale error after the VM already existed.
Now the secret name (and Windows sysprep secret name) is regenerated
whenever the VM name prefix used to generate it no longer matches the
current name, and is proactively reset on a failed create attempt so
retries always start fresh.
Fixesharvester/harvester#11174
* refactor: copilot review
* refactor: remove console
---------
(cherry picked from commit 429d9e18ad)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* ci: modify PR template
* refactor: review comment
---------
(cherry picked from commit dc166d8fc9)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: allow user specify namespace for migrated VM
* refactor: not pre-select target namespace
* refactor: ignore option
* refactor: copilot review
---------
(cherry picked from commit 3ff4534294)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: keep upgrade button appear
* refactor: copilot review
---------
(cherry picked from commit d4223ad2ae)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: add migration plan duration time column
* feat: allow duration column to be sorted
---------
(cherry picked from commit 44297ada16)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* refactor: add customized migration plan delete model
* refactor: copilot review
* refactor: copilot review
---------
(cherry picked from commit fb6ffa3c0f)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: add progress bar tooltip
* refactor: copilot review
---------
(cherry picked from commit e0436bff28)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* fix: hide Virtul machine migration tabs if forklift addon is not enabled
* fix: rename advanced to configurations
* fix: fixed column width
* refactor: review comment
* revert: power on background color
---------
(cherry picked from commit 41cf44d231)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: forklift poc first commit
* feat: add migration and plan detail pages with progress tracking
* feat(forklift): UI based on the FIGMA
* feat(forklift): Fixed config based on new figma changes
* feat(forklift): New changes added based on new figma
* feat(forklift): Add the succeded state
* Merge the new APIs
* feat(forklift): Applied fix to select the proper data on network. Added condition to show critical
* feat(forklift): Added icons, critical state, fix grids, action button
* feat(forklift): Change to use the proper provider instead of a hardcoded
* feat(forklift): Added pagination UI
* feat(forklift): FIxed the routing for the extension
* feat(forklift): route and router doesnt work properly on extensions
* feat(forklift): fixed to fix the icon on extension
* feat(forklift): Added overflow hidden to mapping target list
* feat(forklift): Added better handling on the saving and testing
* feat(forklift): Remove test flags
* feat(forklift): Changed based on review
* feat(forklift): fixed title and button
* feat(forklift): Design changes
* feat(forklift): Changed to Wizard
* feat(forklift): added the provider wizard
* feat(forklift): Fixed some UI changes
* feat(forklift): Removed wrong configs used for testing
* feat(forklift): update size
* feat(forklift): small fixes
* feat(forklift): small fixes after Copilot
* feat(forklift): small fixes after Copilot
* feat(forklift): reverted settings.json changes
* feat(forklift): small fixes after Copilot
* feat(forklift): Fix the way it is registered
* feat(forklift): Fixed the type for VMware
* feat(forklift): small changes before rebase
* feat: Added new API for the vms
* feat: Fix some labels
* feat: Added some final fixes to structure
* feat: added loading to provider steps
* feat: added comments from copilot review
---------
(cherry picked from commit 560643d299)
Signed-off-by: Marcelo Fukumoto <marcelo.fukumoto@suse.com>
Co-authored-by: marcelofukumoto <marceloyfukumoto@gmail.com>
* feat: allow suer give static IP for VM
* feat: add feature flag
---------
(cherry picked from commit 531ed03796)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>