Commit Graph

23 Commits

Author SHA1 Message Date
Volker Theile
d3ad44e039
Add option to select network interface model while importing VM to Harvester using the vm-import-controller (#78)
Add the field `DefaultNetworkInterfaceModel` to `VirtualMachineImportSpec` and `NetworkInterfaceModel` to `NetworkMapping`. With this new fields it is possible to customize the interface models of the VM NICs.

Related to: https://github.com/harvester/harvester/issues/7999

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-05-26 10:55:54 +02:00
Volker Theile
859479d6fa
SMM is not enabled when TPM is enabled in VMware source client (#71)
Related to: https://github.com/harvester/harvester/issues/7984

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-05-06 10:19:12 +02:00
Volker Theile
6956a12edf
Log the origin VM specification for better troubleshooting (#73)
When importing a VM from VMware or OpenStack, there is no log output of the origin VM spec that is going to be imported. In some situations this information would be helpful for troubleshooting and to understand what is going wrong.

For better processing of the amount of data the specification should be printed as JSON to be able to prettify it externally and to inspect it easily.

Related to: https://github.com/harvester/harvester/issues/8013

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-04-29 13:24:30 +02:00
Volker Theile
5288366b56 VM Import VMs Don't Copy Source Descriptions
- Upgrade gophercloud to v2.5.0.
- Migrate code according to https://github.com/gophercloud/gophercloud/blob/main/docs/MIGRATING.md
- Set the `compute` microversion to 2.19 to get the server description.

Related to: https://github.com/harvester/harvester/issues/6464

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-02-24 10:32:24 +11:00
Volker Theile
4659913073 Make sure the label harvesterhci.io/imageDisplayName is valid
If it gets longer than 63 characters, then replace the label value by a hash to do not abort the VM import. The origin value is still used as `VirtualMachineImageSpec.DisplayName`. The label is currently used to search for the `VirtualMachineImage` object during the reconciliation phase.

Related to: https://github.com/harvester/harvester/issues/6463

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-02-17 17:37:44 +08:00
Volker Theile
01bc900a27 Fix collision of variable name with imported package name
Related to: https://github.com/harvester/harvester/issues/7502

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-02-06 16:28:49 +08:00
Volker Theile
29629c75f8
Enhance importer to handle several issue (#42)
- Import OpenStack server by UUID
- Import OpenStack server with upper case characters in its name

The following improvements have been done:
- Sanitize the configured `VirtualMachineName` field, e.g. convert upper case to lower case to make it RFC 1123 compliant.
- Convert UUID to real name for OpenStack imports
- Reduce waiting time to recheck if created VM is running from 5min to 2min
- Rename variable `uuid` to `serverUUID` in the OpenStack client code to do not collide with the imported uuid module
- Improve error and log messages
- Fix typos
- Add comments

Related to: https://github.com/harvester/harvester/issues/6500
Related to: https://github.com/harvester/harvester/issues/6505

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-02-04 07:42:42 +01:00
Volker Theile
51ae21800b
Use network service client to query source network (#62)
Related to: https://github.com/harvester/harvester/issues/7432

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-02-04 07:41:58 +01:00
Volker Theile
39daa82266 Make timeout during waiting for uploadImage configurable
Add the fields `UploadImageRetryCount` and `UploadImageRetryDelay` to `OpenstackSourceSpec`.

Related to: https://github.com/harvester/harvester/issues/6675

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-01-24 15:40:03 +08:00
Volker Theile
d7f05cece9 Bump go to v1.23.4
Related to: https://github.com/harvester/harvester/issues/7336

Signed-off-by: Volker Theile <vtheile@suse.com>
2025-01-17 13:33:34 +08:00
Volker Theile
ebf60d5ec9 VM Import Controller uses too much memory during QCOW2 conversion phase
- Create the volume image using RAW disk format instead of QCOW2, so no conversion is required after downloading. This will reduce memory consumption.
- Download and write the image file in chunks (32KiB by default), so the whole file doesn't need to be downloaded completely and stored in memory before it is written to disk.
- Fix a variable name shadowing issue.
- Improve logging.

Related to: https://github.com/harvester/harvester/issues/6674

Signed-off-by: Volker Theile <vtheile@suse.com>
2024-10-09 17:43:32 +08:00
Volker Theile
ea161c2fc1
Validate the network mapping configuration (#46)
- A new `apiGroups` is added to the `ClusterRole` to be able to list `network-attachment-definitions`.
- The `network-attachment-definitions` CRD has to be generated in the test env.

Related to: https://github.com/harvester/harvester/issues/6491

Signed-off-by: Volker Theile <vtheile@suse.com>
2024-10-09 11:39:48 +02:00
Volker Theile
0eff95eb0b
The description field is not imported (#40)
Related to: https://github.com/harvester/harvester/issues/6464

Signed-off-by: Volker Theile <vtheile@suse.com>
2024-10-07 16:52:52 +02:00
Gaurav Mehta
03a8ef08e9 address openstack network duplication when interface may have both ipv6 and ipv4 addresses and add preflight check to identify duplicate source network definitions 2024-10-07 11:09:01 +08:00
Volker Theile
409740f6f9 Do more logging during the import
Add log messages to better track what the importer is doing and to better isolate errors if necessary.

Related to: https://github.com/harvester/harvester/issues/6512

Signed-off-by: Volker Theile <vtheile@suse.com>
2024-09-11 13:27:51 +10:00
Gaurav Mehta
bda1e6284a enable smm when secureboot is enabled for openstack sources 2024-08-29 13:48:28 +10:00
Gaurav Mehta
acd5fce6e7 include feedback from pr review
fix up typos
2024-08-02 12:23:45 +10:00
Gaurav Mehta
bb1cef97a5 added debug logging and also change behaviour of controller when vm export from source fails to stop rather than keep trying
added more debug info

close lease earlier

stage vmware migration improvements

improve openstack migration to check uefi/tpm/secureboot from associated image

improve firmware lookup for openstack, and add ability to specify custom storage classes

fix storage class caching issue

drop need for sync

fix imports
2024-08-02 12:23:45 +10:00
PoAn Yang
148cec8766 fix: golangci-lint error
Signed-off-by: PoAn Yang <poan.yang@suse.com>
2024-01-12 10:55:44 +08:00
Gaurav Mehta
0ac976b4cc reorg groups and some reconcile logic 2022-08-26 16:41:47 +10:00
Gaurav Mehta
d26a8a9520 packaging changes. includes helm chart, drone.yml and minor fixes for
openstack client
2022-08-23 13:57:39 +10:00
Gaurav Mehta
fddce7d565
Openstack reconcilliation (#1)
* openstack source reconilliation

* tmp staging for openstack migration

* openstack import working and integration tests

* updated readme
2022-08-16 09:25:16 +10:00
Gaurav Mehta
112008bb81 initial commit for vm-import-controller 2022-08-10 11:08:50 +10:00