* feat: enhance VM migration functionality and localization
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add allVmsOnTargetNode method and update migration titles in localization
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: enhance migration error handling and update localization for migration dialog
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add PodSecurity Standard setting
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: unneeded change
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: filter by isSystem namespace
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add fallback logic
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: some actions limited for virt-viewer
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on schema collectionMethods
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: conditionally add migrate action to available actions
* fix: update collectionMethods check to use find for case-insensitive matching
* fix: update canEditClusterMembers method to use schema for collectionMethods
* fix: update canCreateImage check to use case-insensitive matching
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: remove unneeded persistentvolumeclaim type label translation key
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: improve lockIconTooltipMessage call twice
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: avoid watch allVMs
Signed-off-by: Andy Lee <andy.lee@suse.com>
* perf: improve the some functions with pre-created map
Signed-off-by: Andy Lee <andy.lee@suse.com>
* perf: improve the vm list page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: AI comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update PR auto assign workflows
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update backport label workflow
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update backport PR via mergify workflow
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update add PR label workflow
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: file name
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: limit auto-assign-check for target branches
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add AGENNTS.md
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update based on copilot feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update AGENTS.md
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update based on AI suggestion
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on comments
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: some files
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: boundaries.md
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: change auth/V3user to auth/user
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: extract to utils/auth.js
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add generic error for API response 40X
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: fallback error msg
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update error msg
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: disable digest update in renovate.json
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: keep but disable digest update auto merge
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add schedule for digest update
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: bump @rancher/shell to 3.0.12-rc.1
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update node version to 24
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update build catalog yaml
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: nav items order
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded weightType
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: provisioner not update when deleting disk
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update pkg/harvester/edit/harvesterhci.io.host/HarvesterDisk.vue
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: add nvidia driver toolkit dialog
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add disable button guard
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: add v1.8.1 and v1.9.0 feature flags
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: bump to v1.9.0-dev
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add banner in PCI Devices page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: support advance option and creation from DataVolume
- advance option would let user change the accessMode/volumeMode
- creation from DataVolume could supports various scenario with
3rd-party storage
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
* feat: add data migration action on volume page
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
* refactor: use show advanced options link instead of checkbox
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature flag
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature flag for dataMigration action
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* feat: add rwxNetwork setting
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: network payload
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: ensure the state is pending when perform cloning the efi
Signed-off-by: pohanhuang <pohan.huang@suse.com>
* feat: define harvesterhci.io/clone-backend-storage-status in labels-annotations.js
Signed-off-by: pohanhuang <pohan.huang@suse.com>
---------
Signed-off-by: pohanhuang <pohan.huang@suse.com>
* feat: add another filter button
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature falg to hide vGPU enable/disable actions in PCIDevices page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update with conditionally rendering
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add Insecure Skip TLS Verify checkbox
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: set insecureSkipTLSVerify default to false
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: conflict
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded change
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: get the feature flag in data()
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: make data logic simpler
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: put tip in info banner
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: support customizing support bundle file name
Signed-off-by: Jack Yu <jack.yu@suse.com>
* feat: add supportBundleFileNameSetting feature flag
Signed-off-by: Jack Yu <jack.yu@suse.com>
---------
Signed-off-by: Jack Yu <jack.yu@suse.com>
* fix: the import sources page header
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update VMware term
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: missing Download Logs button in Rancher integration mode
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: show notification if there is VM pending restart
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update based on comments
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: calculate count from vm names
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add nodeUpgradeOption setting
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add resume button when node paused
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature flag in v1.7.0
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add wanring message when disabling a device that haven not been detached in the backend
Signed-off-by: Jack Yu <jack.yu@suse.com>
* fix: remove unused en-us key
Signed-off-by: Jack Yu <jack.yu@suse.com>
---------
Signed-off-by: Jack Yu <jack.yu@suse.com>
* feat(vmimport): First working side nav attempt
Add vmimport entries when the related resource actually exists aka addon was enabled
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): improved version that uses 'store.watch' instead of polling
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): further tuning of dynamic side navi load/unload
Code formatting and commits. Also safeguard if something is wrong with the store
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): separate vmimport side nav entries from dynamic logic
function registerAddonSideNav introduced in utils/dynamic-nav.js
Decouples vmimport side nav entries from the hide/unhide based on addon status logic
Makes it reusable in the UI with other AddOns in the future
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add custom headers for HCI.VMIMPORT
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add custom headers for HCI.VMIMPORT_SOURCE_V
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add custom headers for HCI.VMIMPORT_SOURCE_O
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): array instead string passed to configureType
Caused routing issues for CRUD operations
Labels moved to labelTypes section to follow standards
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): registerAddonSideNav improved and refactored
Clear comments, code refactoring, additional checks and validations
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): show correct status for virtualmachineimport
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): custom list components with ns grouping
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): 404 on refresh and missing menu entry
Restores virtualType definitions to register routes synchronously,
preventing 404 errors during page reload.
Updates dynamic-nav to force-fetch addon data if missing, fixing
hidden menu issues on direct page access.
Restores explicit label keys for virtualTypes to ensure correct
naming in the side navigation.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add edit form for VirtualMachineImport resource
Adds a UI form for VirtualMachineImport to replace manual YAML editing.
The form fetches VmwareSource and OpenstackSource objects for the
source selection dropdown.
It validates the VM name against RFC-1123 rules and filters out
internal storage classes. Users can also configure network mappings
via a dynamic list.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add edit form for VmwareSource
Adds a UI to configure VmwareSource resources including the endpoint
and datacenter fields.
For authentication, users can either select an existing Secret or
enter a username and password directly. The form handles creating
the required Kubernetes Secret in the background when new credentials
are provided.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add edit form for OpenstackSource
Custom edit form for OpenstackSource resource. Creates new secret
or lets users select existing secrets. Support all fields the CRD has.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* chore(vmimport): vmware source default endpoint and datacenter renamed
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): add edit form for OvaSource
OvaSource (new in harvester / vm-import-controller v1.7.0).
Imports VMs from an OVA file using via HTTP or HTTPS.
The form supports URL configuration and optional Basic Auth using a
username and password. Users can also provide an optional CA Certificate
for HTTPS verification and configure advanced HTTP timeout settings.
VirtualMachineImport edit page to updated to include OvaSource in
the source dropdown.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* chore(vmimport): align tab names on openstacksource
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): import { TextArea } from '@components/Form/TextArea' not found
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): 'Destination Network' don't list all networks
Online listed the 'mgmt' Network. Adjust to read all Virtual Machine Networks.
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): rename side-nav entry to 'Virtual Machine Imports'
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): OvaSource Auth tab throws error selecting existing secret
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): Add missing caCert input field to vmware source
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): use 'LabeledInput' instead of 'TextAreaAutoGrow' for cacert fields
Changing the type allows labels to show up in the UI
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): Move vars into types files and reference them
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): Use 'currentProduct' value instead of hardcoded 'harvester' string
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): shorten 'selectedOption.raw' usage
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): Checks to make splice() usage more robust
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): re-use existing rfc1123 val function
Move rfc1123 validation error message to l10n/en-us.yaml
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* fix(vmimport): var name typo in vmi edit rfc1123 check
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): vmi use 'FormValidation' and l10n for labels
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): oss use 'FormValidation' and l10n for labels
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): ovas use 'FormValidation' and l10n for labels
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* feat(vmimport): vms use 'FormValidation' and l10n for labels
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
* refactor(vmimport): Display error message at the top of the page
Signed-off-by: Volker Theile <vtheile@suse.com>
---------
Signed-off-by: Dominik Wombacher <dominik.wombacher@suse.com>
Signed-off-by: Volker Theile <vtheile@suse.com>
Co-authored-by: Volker Theile <vtheile@suse.com>
* fix: do not set cpu.maxSockets for ARM clusters
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: remove maxSocket to fix bug on ARM cluster
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: disable package auto update for release-harvester-v1.0/v1.5
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: only match release v1.7 ~ v1.9 branches
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: change basebranches
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: display addon name from addon.harvesterhci.io/displayName label
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add descheduler description
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: create related image SC before upgrade
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update spec.targetStorageClassName
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add support for configuring transparent hugepages
Related-to: https://github.com/harvester/harvester/issues/5006
Co-authored-by: Moritz Röhrich <moritz.rohrich@suse.com>
Signed-off-by: Tim Serong <tserong@suse.com>
* fix: return empty object if hugepages can't be found for node
Related-to: https://github.com/harvester/harvester/issues/5006
Co-authored-by: Andy Lee <andy.lee@suse.com>
Signed-off-by: Tim Serong <tserong@suse.com>
---------
Signed-off-by: Tim Serong <tserong@suse.com>
Co-authored-by: Moritz Röhrich <moritz.rohrich@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
Now that Longhorn supports volume clone with the V2 data engine, we
can enable volume snapshot and clone.
Related issue: https://github.com/harvester/harvester/issues/6710
Signed-off-by: Tim Serong <tserong@suse.com>
* feat: add vGPU MIGConfiguration page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add detail page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add banner
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: allow editConfig when status is empty
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded code
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: only show disable action if MIGConfig is enabled
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: some UI flow changes
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: show configured profile in table
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: show configured profiles with requested count
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on review
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: the namespacess option can't be selected twice in standalone UI
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: disabled slected ns
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix(image): Correctly handle query parameters in image URL validation
The imageUrl validator currently fails to correctly extract the file extension
when the image URL contains query parameters or fragments (e.g., 'image.qcow2?token=abc').
This change introduces a dedicated function, `getFilenameFromUrl`,
which uses the native URL object for robust parsing.
This ensures the file suffix validation is always performed on the actual filename,
ignoring any trailing parameters.
Signed-off-by: devsymo <devsymo@hotmail.com>
* fix(lint): Resolve formatting and spacing warnings
Signed-off-by: devsymo <devsymo@hotmail.com>
* fix: adjusted filename extraction logic and remove duplicate code
Signed-off-by: DevSymo <DevSymo@hotmail.com>
---------
Signed-off-by: devsymo <devsymo@hotmail.com>
Signed-off-by: DevSymo <DevSymo@hotmail.com>
* feat: add l2VlanTrunkMode feature
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded code
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: fix edit l2vlan trunk mode edit page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: hide Route tab when trunk mode
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: allow edit as yaml in create VM page if empty CPU or memory
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove getCPUMemoryValidation
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add Network Policiies page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: add build
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: ensure FROM and TO exist
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: skip commitlint if FROM and TO emtpy
Signed-off-by: Andy Lee <andy.lee@suse.com>
* revert: unnecessary change
* feat: add banner
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: unable to create VM via l2vlan network
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on discussion
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: add comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add ACL tab in create subnet page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: typo
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: hide VM take backup action if backup target is not available
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: use extracted func
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: unable to attach Ti volume in create VM page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: only consider Ti / Gi for attached volume
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add dhcp ui setting in subnet page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add dhcp option banner link
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add reconnect button in VNC console
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: reconnnect logic
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: call reconnnect
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: reboot button in VNC console
Signed-off-by: Andy Lee <andy.lee@suse.com>
* style: hide the arrow in VNC console
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: setup env using actions/setup
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: rerun lint if PR force push
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: set label script name
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: rerun PR label after PR edited
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: add release.yml
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update release.yml
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: add auto PR label workflow and script
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: bug fix prefix
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update label mapping
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: read commitlint prefix from commitlint.config.js
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: rename to scripts/extract-release-label.mjs
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: resource page detail title link
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: extract harvester type in a map
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: put in config/harvester-map.js
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: bump version to v1.6.0-rc4
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: missing vm network migration setting
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: isStopping state condition
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unused variable
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add runStragety field when cloning a VM
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded change
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add maxCPU and maxMemory
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add hotplug dialog
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add restart message
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: let VM template support cpuMemoryHotplug
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add feature flag
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add max-hotplug-ratio setting
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: Remove guest cluster in Rancher
Signed-off-by: Nick Chung <nick.chung@suse.com>
* feat: add feature flag 1.6.0
Signed-off-by: Nick Chung <nick.chung@suse.com>
* feat: update for review
Signed-off-by: Nick Chung <nick.chung@suse.com>
* chore: fix for review
Signed-off-by: Nick Chung <nick.chung@suse.com>
* chore: fix for review
Signed-off-by: Nick Chung <nick.chung@suse.com>
* refactor: reduce redundant code
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: change text area to yaml editor
Signed-off-by: Nick Chung <nick.chung@suse.com>
* refactor: change radio and yaml editor position
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Nick Chung <nick.chung@suse.com>
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* chore: disable vmstate-persistence and longhorn-static StorageClasses
Signed-off-by: Nick Chung <nick.chung@suse.com>
* chore: allow internal storage class deletions in image and volumn
Signed-off-by: Nick Chung <nick.chung@suse.com>
* chore: remove deletion tooltips in image and volume pages
Signed-off-by: Nick Chung <nick.chung@suse.com>
* chore: rollback style changes of image and volume lists
Signed-off-by: Nick Chung <nick.chung@suse.com>
---------
Signed-off-by: Nick Chung <nick.chung@suse.com>
* ci: add package version check
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: extract check version in a script
Signed-off-by: Andy Lee <andy.lee@suse.com>
* ci: update env variable
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: filter clone action
* fix: hide clone action for other types
* feat: show source type in details
---------
Signed-off-by: Yi-Ya Chen <yiya.chen@suse.com>
* Align settings page actionMeun with other pages
Signed-off-by: Andy Lee <andy.lee@suse.com>
* update based on PR feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Add searchbox in setting page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* update based on comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
* PR feedback
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix error banner can't be dismissed
Signed-off-by: Andy Lee <andy.lee@suse.com>
* update all CruResource
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Add failed and success banner after image uploaded
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add delete image feature
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add skip checking single-replica detached volumes checkbox
Signed-off-by: Andy Lee <andy.lee@suse.com>
* change delete image flow
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Reuse ConfirmRelatedToRemoveDialog
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix OS upgrade page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* move uploadFile action
Signed-off-by: Andy Lee <andy.lee@suse.com>
* change os upgrage ui to standard feature
Signed-off-by: a110605 <andy.lee@suse.com>
* Add uploadImage cancel
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
Signed-off-by: a110605 <andy.lee@suse.com>
* change condition to check isKVMDisable
Signed-off-by: Andy Lee <andy.lee@suse.com>
* change condition eq 0
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add allNotExist back
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* reset network / user script when choosing windows
Signed-off-by: Andy Lee <andy.lee@suse.com>
* change OS type from Windows init user and network data
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Embedded VM migration detail in migration tab
Signed-off-by: Andy Lee <andy.lee@suse.com>
* update events condition
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor feature flags structure
Signed-off-by: Andy Lee <andy.lee@suse.com>
* Replace with FEATURE_FLAGS and valid and sort versions
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
(cherry picked from commit 9dd8ae479ad608f3e3a6fe55848113ef4184cc1f)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@suse.com>
* Add 1.4.2/1.5.1/1.6.0 feature flags
Signed-off-by: Andy Lee <andy.lee@suse.com>
* bump version to v1.6.0-dev
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix unable to detach PCI & USB device in VM edit page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor based on comment
Signed-off-by: Andy Lee <andy.lee@suse.com>
* using set from shell/utils/object
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add logic to block import harvester version lower than 1.3.0
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor console.error message
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix undefined error whenclick save in edit as yaml
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix VM isEqual logic and fix undefined error
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix error banner position in all dialogs
Signed-off-by: Andy Lee <andy.lee@suse.com>
* update HarvesterImageDownloader.vue
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add volume mode option for non-longhorn volume
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix default storage class in create VM page
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* chore: add building catalog GA
Signed-off-by: Jack Yu <jack.yu@suse.com>
* feat: should include prerelease
Signed-off-by: Jack Yu <jack.yu@suse.com>
---------
Signed-off-by: Jack Yu <jack.yu@suse.com>
* bring status object in PUT dismiss API
Signed-off-by: Andy Lee <andy.lee@suse.com>
* add cleanForSave in harvester model
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
The hints on the `Branding` page at `Advanced > Settings > UI > branding` are using the product name `Rancher` instead of `Harvester`.
Related to: https://github.com/harvester/harvester/issues/6341
Signed-off-by: Volker Theile <vtheile@suse.com>
- `validators/`: Form validation functions per resource type, pushing i18n error messages.
## Harvester UI Extension Development Guide
1. Backward Compatibility
The Harvester UI Extension supports earlier cluster versions (e.g., UI Ext v1.8.0 works with clusters v1.7.0 and v1.6.0). It uses Feature Flags defined in pkg/config/feature-flags to ensure the UI matches the cluster's specific version.
2. Implementation Steps for New Features
To add a feature in a new release, follow these steps:
Register: Add a unique [Feature Name] to the corresponding release array in the configuration.
Check: Use the following getter to verify if the feature is enabled for the current version:
Render: Use the result of the check to conditionally render the UI components.
## E2E Tests (Cypress)
See https://github.com/harvester/harvester-ui-tests
## Node Dependencies
Dependencies are managed via `package.json` and `yarn`
- To install dependencies use `yarn install`. This will fail if dependencies and versions listed in `package.json` are out of step with the `yarn.lock` file
- To add a dependency use `yarn run add:no-lock ...` instead of `yarn add`
- To upgrade a dependency use `yarn run upgrade:no-lock ...` instead of `yarn upgrade`
Renovate automatically updates dependencies and opens upgrade PRs after 10:00 AM on Sundays (`Asia/Taipei`).
For the Renovate config, see `.github/renovate.json`.
## Milestone guidance
- All issues must first be resolved in the `main` branch
- If backports are needed they can be made via the backport bot
- pull requests
- comment `@Mergifyio backport <target branch>` e.g. `@Mergifyio backport release-harvester-v1.8`
- All backported pull requests must link to a backported issue
## Creating a branch
### To resolve an issue
- Checkout the branch matching the milestone of the issue `git checkout ${targetMilestoneBranch}`. Replace `${targetMilestoneBranch}` with the target milestone of the issue. For example
- `main` for the latest unreleased minor version
- `release-harvester-v.X` for release minor versions
- `release-harvester-v1.6`
- `release-harvester-v1.7`
- `release-harvester-v1.8`
- Ensure you have the latest of that branch `git pull --rebase`
- Checkout the branch to commit the changes to `git checkout issue-${issueNumber}`. Replace `${issueNumber}` with the issue number.
## Creating a commit
- This project uses commit-lint with [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to ensure consistent and meaningful commit messages.
### Commit Message Format
All commit messages must follow the conventional commit format:
@ -7,7 +7,7 @@ The Harvester UI Extension is a Rancher extension that provides the user interfa
## Installation
For detailed installation instructions, please refer to the [official Harvester documentation](https://docs.harvesterhci.io/v1.5/rancher/harvester-ui-extension#installation-on-rancher-210).
For Harvester UI extension installation instructions, please refer to the page **Rancher Integration** -> **Harvester UI Extension** in [official Harvester documentation](https://docs.harvesterhci.io).
## Development Setup
@ -163,7 +163,7 @@ If you want to contribute, start by reading this document, then visit our [Getti
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.