Skip to content

Conversation

@akutz
Copy link
Collaborator

@akutz akutz commented Aug 5, 2025

What does this PR do, and why is it needed?

This patch temporarily disables FastDeploy+Direct mode as well as support for FastDeploy with NVRAM files. They may both be re-enabled by setting a single flag to true.

This patch is required to mitigate a bug in vpxd on main related to vSAN datastores. Currently they do not support creating VMs using an explicit path.

Which issue(s) is/are addressed by this PR? (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):

Fixes NA

Are there any special notes for your reviewer:

This patch has been validated on two testbeds:

  • Non-vSAN

    • Direct mode fallback to DeployOVF
      • The following VM was deployed:
        apiVersion: vmoperator.vmware.com/v1alpha3
        kind: VirtualMachine
        metadata:
          name: my-vm-1-direct
          namespace: my-namespace-1
          annotations:
            vmoperator.vmware.com/fast-deploy: direct
        spec:
          className: best-effort-small
          imageName: photon-hw15-5.0-dde71ec57.x86_64
          storageClass: wcpglobal-storage-profile
          bootstrap:
            cloudInit:
              cloudConfig: {}
      • The VM specifies direct mode which should fallback gracefully to deploy OVF, which we can see in the following VM Op logs:
        I0806 03:06:09.122928       1 virtualmachine_controller.go:309] "Disabled fast-deploy for this VM" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-1-direct" reconcileID="e4468ace-178b-480e-9f60-2330bd2590f1" mode="" reasons="direct mode not supported"
        I0806 03:06:09.339779       1 create_contentlibrary.go:64] "Deploying OVF Library Item" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-1-direct" reconcileID="f63afd6f-c975-414f-ae43-17dc5d1c2012" itemID="caabe6e9-adbc-433d-8a8b-f9a38e9efe24" itemName="photon-hw15-5.0-dde71ec57.x86_64" deploy=...
      • The VM does power on and get an IP, so it works:
        $ kubectl -n my-namespace-1 get vm my-vm-1-direct -owide
        NAME             POWER-STATE   CLASS               IMAGE                   PRIMARY-IP4      AGE
        my-vm-1-direct   PoweredOn     best-effort-small   vmi-0f6fe8bcc02bdb53d   192.168.128.70   9m39s
    • Linked mode
      • The following VM was deployed:
        apiVersion: vmoperator.vmware.com/v1alpha3
        kind: VirtualMachine
        metadata:
          name: my-vm-2-linked
          namespace: my-namespace-1
          annotations:
            vmoperator.vmware.com/fast-deploy: linked
        spec:
          className: best-effort-small
          imageName: photon-hw15-5.0-dde71ec57.x86_64
          storageClass: wcpglobal-storage-profile
          bootstrap:
            cloudInit:
              cloudConfig: {}
      • The VM specifies direct mode which should fallback gracefully to deploy OVF, which we can see in the following VM Op logs:
        I0806 03:13:36.815288       1 virtualmachine_controller.go:297] "Using fast-deploy for this VM" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="dba703de-5fd0-4a6a-a0c4-86d9c9126d21" mode="linked"
        I0806 03:13:38.088899       1 create_fastdeploy.go:250] "Deploying VM with Fast Deploy" logger="virtualmachine-controller.fastDeploy" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="1dfb0cf8-dda4-40ec-8c87-c1440e8b98ea" mode="linked"
        I0806 03:13:38.088939       1 create_fastdeploy.go:312] "Preserving linked parents on delete/promote via extraConfig" logger="virtualmachine-controller.fastDeployLinked" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="1dfb0cf8-dda4-40ec-8c87-c1440e8b98ea" extraConfigKey="vmprov.keepDisks" extraConfigValue="16a2fe79400f9aa59.vmdk"
        I0806 03:13:38.089272       1 create_fastdeploy.go:407] "Creating VM" logger="virtualmachine-controller.fastDeployLinked" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="1dfb0cf8-dda4-40ec-8c87-c1440e8b98ea" configSpec="{\"_typeName\":\"VirtualMachineConfigSpec\",\"name\":\"my-vm-2-linked\",\"uuid\":\"7764a848-99a5-4af5-97a5-669dc9d4b5d5\",\"instanceUuid\":\"534f555d-92a7-4c0c-bd5e-0be2dfb855f4\",\"guestId\":\"vmwarePhoton64Guest\",\"annotation\":\"Virtual Machine managed by the vSphere Virtual Machine service\",\"files\":{\"_typeName\":\"VirtualMachineFileInfo\",\"vmPathName\":\"[sharedVmfs-0] 3e43f3c2-7522-46a6-b8c1-ec1d79757baa/my-vm-2-linked.vmx\"},\"numCPUs\":2,\"memoryMB\":4096,\"deviceChange\":[{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"device\":{\"_typeName\":\"ParaVirtualSCSIController\",\"key\":-202,\"busNumber\":0,\"device\":[-745050510],\"sharedBus\":\"noSharing\",\"scsiCtlrUnitNumber\":7}},{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"fileOperation\":\"create\",\"device\":{\"_typeName\":\"VirtualDisk\",\"key\":-745050510,\"deviceInfo\":{\"_typeName\":\"Description\",\"label\":\"disk0\",\"summary\":\"\"},\"backing\":{\"_typeName\":\"VirtualDiskFlatVer2BackingInfo\",\"fileName\":\"[sharedVmfs-0] 3e43f3c2-7522-46a6-b8c1-ec1d79757baa/disk-0.vmdk\",\"datastore\":{\"_typeName\":\"ManagedObjectReference\",\"type\":\"Datastore\",\"value\":\"datastore-44\"},\"diskMode\":\"persistent\",\"thinProvisioned\":true,\"parent\":{\"_typeName\":\"VirtualDiskFlatVer2BackingInfo\",\"fileName\":\"[sharedVmfs-0] vmi-0f6fe8bcc02bdb53d-63be2ba83e71409a9-da4b9237bacccdf19/16a2fe79400f9aa59.vmdk\",\"datastore\":{\"_typeName\":\"ManagedObjectReference\",\"type\":\"Datastore\",\"value\":\"datastore-44\"},\"diskMode\":\"persistent\",\"thinProvisioned\":true}},\"controllerKey\":-202,\"unitNumber\":0,\"capacityInKB\":0,\"capacityInBytes\":17179869184,\"virtualDiskFormat\":\"native_4k\"},\"profile\":[{\"_typeName\":\"VirtualMachineDefinedProfileSpec\",\"profileId\":\"85c4fe49-31c5-46f2-a45a-a72fe8b1ec03\"}]},{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"device\":{\"_typeName\":\"VirtualVmxnet3\",\"key\":-1494735112,\"backing\":{\"_typeName\":\"VirtualEthernetCardDistributedVirtualPortBackingInfo\",\"port\":{\"_typeName\":\"DistributedVirtualSwitchPortConnection\",\"switchUuid\":\"50 02 c0 49 7d 42 00 43-55 91 3e a4 b7 fb b1 7d\",\"portgroupKey\":\"dvportgroup-51\"}},\"addressType\":\"generated\",\"externalId\":\"ad967c3e-b752-4bdd-9cf3-22c98e902138\"}}],\"cpuAllocation\":{\"_typeName\":\"ResourceAllocationInfo\",\"reservation\":0,\"limit\":-1,\"shares\":{\"_typeName\":\"SharesInfo\",\"shares\":0,\"level\":\"normal\"}},\"memoryAllocation\":{\"_typeName\":\"ResourceAllocationInfo\",\"reservation\":0,\"limit\":-1,\"shares\":{\"_typeName\":\"SharesInfo\",\"shares\":0,\"level\":\"normal\"}},\"extraConfig\":[{\"_typeName\":\"OptionValue\",\"key\":\"vmservice.namespacedName\",\"value\":{\"_typeName\":\"string\",\"_value\":\"my-namespace-1/my-vm-2-linked\"}},{\"_typeName\":\"OptionValue\",\"key\":\"disk.enableUUID\",\"value\":{\"_typeName\":\"string\",\"_value\":\"TRUE\"}},{\"_typeName\":\"OptionValue\",\"key\":\"vmware.tools.gosc.ignoretoolscheck\",\"value\":{\"_typeName\":\"string\",\"_value\":\"TRUE\"}},{\"_typeName\":\"OptionValue\",\"key\":\"vmprov.keepDisks\",\"value\":{\"_typeName\":\"string\",\"_value\":\"16a2fe79400f9aa59.vmdk\"}}],\"vAppConfig\":{\"_typeName\":\"VAppConfigSpec\",\"product\":[{\"_typeName\":\"VAppProductSpec\",\"operation\":\"add\",\"info\":{\"_typeName\":\"VAppProductInfo\",\"key\":0,\"name\":\"Photon OS\",\"vendor\":\"VMware Inc.\",\"version\":\"5.0\",\"fullVersion\":\"5.0\"}}]},\"firmware\":\"efi\",\"managedBy\":{\"_typeName\":\"ManagedByInfo\",\"extensionKey\":\"com.vmware.vcenter.wcp\",\"type\":\"VirtualMachine\"},\"vmProfile\":[{\"_typeName\":\"VirtualMachineDefinedProfileSpec\",\"profileId\":\"85c4fe49-31c5-46f2-a45a-a72fe8b1ec03\"}]}"
        I0806 03:13:38.103070       1 virtualmachine_controller.go:297] "Using fast-deploy for this VM" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="a78ca0f6-21e3-4aa4-946c-fdfb50147b50" mode="linked"
      • The VM does power on and get an IP, so it works:
        $ kubectl -n my-namespace-1 get vm my-vm-2-linked -owide
        NAME             POWER-STATE   CLASS               IMAGE                   PRIMARY-IP4      AGE
        my-vm-2-linked   PoweredOn     best-effort-small   vmi-0f6fe8bcc02bdb53d   192.168.128.71   3m2s
  • vSAN

    • Before getting started, let's record the folders on the vSAN datastore:
      ls -p -w1 /vmfs/volumes/vsanDatastore >/tmp/before-vm-1.txt 
    • Direct mode fallback to DeployOVF
      • The following VM was deployed:

        apiVersion: vmoperator.vmware.com/v1alpha3
        kind: VirtualMachine
        metadata:
          name: my-vm-1-direct
          namespace: my-namespace-1
          annotations:
            vmoperator.vmware.com/fast-deploy: direct
        spec:
          className: best-effort-small
          imageName: photon-hw15-5.0-dde71ec57.x86_64
          storageClass: wcpglobal-storage-profile
          bootstrap:
            cloudInit:
              cloudConfig: {}
      • The VM specifies direct mode which should fallback gracefully to deploy OVF, which we can see in the following VM Op logs:

        I0806 03:20:52.349406       1 virtualmachine_controller.go:309] "Disabled fast-deploy for this VM" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-1-direct" reconcileID="eaea38c9-3f96-4964-b61e-6bab9eb24f1f" mode="" reasons="direct mode not supported"
        I0806 03:20:57.917071       1 create_contentlibrary.go:64] "Deploying OVF Library Item" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-1-direct" reconcileID="145d1233-0a53-41b2-8997-ae5986c87ff8" itemID="1540c031-a2f5-4357-9940-e874c3921298" itemName="photon-hw15-5.0-dde71ec57.x86_64" deploy=...
      • The VM does power on and get an IP, so it works:

        $ kubectl -n my-namespace-1 get vm my-vm-1-direct -owide
        NAME             POWER-STATE   CLASS               IMAGE                   PRIMARY-IP4   AGE
        my-vm-1-direct   PoweredOn     best-effort-small   vmi-043e6750f1ffb72bc   172.26.0.2    4m5s
      • On the ESXi host let's list the contents of the /vmfs/volumes/vsanDatastore folder:

        ls -p -w1 /vmfs/volumes/vsanDatastore >/tmp/after-vm-1.txt 
      • And let's verify that the only additional folders in the vsanDatastore are the friendly name symlink and the real folder for the newly created VM:

        diff /tmp/before-vm-1.txt /tmp/after-vm-1.txt
        --- /tmp/before-vm-1.txt
        +++ /tmp/after-vm-1.txt
        @@ -13,7 +13,9 @@
        ec789168-7027-7999-8fbb-020063280a01/
        ec789168-e4d7-9b12-1d92-0200631fbd42/
        ef639168-0ae7-5d65-246b-020063280a01/
        +f1cb9268-0608-e425-a857-0200631fbd42/
        fcd
        +my-vm-1-direct
        simple-app-bdc4789c7-8jvjt
        simple-app-bdc4789c7-mkqq4
        simple-app-bdc4789c7-njfl4
      • The only new files are:

        • f1cb9268-0608-e425-a857-0200631fbd42 -- the VM's actual directory
        • my-vm-1-direct -- the symlink vSAN creates pointing to the VM's actual directory
    • Linked mode
      • The following VM was deployed:

        apiVersion: vmoperator.vmware.com/v1alpha3
        kind: VirtualMachine
        metadata:
          name: my-vm-2-linked
          namespace: my-namespace-1
          annotations:
            vmoperator.vmware.com/fast-deploy: linked
        spec:
          className: best-effort-small
          imageName: photon-hw15-5.0-dde71ec57.x86_64
          storageClass: wcpglobal-storage-profile
          bootstrap:
            cloudInit:
              cloudConfig: {}
      • The VM specifies direct mode which should fallback gracefully to deploy OVF, which we can see in the following VM Op logs:

        I0806 03:34:16.372735       1 virtualmachine_controller.go:297] "Using fast-deploy for this VM" logger="virtualmachine-controller" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="2198fcd2-ea5f-4948-b70e-8b7d57ceca1d" mode="linked"
        I0806 03:34:31.555310       1 create_fastdeploy.go:250] "Deploying VM with Fast Deploy" logger="virtualmachine-controller.fastDeploy" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="ad96e0dc-8f98-4bc0-b9b6-e61335dcee31" mode="linked"
        I0806 03:34:31.555370       1 create_fastdeploy.go:312] "Preserving linked parents on delete/promote via extraConfig" logger="virtualmachine-controller.fastDeployLinked" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="ad96e0dc-8f98-4bc0-b9b6-e61335dcee31" extraConfigKey="vmprov.keepDisks" extraConfigValue="bd27064ee06666893.vmdk"
        I0806 03:34:31.555710       1 create_fastdeploy.go:407] "Creating VM" logger="virtualmachine-controller.fastDeployLinked" VirtualMachine="my-namespace-1/my-vm-2-linked" reconcileID="ad96e0dc-8f98-4bc0-b9b6-e61335dcee31" configSpec="{\"_typeName\":\"VirtualMachineConfigSpec\",\"name\":\"my-vm-2-linked\",\"uuid\":\"feb84ed0-9e24-4361-8148-eb2563f72d59\",\"instanceUuid\":\"6598888f-c355-4546-bd24-566a0b3de074\",\"guestId\":\"vmwarePhoton64Guest\",\"annotation\":\"Virtual Machine managed by the vSphere Virtual Machine service\",\"files\":{\"_typeName\":\"VirtualMachineFileInfo\",\"vmPathName\":\"[vsanDatastore] fdab5dfe-c542-42a1-9f91-45b3e8848232/my-vm-2-linked.vmx\"},\"numCPUs\":2,\"memoryMB\":4096,\"deviceChange\":[{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"device\":{\"_typeName\":\"ParaVirtualSCSIController\",\"key\":-202,\"busNumber\":0,\"device\":[-636097966],\"sharedBus\":\"noSharing\",\"scsiCtlrUnitNumber\":7}},{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"fileOperation\":\"create\",\"device\":{\"_typeName\":\"VirtualDisk\",\"key\":-636097966,\"deviceInfo\":{\"_typeName\":\"Description\",\"label\":\"disk0\",\"summary\":\"\"},\"backing\":{\"_typeName\":\"VirtualDiskFlatVer2BackingInfo\",\"fileName\":\"[vsanDatastore] fdab5dfe-c542-42a1-9f91-45b3e8848232/disk-0.vmdk\",\"datastore\":{\"_typeName\":\"ManagedObjectReference\",\"type\":\"Datastore\",\"value\":\"datastore-42\"},\"diskMode\":\"persistent\",\"thinProvisioned\":true,\"parent\":{\"_typeName\":\"VirtualDiskFlatVer2BackingInfo\",\"fileName\":\"[vsanDatastore] vmi-043e6750f1ffb72bc-507878d9be73dad85-da4b9237bacccdf19/bd27064ee06666893.vmdk\",\"datastore\":{\"_typeName\":\"ManagedObjectReference\",\"type\":\"Datastore\",\"value\":\"datastore-42\"},\"diskMode\":\"persistent\",\"thinProvisioned\":true}},\"controllerKey\":-202,\"unitNumber\":0,\"capacityInKB\":0,\"capacityInBytes\":17179869184,\"virtualDiskFormat\":\"native_4k\"},\"profile\":[{\"_typeName\":\"VirtualMachineDefinedProfileSpec\",\"profileId\":\"9e7ded02-ab14-43e0-8e75-d91583717bce\"}]},{\"_typeName\":\"VirtualDeviceConfigSpec\",\"operation\":\"add\",\"device\":{\"_typeName\":\"VirtualVmxnet3\",\"key\":-82436433,\"backing\":{\"_typeName\":\"VirtualEthernetCardOpaqueNetworkBackingInfo\",\"opaqueNetworkId\":\"f4967687-bab0-4ca3-9581-d50d689a20e8\",\"opaqueNetworkType\":\"nsx.LogicalSwitch\"},\"addressType\":\"manual\",\"macAddress\":\"04:50:56:00:84:01\",\"externalId\":\"ac4a3fd3-6f25-5914-b1c2-6964fde35045\"}}],\"cpuAllocation\":{\"_typeName\":\"ResourceAllocationInfo\",\"reservation\":0,\"limit\":-1,\"shares\":{\"_typeName\":\"SharesInfo\",\"shares\":0,\"level\":\"normal\"}},\"memoryAllocation\":{\"_typeName\":\"ResourceAllocationInfo\",\"reservation\":0,\"limit\":-1,\"shares\":{\"_typeName\":\"SharesInfo\",\"shares\":0,\"level\":\"normal\"}},\"extraConfig\":[{\"_typeName\":\"OptionValue\",\"key\":\"vmservice.namespacedName\",\"value\":{\"_typeName\":\"string\",\"_value\":\"my-namespace-1/my-vm-2-linked\"}},{\"_typeName\":\"OptionValue\",\"key\":\"disk.enableUUID\",\"value\":{\"_typeName\":\"string\",\"_value\":\"TRUE\"}},{\"_typeName\":\"OptionValue\",\"key\":\"vmware.tools.gosc.ignoretoolscheck\",\"value\":{\"_typeName\":\"string\",\"_value\":\"TRUE\"}},{\"_typeName\":\"OptionValue\",\"key\":\"vmprov.keepDisks\",\"value\":{\"_typeName\":\"string\",\"_value\":\"bd27064ee06666893.vmdk\"}}],\"vAppConfig\":{\"_typeName\":\"VAppConfigSpec\",\"product\":[{\"_typeName\":\"VAppProductSpec\",\"operation\":\"add\",\"info\":{\"_typeName\":\"VAppProductInfo\",\"key\":0,\"name\":\"Photon OS\",\"vendor\":\"VMware Inc.\",\"version\":\"5.0\",\"fullVersion\":\"5.0\"}}]},\"firmware\":\"efi\",\"managedBy\":{\"_typeName\":\"ManagedByInfo\",\"extensionKey\":\"com.vmware.vcenter.wcp\",\"type\":\"VirtualMachine\"},\"vmProfile\":[{\"_typeName\":\"VirtualMachineDefinedProfileSpec\",\"profileId\":\"9e7ded02-ab14-43e0-8e75-d91583717bce\"}]}"
      • The VM does power on and get an IP, so it works:

        $ kubectl -n my-namespace-1 get vm my-vm-2-linked -owide
        NAME             POWER-STATE   CLASS               IMAGE                   PRIMARY-IP4   AGE
        my-vm-2-linked   PoweredOn     best-effort-small   vmi-043e6750f1ffb72bc   172.26.0.5    3m25s
      • On the ESXi host let's list the contents of the /vmfs/volumes/vsanDatastore folder:

        ls -p -w1 /vmfs/volumes/vsanDatastore >/tmp/after-vm-2.txt 
      • And let's verify that the only additional folders in the vsanDatastore are the friendly name symlink and the real folder for the newly created VM:

        diff /tmp/after-vm-1.txt /tmp/after-vm-2.txt
        --- /tmp/after-vm-1.txt
        +++ /tmp/after-vm-2.txt
        @@ -9,6 +9,7 @@
        contentlib-640f5edf-7d19-4205-8bda-42d8c7f725cb
        contentlib-67256845-be00-4685-bf59-1e03e23feba1
        contentlib-7916e683-83e8-4750-9467-dcb6b5a727d8
        +ddcd9268-cff8-bf07-e393-0200637b65a8/
        e9789168-04e2-bab5-76b7-0200631fbd42/
        ec789168-7027-7999-8fbb-020063280a01/
        ec789168-e4d7-9b12-1d92-0200631fbd42/
        @@ -16,6 +17,7 @@
        f1cb9268-0608-e425-a857-0200631fbd42/
        fcd
        my-vm-1-direct
        +my-vm-2-linked
        simple-app-bdc4789c7-8jvjt
        simple-app-bdc4789c7-mkqq4
        simple-app-bdc4789c7-njfl4
      • The only new files are:

        • ddcd9268-cff8-bf07-e393-0200637b65a8 -- the VM's actual directory
        • my-vm-2-linked -- the symlink vSAN creates pointing to the VM's actual directory

Please add a release note if necessary:

Disable FastDeploy+Direct / FastDeploy support for NVrAM files.

@akutz akutz requested a review from bryanv August 5, 2025 23:24
@github-actions github-actions bot added the size/L Denotes a PR that changes 100-499 lines. label Aug 5, 2025
@akutz akutz force-pushed the feature/fast-deploy-disable-direct-mode branch 10 times, most recently from afdc984 to a8091dd Compare August 7, 2025 14:23
This patch temporarily disables FastDeploy+Direct mode as well as
support for FastDeploy with NVRAM files. They may both be re-enabled
by setting a single flag to true.

This patch is required to mitigate a bug in vpxd on main related to
vSAN datastores. Currently they do not support creating VMs using an
explicit path.
@akutz akutz force-pushed the feature/fast-deploy-disable-direct-mode branch from a8091dd to e56e778 Compare August 7, 2025 14:25
@akutz
Copy link
Collaborator Author

akutz commented Aug 7, 2025

Replaced by #1084.

@akutz akutz closed this Aug 7, 2025
@github-actions
Copy link

github-actions bot commented Aug 7, 2025

Code Coverage

Package Line Rate Health
github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/clustercontentlibraryitem 100%
github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/contentlibraryitem 100%
github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/utils 46%
github.com/vmware-tanzu/vm-operator/controllers/infra/capability/configmap 92%
github.com/vmware-tanzu/vm-operator/controllers/infra/capability/crd 100%
github.com/vmware-tanzu/vm-operator/controllers/infra/configmap 75%
github.com/vmware-tanzu/vm-operator/controllers/infra/node 77%
github.com/vmware-tanzu/vm-operator/controllers/infra/secret 76%
github.com/vmware-tanzu/vm-operator/controllers/infra/validatingwebhookconfiguration 85%
github.com/vmware-tanzu/vm-operator/controllers/infra/zone 73%
github.com/vmware-tanzu/vm-operator/controllers/storageclass 95%
github.com/vmware-tanzu/vm-operator/controllers/storagepolicyquota 98%
github.com/vmware-tanzu/vm-operator/controllers/util/encoding 73%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/storagepolicyusage 97%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/virtualmachine 66%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/volume 87%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineclass 73%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinegroup 90%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinegrouppublishrequest 88%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineimagecache 88%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinepublishrequest 81%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinereplicaset 68%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineservice 82%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineservice/providers 92%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinesetresourcepolicy 81%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinesnapshot 91%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinewebconsolerequest 72%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinewebconsolerequest/v1alpha1 72%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinewebconsolerequest/v1alpha1/conditions 88%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinewebconsolerequest/v1alpha1/patch 78%
github.com/vmware-tanzu/vm-operator/pkg/bitmask 100%
github.com/vmware-tanzu/vm-operator/pkg/builder 97%
github.com/vmware-tanzu/vm-operator/pkg/conditions 90%
github.com/vmware-tanzu/vm-operator/pkg/config 100%
github.com/vmware-tanzu/vm-operator/pkg/config/capabilities 100%
github.com/vmware-tanzu/vm-operator/pkg/config/env 100%
github.com/vmware-tanzu/vm-operator/pkg/context/generic 100%
github.com/vmware-tanzu/vm-operator/pkg/context/operation 100%
github.com/vmware-tanzu/vm-operator/pkg/errors 83%
github.com/vmware-tanzu/vm-operator/pkg/exit 100%
github.com/vmware-tanzu/vm-operator/pkg/mem 100%
github.com/vmware-tanzu/vm-operator/pkg/patch 78%
github.com/vmware-tanzu/vm-operator/pkg/prober 91%
github.com/vmware-tanzu/vm-operator/pkg/prober/probe 90%
github.com/vmware-tanzu/vm-operator/pkg/prober/worker 77%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere 76%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/clustermodules 73%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/config 88%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/contentlibrary 62%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/credentials 100%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/network 81%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/placement 74%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/session 50%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/storage 44%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/sysprep 100%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/upgrade/virtualmachine 100%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/vcenter 85%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/virtualmachine 82%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/vmlifecycle 62%
github.com/vmware-tanzu/vm-operator/pkg/record 87%
github.com/vmware-tanzu/vm-operator/pkg/topology 91%
github.com/vmware-tanzu/vm-operator/pkg/util 84%
github.com/vmware-tanzu/vm-operator/pkg/util/cloudinit 89%
github.com/vmware-tanzu/vm-operator/pkg/util/cloudinit/validate 91%
github.com/vmware-tanzu/vm-operator/pkg/util/image 100%
github.com/vmware-tanzu/vm-operator/pkg/util/kube 89%
github.com/vmware-tanzu/vm-operator/pkg/util/kube/cource 100%
github.com/vmware-tanzu/vm-operator/pkg/util/kube/internal 100%
github.com/vmware-tanzu/vm-operator/pkg/util/kube/proxyaddr 73%
github.com/vmware-tanzu/vm-operator/pkg/util/kube/spq 99%
github.com/vmware-tanzu/vm-operator/pkg/util/netplan 100%
github.com/vmware-tanzu/vm-operator/pkg/util/ovfcache 75%
github.com/vmware-tanzu/vm-operator/pkg/util/ovfcache/internal 100%
github.com/vmware-tanzu/vm-operator/pkg/util/paused 100%
github.com/vmware-tanzu/vm-operator/pkg/util/ptr 100%
github.com/vmware-tanzu/vm-operator/pkg/util/resize 98%
github.com/vmware-tanzu/vm-operator/pkg/util/vmopv1 87%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/client 66%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/library 96%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/vm 79%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/watcher 85%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig 95%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/anno2extraconfig 100%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/bootoptions 97%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/crypto 91%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/diskpromo 89%
github.com/vmware-tanzu/vm-operator/pkg/webconsolevalidation 100%
github.com/vmware-tanzu/vm-operator/services/vm-watcher 94%
github.com/vmware-tanzu/vm-operator/webhooks/common 100%
github.com/vmware-tanzu/vm-operator/webhooks/persistentvolumeclaim/validation 95%
github.com/vmware-tanzu/vm-operator/webhooks/unifiedstoragequota/validation 90%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachine/mutation 87%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachine/validation 96%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachineclass/mutation 62%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachineclass/validation 89%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinegroup/mutation 87%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinegroup/validation 90%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinepublishrequest/validation 92%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinereplicaset/validation 90%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachineservice/mutation 67%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachineservice/validation 92%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinesetresourcepolicy/validation 89%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinesnapshot/validation 89%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinewebconsolerequest/v1alpha1/validation 92%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinewebconsolerequest/validation 92%
Summary 81% (13242 / 16373)

Minimum allowed line rate is 79%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L Denotes a PR that changes 100-499 lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant