Skip to content

Conversation

@akutz
Copy link
Collaborator

@akutz akutz commented Nov 15, 2025

This patch defines a script for creating N VMs in a group.

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

This patch introduces two scripts:

  • hack/create-vm.sh
  • hack/vm-timeline.sh

The first script may be used to generate N VMs as members of a VM group. The script emits the YAML to create the VMs and the group. For example, the following command would emit YAML to create two VMs and a group:

hack/create-vm.sh -n 2

The above command would emit YAML similar to the following:

apiVersion: vmoperator.vmware.com/v1alpha5
kind: VirtualMachine
metadata:
  name: my-vm-drc75v9
  namespace: default
spec:
  className: best-effort-small
  imageName: vmi-0a0044d7c690bcbea
  storageClass: wcplocal-storage-profile
  groupName: my-vm-group-mnyci9f
---
apiVersion: vmoperator.vmware.com/v1alpha5
kind: VirtualMachine
metadata:
  name: my-vm-7vtp106
  namespace: default
spec:
  className: best-effort-small
  imageName: vmi-0a0044d7c690bcbea
  storageClass: wcplocal-storage-profile
  groupName: my-vm-group-mnyci9f
---
apiVersion: vmoperator.vmware.com/v1alpha5
kind: VirtualMachineGroup
metadata:
  name: my-vm-group-mnyci9f
  namespace: default
spec:
  bootOrder:
  - members:
    - name: my-vm-drc75v9
    - name: my-vm-7vtp106

The second script parses the YAML of a deployed VM and constructs
a timeline based on the VM's creation timestamp and conditions. For example,
take the following VM YAML:

apiVersion: vmoperator.vmware.com/v1alpha5
kind: VirtualMachine
metadata:
  annotations:
   creationTimestamp: "2025-11-14T23:58:31Z"
  finalizers:
  - vmoperator.vmware.com/virtualmachine
  generation: 1
  labels:
    topology.kubernetes.io/zone: mgmt-zone
  name: my-vm-rchb56v
  namespace: wcpbench-vm-ns1
  resourceVersion: "2027273"
  uid: e06d7a16-fc34-4bfc-85cf-dd5df17f2bb4
spec:
  biosUUID: f12c13d0-a087-46b1-9fad-cb384468556d
  className: best-effort-small
  groupName: my-vm-group-1eiirpq
  hardware:
    ideControllers:
    - busNumber: 0
    - busNumber: 1
  image:
    kind: VirtualMachineImage
    name: vmi-e65f20bb4354ec918
  imageName: vmi-e65f20bb4354ec918
  instanceUUID: a15a2e3c-5d11-49ab-9598-4e4333cad673
  network:
    interfaces:
    - name: eth0
      network:
        apiVersion: crd.nsx.vmware.com/v1alpha1
        kind: SubnetSet
        name: ""
  powerOffMode: TrySoft
  powerState: PoweredOn
  promoteDisksMode: Online
  restartMode: TrySoft
  storageClass: wcp-policy
  suspendMode: TrySoft
status:
  biosUUID: f12c13d0-a087-46b1-9fad-cb384468556d
  changeBlockTracking: false
  class:
    apiVersion: vmoperator.vmware.com/v1alpha5
    kind: VirtualMachineClass
    name: best-effort-small
  conditions:
  - lastTransitionTime: "2025-11-14T23:59:16Z"
    message: ""
    reason: "True"
    status: "True"
    type: GroupLinked
  - lastTransitionTime: "2025-11-15T00:03:23Z"
    message: ""
    reason: GuestCustomizationRunning
    status: "False"
    type: GuestCustomization
  - lastTransitionTime: "2025-11-15T00:03:23Z"
    message: 'Backup version: 1763165001729'
    reason: "True"
    status: "True"
    type: VirtualMachineBackupUpToDate
  - lastTransitionTime: "2025-11-15T00:02:41Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineClassConfigurationSynced
  - lastTransitionTime: "2025-11-14T23:58:31Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineClassReady
  - lastTransitionTime: "2025-11-15T00:02:36Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineConditionPlacementReady
  - lastTransitionTime: "2025-11-15T00:02:41Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineCreated
  - lastTransitionTime: "2025-11-15T00:03:32Z"
    message: Pending guest customization
    reason: DiskPromotionPending
    status: "False"
    type: VirtualMachineDiskPromotionSynced
  - lastTransitionTime: "2025-11-13T10:21:26Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineImageReady
  - lastTransitionTime: "2025-11-14T23:58:33Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineNetworkReady
  - lastTransitionTime: "2025-11-15T00:03:23Z"
    message: ""
    reason: PoweredOn
    status: "True"
    type: VirtualMachinePowerStateSynced
  - lastTransitionTime: "2025-11-15T00:02:41Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineReconcileReady
  - lastTransitionTime: "2025-11-14T23:58:31Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineStorageReady
  - lastTransitionTime: "2025-11-15T00:03:23Z"
    message: ""
    reason: "True"
    status: "True"
    type: VirtualMachineTools
  guest:
    guestFullName: Ubuntu Linux (64-bit)
    guestID: ubuntu64Guest
  hardware:
    controllers:
    - busNumber: 0
      deviceKey: 200
      type: IDE
    - busNumber: 1
      deviceKey: 201
      type: IDE
    - busNumber: 0
      deviceKey: 1000
      devices:
      - type: Disk
        unitNumber: 0
      type: SCSI
    cpu:
      total: 2
    memory:
      total: 4096M
  hardwareVersion: 22
  instanceUUID: a15a2e3c-5d11-49ab-9598-4e4333cad673
  network:
    config:
      dns:
        hostName: my-vm-rchb56v
        nameservers:
        - 192.19.189.30
        - 192.19.189.10
      interfaces:
      - ip:
          addresses:
          - 172.30.0.195/27
          gateway4: 172.30.0.193
        name: eth0
  nodeName: vcfpperf133.lvn.broadcom.net
  powerState: PoweredOn
  storage:
    requested:
      disks: 20Gi
    total: "21585987556"
    usage:
      disks: "9252634624"
      other: "111151076"
  uniqueID: vm-3612
  volumes:
  - attached: true
    diskUUID: 6000C291-16a9-1764-24bf-27cc4a11b1d1
    limit: 20Gi
    name: disk-96c3cc82
    requested: 20Gi
    type: Classic
    used: "9252634624"
  zone: mgmt-zone

The script vm-timeline.sh would produce the following report from the above YAML:

================================================================================
VM Timeline for my-vm-rchb56v
================================================================================

Creation Time: 2025-11-14T23:58:31Z

--------------------------------------------------------------------------------
Timeline of Events
--------------------------------------------------------------------------------

T+0s (2025-11-14T23:58:31Z)
    Event: VM Created (metadata.creationTimestamp)
    Duration from creation: 0s
    Duration from previous: —
    Conditions set:
        • VirtualMachineClassReady: True
        • VirtualMachineStorageReady: True

T+2s (2025-11-14T23:58:33Z)
    Event: NetworkReady
    Duration from creation: 2s
    Duration from previous: 2s
    Conditions set:
        • VirtualMachineNetworkReady: True

T+45s (2025-11-14T23:59:16Z)
    Event: GroupLinked
    Duration from creation: 45s
    Duration from previous: 43s
    Conditions set:
        • GroupLinked: True

T+4m 5s (2025-11-15T00:02:36Z)
    Event: PlacementReady
    Duration from creation: 4m 5s
    Duration from previous: 3m 20s
    Conditions set:
        • VirtualMachineConditionPlacementReady: True

T+4m 10s (2025-11-15T00:02:41Z)
    Event: ClassConfigurationSynced & Created & ReconcileReady
    Duration from creation: 4m 10s
    Duration from previous: 5s
    Conditions set:
        • VirtualMachineClassConfigurationSynced: True
        • VirtualMachineCreated: True
        • VirtualMachineReconcileReady: True

T+4m 52s (2025-11-15T00:03:23Z)
    Event: GuestCustomization & BackupUpToDate & PowerStateSynced & Tools
    Duration from creation: 4m 52s
    Duration from previous: 42s
    Conditions set:
        • GuestCustomization: False (GuestCustomizationRunning)
        • VirtualMachineBackupUpToDate: True
        Message: Backup version: 1763165001729
        • VirtualMachinePowerStateSynced: True (PoweredOn)
        • VirtualMachineTools: True

T+5m 1s (2025-11-15T00:03:32Z)
    Event: DiskPromotionSynced
    Duration from creation: 5m 1s
    Duration from previous: 9s
    Conditions set:
        • VirtualMachineDiskPromotionSynced: False (DiskPromotionPending)
        Message: Pending guest customization

--------------------------------------------------------------------------------
Summary
--------------------------------------------------------------------------------

Total elapsed time:     5m 1s
Current power state:    PoweredOn
Conditions not ready:   GuestCustomization,VirtualMachineDiskPromotionSynced

================================================================================

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:

Please add a release note if necessary:

Scripts to create N VMs and produce VM timelines.

@github-actions github-actions bot added the size/L Denotes a PR that changes 100-499 lines. label Nov 15, 2025
This patch introduces two scripts:

* hack/create-vm.sh
* hack/vm-timeline.sh

The first script may be used to generate N VMs as members of a VM
group. The script emits the YAML to create the VMs and the group. For example,
the following command would emit YAML to create two VMs and a group:

    $ hack/create-vm.sh -n 2
    apiVersion: vmoperator.vmware.com/v1alpha5
    kind: VirtualMachine
    metadata:
      name: my-vm-drc75v9
      namespace: default
    spec:
      className: best-effort-small
      imageName: vmi-0a0044d7c690bcbea
      storageClass: wcplocal-storage-profile
      groupName: my-vm-group-mnyci9f
    ---
    apiVersion: vmoperator.vmware.com/v1alpha5
    kind: VirtualMachine
    metadata:
      name: my-vm-7vtp106
      namespace: default
    spec:
      className: best-effort-small
      imageName: vmi-0a0044d7c690bcbea
      storageClass: wcplocal-storage-profile
      groupName: my-vm-group-mnyci9f
    ---
    apiVersion: vmoperator.vmware.com/v1alpha5
    kind: VirtualMachineGroup
    metadata:
      name: my-vm-group-mnyci9f
      namespace: default
    spec:
      bootOrder:
      - members:
        - name: my-vm-drc75v9
        - name: my-vm-7vtp106

The second script parses the YAML of a deployed VM and constructs
a timeline based on the VM's creation timestamp and conditions. For example,
take the following VM YAML:

    apiVersion: vmoperator.vmware.com/v1alpha5
    kind: VirtualMachine
    metadata:
      creationTimestamp: "2025-11-14T23:58:31Z"
      name: my-vm-rchb56v
      namespace: wcpbench-vm-ns1
      resourceVersion: "2027273"
      uid: e06d7a16-fc34-4bfc-85cf-dd5df17f2bb4
    spec:
      biosUUID: f12c13d0-a087-46b1-9fad-cb384468556d
      className: best-effort-small
      groupName: my-vm-group-1eiirpq
      hardware:
        ideControllers:
        - busNumber: 0
        - busNumber: 1
      image:
        kind: VirtualMachineImage
        name: vmi-e65f20bb4354ec918
      imageName: vmi-e65f20bb4354ec918
      instanceUUID: a15a2e3c-5d11-49ab-9598-4e4333cad673
      network:
        interfaces:
        - name: eth0
          network:
            apiVersion: crd.nsx.vmware.com/v1alpha1
            kind: SubnetSet
            name: ""
      powerOffMode: TrySoft
      powerState: PoweredOn
      promoteDisksMode: Online
      restartMode: TrySoft
      storageClass: wcp-policy
      suspendMode: TrySoft
    status:
      biosUUID: f12c13d0-a087-46b1-9fad-cb384468556d
      changeBlockTracking: false
      class:
        apiVersion: vmoperator.vmware.com/v1alpha5
        kind: VirtualMachineClass
        name: best-effort-small
      conditions:
      - lastTransitionTime: "2025-11-14T23:59:16Z"
        message: ""
        reason: "True"
        status: "True"
        type: GroupLinked
      - lastTransitionTime: "2025-11-15T00:03:23Z"
        message: ""
        reason: GuestCustomizationRunning
        status: "False"
        type: GuestCustomization
      - lastTransitionTime: "2025-11-15T00:03:23Z"
        message: 'Backup version: 1763165001729'
        reason: "True"
        status: "True"
        type: VirtualMachineBackupUpToDate
      - lastTransitionTime: "2025-11-15T00:02:41Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineClassConfigurationSynced
      - lastTransitionTime: "2025-11-14T23:58:31Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineClassReady
      - lastTransitionTime: "2025-11-15T00:02:36Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineConditionPlacementReady
      - lastTransitionTime: "2025-11-15T00:02:41Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineCreated
      - lastTransitionTime: "2025-11-15T00:03:32Z"
        message: Pending guest customization
        reason: DiskPromotionPending
        status: "False"
        type: VirtualMachineDiskPromotionSynced
      - lastTransitionTime: "2025-11-13T10:21:26Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineImageReady
      - lastTransitionTime: "2025-11-14T23:58:33Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineNetworkReady
      - lastTransitionTime: "2025-11-15T00:03:23Z"
        message: ""
        reason: PoweredOn
        status: "True"
        type: VirtualMachinePowerStateSynced
      - lastTransitionTime: "2025-11-15T00:02:41Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineReconcileReady
      - lastTransitionTime: "2025-11-14T23:58:31Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineStorageReady
      - lastTransitionTime: "2025-11-15T00:03:23Z"
        message: ""
        reason: "True"
        status: "True"
        type: VirtualMachineTools
      guest:
        guestFullName: Ubuntu Linux (64-bit)
        guestID: ubuntu64Guest
      hardware:
        controllers:
        - busNumber: 0
          deviceKey: 200
          type: IDE
        - busNumber: 1
          deviceKey: 201
          type: IDE
        - busNumber: 0
          deviceKey: 1000
          devices:
          - type: Disk
            unitNumber: 0
          type: SCSI
        cpu:
          total: 2
        memory:
          total: 4096M
      hardwareVersion: 22
      instanceUUID: a15a2e3c-5d11-49ab-9598-4e4333cad673
      network:
        config:
          dns:
            hostName: my-vm-rchb56v
            nameservers:
            - 192.19.189.30
            - 192.19.189.10
          interfaces:
          - ip:
              addresses:
              - 172.30.0.195/27
              gateway4: 172.30.0.193
            name: eth0
      nodeName: vcfpperf133.lvn.broadcom.net
      powerState: PoweredOn
      storage:
        requested:
          disks: 20Gi
        total: "21585987556"
        usage:
          disks: "9252634624"
          other: "111151076"
      uniqueID: vm-3612
      volumes:
      - attached: true
        diskUUID: 6000C291-16a9-1764-24bf-27cc4a11b1d1
        limit: 20Gi
        name: disk-96c3cc82
        requested: 20Gi
        type: Classic
        used: "9252634624"
      zone: mgmt-zone

The script vm-timeline.sh would produce the following report from the above
YAML:

    ================================================================================
    VM Timeline for my-vm-rchb56v
    ================================================================================

    Creation Time: 2025-11-14T23:58:31Z

    --------------------------------------------------------------------------------
    Timeline of Events
    --------------------------------------------------------------------------------

    T+0s (2025-11-14T23:58:31Z)
        Event: VM Created (metadata.creationTimestamp)
        Duration from creation: 0s
        Duration from previous: —
        Conditions set:
            • VirtualMachineClassReady: True
            • VirtualMachineStorageReady: True

    T+2s (2025-11-14T23:58:33Z)
        Event: NetworkReady
        Duration from creation: 2s
        Duration from previous: 2s
        Conditions set:
            • VirtualMachineNetworkReady: True

    T+45s (2025-11-14T23:59:16Z)
        Event: GroupLinked
        Duration from creation: 45s
        Duration from previous: 43s
        Conditions set:
            • GroupLinked: True

    T+4m 5s (2025-11-15T00:02:36Z)
        Event: PlacementReady
        Duration from creation: 4m 5s
        Duration from previous: 3m 20s
        Conditions set:
            • VirtualMachineConditionPlacementReady: True

    T+4m 10s (2025-11-15T00:02:41Z)
        Event: ClassConfigurationSynced & Created & ReconcileReady
        Duration from creation: 4m 10s
        Duration from previous: 5s
        Conditions set:
            • VirtualMachineClassConfigurationSynced: True
            • VirtualMachineCreated: True
            • VirtualMachineReconcileReady: True

    T+4m 52s (2025-11-15T00:03:23Z)
        Event: GuestCustomization & BackupUpToDate & PowerStateSynced & Tools
        Duration from creation: 4m 52s
        Duration from previous: 42s
        Conditions set:
            • GuestCustomization: False (GuestCustomizationRunning)
            • VirtualMachineBackupUpToDate: True
            Message: Backup version: 1763165001729
            • VirtualMachinePowerStateSynced: True (PoweredOn)
            • VirtualMachineTools: True

    T+5m 1s (2025-11-15T00:03:32Z)
        Event: DiskPromotionSynced
        Duration from creation: 5m 1s
        Duration from previous: 9s
        Conditions set:
            • VirtualMachineDiskPromotionSynced: False (DiskPromotionPending)
            Message: Pending guest customization

    --------------------------------------------------------------------------------
    Summary
    --------------------------------------------------------------------------------

    Total elapsed time:     5m 1s
    Current power state:    PoweredOn
    Conditions not ready:   GuestCustomization,VirtualMachineDiskPromotionSynced

    ================================================================================
@akutz akutz force-pushed the feature/create-vm-script branch from 978063f to 6950b46 Compare November 15, 2025 01:10
@github-actions github-actions bot added size/XL Denotes a PR that changes 500-999 lines. and removed size/L Denotes a PR that changes 100-499 lines. labels Nov 15, 2025
@akutz akutz changed the title 🌱 Script for creating N VMs in a group 🌱 Scripts for creating N VMs and constructing VM timelines Nov 15, 2025
@github-actions
Copy link

Code Coverage

Package Line Rate Health
github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/clustercontentlibraryitem 67%
github.com/vmware-tanzu/vm-operator/controllers/contentlibrary/contentlibraryitem 67%
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 87%
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 96%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/virtualmachine 68%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/volume 87%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachine/volumebatch 84%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineclass 73%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinegroup 89%
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 83%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachinereplicaset 68%
github.com/vmware-tanzu/vm-operator/controllers/virtualmachineservice 83%
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 92%
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/controllers/vspherepolicy/policyevaluation 93%
github.com/vmware-tanzu/vm-operator/pkg/bitmask 100%
github.com/vmware-tanzu/vm-operator/pkg/builder 93%
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 98%
github.com/vmware-tanzu/vm-operator/pkg/config/env 100%
github.com/vmware-tanzu/vm-operator/pkg/context 22%
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/crd 77%
github.com/vmware-tanzu/vm-operator/pkg/errors 75%
github.com/vmware-tanzu/vm-operator/pkg/exit 100%
github.com/vmware-tanzu/vm-operator/pkg/log 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 89%
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 75%
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 76%
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 51%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/storage 44%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/upgrade/virtualmachine 96%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/vcenter 85%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/virtualmachine 86%
github.com/vmware-tanzu/vm-operator/pkg/providers/vsphere/vmlifecycle 72%
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 70%
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 94%
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/linuxprep 97%
github.com/vmware-tanzu/vm-operator/pkg/util/netplan 100%
github.com/vmware-tanzu/vm-operator/pkg/util/nil 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/sysprep 98%
github.com/vmware-tanzu/vm-operator/pkg/util/vmopv1 89%
github.com/vmware-tanzu/vm-operator/pkg/util/volumes 100%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/client 66%
github.com/vmware-tanzu/vm-operator/pkg/util/vsphere/datastore 100%
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 88%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/crypto 91%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/diskpromo 100%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/policy 96%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/virtualcontroller 85%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/volumes/unmanaged/backfill 100%
github.com/vmware-tanzu/vm-operator/pkg/vmconfig/volumes/unmanaged/register 96%
github.com/vmware-tanzu/vm-operator/pkg/webconsolevalidation 100%
github.com/vmware-tanzu/vm-operator/services/vm-watcher 85%
github.com/vmware-tanzu/vm-operator/webhooks/common 98%
github.com/vmware-tanzu/vm-operator/webhooks/persistentvolumeclaim/validation 95%
github.com/vmware-tanzu/vm-operator/webhooks/unifiedstoragequota/validation 88%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachine/mutation 85%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachine/validation 95%
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 92%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinegrouppublishrequest/mutation 86%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinegrouppublishrequest/validation 88%
github.com/vmware-tanzu/vm-operator/webhooks/virtualmachinepublishrequest/validation 93%
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/mutation 83%
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 82% (17395 / 21111)

Minimum allowed line rate is 79%

Copy link
Contributor

@lubronzhan lubronzhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

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

Labels

size/XL Denotes a PR that changes 500-999 lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants