* 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.
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* 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>
Show an error banner and disable the Create and Start action when the migration plan name matches an existing provider or migration plan name.
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: new design for review page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: customize empty table rows message
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: fixed the table column
Signed-off-by: Andy Lee <andy.lee@suse.com>
* style: update header tag and align fixed header actions in review migration step
Signed-off-by: Andy Lee <andy.lee@suse.com>
* style: remove unneeded overflow css
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: modify relatedResources using ownerReferences uid
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: wordings
Signed-off-by: Andy Lee <andy.lee@suse.com>
* 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.
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: extract access mode strings to static ACCESS_MODE constant
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: destructure ACCESS_MODE variables in CDISettings.vue accessModeOptions
* refactor: destructure ACCESS_MODE at top level in all consumer files
* fix(lint): reorder imports to top of module in CDISettings, harvesterhci.io.volume, and VirtualMachineVolume
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.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
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: disable header-max-length commit rule
Signed-off-by: Andy Lee <andy.lee@suse.com>
* 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
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-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
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add noopener noreferrer rel
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-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'.
Signed-off-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
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: modify duration column width
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-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
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove console
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* ci: modify PR template
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: review comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: allow user specify namespace for migrated VM
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: not pre-select target namespace
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: ignore option
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: keep upgrade button appear
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add migration plan duration time column
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: allow duration column to be sorted
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add customized migration plan delete model
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add progress bar tooltip
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: hide Virtul machine migration tabs if forklift addon is not enabled
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: rename advanced to configurations
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: fixed column width
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: review comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
* revert: power on background color
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: allow suer give static IP for VM
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature flag
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: allow user to select kube-system ns
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add NICs tab when creating overlay network
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: only show NIC tab if ns is kube-system
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add NAT & Internet tabs
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add provider networks / vlan edit pages
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add edit pages
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: review comments
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
This exposes the longhorn-v2-data-engine-hugepage-enabled and
longhorn-v2-data-engine-memory-size settings in the Harvester GUI, on
Harvester v1.9.0 and later.
Related-to: https://github.com/harvester/harvester/issues/9390
Signed-off-by: Tim Serong <tserong@suse.com>
When editing a Virtual Machine's volumes, if the user selects 'No media' for the Image, the 'harvesterhci.io/os' label is incorrectly removed from the VM's metadata.
Related to: https://github.com/harvester/harvester/issues/10947
Signed-off-by: Volker Theile <vtheile@suse.com>