Show a Shareable checkbox when attaching an existing volume whose
PVC is RWX Block and not provisioned by Longhorn. Checking it sets
disk.shareable and shows a data-corruption warning banner.
Related issue: harvester/harvester#9650
(cherry picked from commit 9a935434c20408baeedb2686732046e24c944097)
Signed-off-by: Vicente Cheng <vicente.cheng@suse.com>
Co-authored-by: freeze <1615081+Vicente-Cheng@users.noreply.github.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 b87f367583cab06c5c1be418b3db9a0eafe6952c)
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 e0135343734c6adb2ffd9cf5be7bbd0368904e01)
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>
* 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 429d9e18ad80d9371f1a8219d26e8986aee89f07)
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>
* feat: allow suer give static IP for VM
* feat: add feature flag
---------
(cherry picked from commit 531ed03796c9263523dc5ae866ccb3bc1906510d)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-by: Andy Lee <andy.lee@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>
* feat: add filesystem tab
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add filesystem tab in create VM page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update some wordings
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add support for filesystem feature flag and enable filesystem tab
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded wordings
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add support for filesystem feature flag and update icon button positioning
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove wrong feature flag
Signed-off-by: Andy Lee <andy.lee@suse.com>
* fix: vm template
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add filesystem tab
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add filesystem tab in create VM page
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: update some wordings
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add support for filesystem feature flag and enable filesystem tab
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded wordings
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add support for filesystem feature flag and update icon button positioning
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: based on copilot review
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: tab name
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@suse.com>
* feat: add autoattachPodInterface in edit VM mode if no network interface configured
Signed-off-by: Andy Lee <andy.lee@suse.com>
* refactor: remove unneeded code
Signed-off-by: Andy Lee <andy.lee@suse.com>
---------
Signed-off-by: Andy Lee <andy.lee@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>
* 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>
* 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>
* 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 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>
* 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>
(cherry picked from commit 9dd8ae479ad608f3e3a6fe55848113ef4184cc1f)
Signed-off-by: Andy Lee <andy.lee@suse.com>
Co-authored-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>
* 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>