Bug 2162332
Summary: | -o kubevirt mode must rename guest to comply with KubeVirt requirements: metadata.name: Invalid value: "esx8.0-rhel8.8-x86_64": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an a | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | mxie <mxie> |
Component: | virt-v2v | Assignee: | Richard W.M. Jones <rjones> |
Status: | CLOSED ERRATA | QA Contact: | mxie <mxie> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 9.2 | CC: | chhu, hongzliu, juzhou, lersek, mzhan, rjones, tyan, tzheng, vwu, xiaodwan |
Target Milestone: | rc | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | virt-v2v-2.2.0-5.el9 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2023-05-09 07:45:47 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
mxie@redhat.com
2023-01-19 11:27:49 UTC
Note that we don't adjust output names in virt-v2v automatically, because that would make it hard for automation to be built around virt-v2v. So you must use the -on option. However virt-v2v now gives an error if the name is invalid. Fix in: https://github.com/libguestfs/virt-v2v/commit/8a9c914544a49bed13eb5baf42290f835bdee7b5 Test the bug with virt-v2v-2.2.0-2.el9.x86_64 Steps: 1. Convert a guest from VMware to '-o kubevirt' mode by v2v # virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46 -ip /home/passwd esx7.0-rhel9.1-x86_64-uefi-enable-secureboot -o kubevirt -os /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 0.0] Setting up the source: -i libvirt -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 1.8] Opening the source [ 11.6] Inspecting the source [ 20.5] Checking for sufficient free disk space in the guest [ 20.5] Converting Red Hat Enterprise Linux 9.1 Beta (Plow) to run on KVM virt-v2v: This guest has virtio drivers installed. [ 171.8] Mapping filesystem data to avoid copying unused and blank areas [ 172.8] Closing the overlay [ 173.0] Assigning disks to buses [ 173.0] Checking if the guest needs BIOS or UEFI to boot virt-v2v: This guest requires UEFI on the target to boot. [ 173.0] Setting up the destination: -o kubevirt -os /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 174.6] Copying disk 1/1 █ 100% [****************************************] [ 308.1] Creating output metadata [ 308.1] Finishing off 2. Copy the files which is converted in above step to OCP env, then try to create VMI # kubectl apply -f /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot.yaml The VirtualMachineInstance "esx7.0-rhel9.1-x86_64-uefi-enable-secureboot" is invalid: metadata.name: Invalid value: "esx7.0-rhel9.1-x86_64-uefi-enable-secureboot": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*') Result: There is no error to remind user to rename the guest with '-on' option in step1, so the bug is not fixed The previous fix contained a mistake, fixed again in: https://github.com/libguestfs/virt-v2v/commit/050a0ba714ddf2a5d81515c886032016aa75342c Test the bug with virt-v2v-2.2.0-3.el9.x86_64 Steps: 1. Convert a guest from VMware to '-o kubevirt' mode by v2v # virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46 -ip /home/passwd esx7.0-rhel9.1-x86_64-uefi-enable-secureboot -o kubevirt -os /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 0.0] Setting up the source: -i libvirt -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk esx7.0-rhel9.1-x86_64-uefi-enable-secureboot virt-v2v: error: -o kubevirt: the guest name must contain only lowercase alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character. Rerun virt-v2v with the '-on name' option to rename it. If reporting bugs, run virt-v2v with debugging enabled and include the complete output: 2.Use '-on' option to rename guest name and try again # virt-v2v -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=09:9E:54:CF:C3:36:11:9D:7D:B6:45:E0:85:74:4D:DB:CE:24:7B:46 -ip /home/passwd esx7.0-rhel9.1-x86_64-uefi-enable-secureboot -o kubevirt -os /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot -on esx7.0-rhel9.1-x86-64-uefi-enable-secureboot [ 0.0] Setting up the source: -i libvirt -ic vpx://administrator%40vsphere.local.213.207/data/10.73.212.38/?no_verify=1 -it vddk esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 1.8] Opening the source [ 10.2] Inspecting the source [ 17.2] Checking for sufficient free disk space in the guest [ 17.2] Converting Red Hat Enterprise Linux 9.1 Beta (Plow) to run on KVM virt-v2v: This guest has virtio drivers installed. [ 134.2] Mapping filesystem data to avoid copying unused and blank areas [ 135.2] Closing the overlay [ 135.5] Assigning disks to buses [ 135.5] Checking if the guest needs BIOS or UEFI to boot virt-v2v: This guest requires UEFI on the target to boot. [ 135.5] Setting up the destination: -o kubevirt -os /home/esx7.0-rhel9.1-x86_64-uefi-enable-secureboot [ 137.0] Copying disk 1/1 █ 100% [****************************************] [ 265.9] Creating output metadata [ 265.9] Finishing off Result: The bug has been fixed Verify the bug with virt-v2v-2.2.0-3.el9.x86_64 Steps: 1.Convert a guest from VMware to kubevirt mode by v2v # virt-v2v -ic esx://root.212.36/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=11:97:52:B3:B6:5D:C4:DD:05:D9:D0:43:31:0E:98:CB:73:6E:D6:45 -ip /home/esxpwd esx8.0-win11-x86_64 -o kubevirt -os /home/v2v-win11-x86_64-kubervirt [ 0.0] Setting up the source: -i libvirt -ic esx://root.212.36/?no_verify=1 -it vddk esx8.0-win11-x86_64 virt-v2v: error: -o kubevirt: the guest name must contain only lowercase alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character. Rerun virt-v2v with the '-on name' option to rename it. If reporting bugs, run virt-v2v with debugging enabled and include the complete output: virt-v2v -v -x [...] 2.Use '-on' option to rename guest name and try again # virt-v2v -ic esx://root.212.36/?no_verify=1 -it vddk -io vddk-libdir=/home/vddk8.0.0 -io vddk-thumbprint=11:97:52:B3:B6:5D:C4:DD:05:D9:D0:43:31:0E:98:CB:73:6E:D6:45 -ip /home/esxpwd esx8.0-win11-x86_64 -o kubevirt -os /home/v2v-win11-x86_64-kubervirt -on esx8.0-win11-x64 [ 0.0] Setting up the source: -i libvirt -ic esx://root.212.36/?no_verify=1 -it vddk esx8.0-win11-x86_64 [ 1.3] Opening the source [ 45.6] Inspecting the source [ 53.1] Checking for sufficient free disk space in the guest [ 53.1] Converting Windows 10 Enterprise to run on KVM virt-v2v: This guest has virtio drivers installed. [ 61.6] Mapping filesystem data to avoid copying unused and blank areas [ 62.9] Closing the overlay [ 63.1] Assigning disks to buses [ 63.1] Checking if the guest needs BIOS or UEFI to boot [ 63.1] Setting up the destination: -o kubevirt -os /home/v2v-win11-x86_64-kubervirt [ 64.6] Copying disk 1/1 █ 100% [****************************************] [ 420.6] Creating output metadata [ 420.6] Finishing off 3. Copy the files which is converted in above step to OCP env, then try to create VMI # oc apply -f /home/v2v-win11-x86_64-kubervirt/esx8.0-win11-x64.yaml virtualmachineinstance.kubevirt.io/esx8.0-win11-x64 created 4.Check the VMI on OCP web console, the checkpoints of VMI is passed Result: The bug has been fixed Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (virt-v2v bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2023:2313 |