Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-56960

[disk-uploader] Avoid retries when VirtualMachineExportPhase can't be recovered

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done-Errata
    • Icon: Undefined Undefined
    • CNV v4.19.0
    • CNV v4.18.0
    • CNV Infrastructure
    • None
    • Quality / Stability / Reliability
    • 0.42
    • False
    • Hide

      None

      Show
      None
    • False
    • CNV v4.19.0.rhel9-121
    • CNV Infra Next
    • None

      Description of problem:

      https://pkg.go.dev/kubevirt.io/api/export/v1alpha1#VirtualMachineExportPhase
      Currently disk-uploader keeps on retrying even when phase is skipped. Only in case of pending, we should continue to retry. Retry should depend on VMexport phase. This is figured out while testing vmsnapshots use cases : https://issues.redhat.com/browse/CNV-56954

      Version-Release number of selected component (if applicable):

      4.18

      How reproducible:

      always

      Steps to Reproduce:

      1. Create a vmsnapshot with a VM in stopped phase
      2. 
      3.
      

      Actual results:

      retry happen irrespective of virtualmachineexportphase

      Expected results:

      retry should only happen when phase is pending

      Additional info:

      [cloud-user@ocp-psi-executor-xl ~]$ oc get vm -A
      NAMESPACE                 NAME                                        AGE   STATUS    READY
      test-custom-pipeline-ns   fedora-vm-diskuploader-1740080712-5826092   10m   Stopped   False
      [cloud-user@ocp-psi-executor-xl ~]$ oc get vmsnapshot -A
      NAMESPACE                 NAME                                                 SOURCEKIND       SOURCENAME                                  PHASE       READYTOUSE   CREATIONTIME   ERROR
      test-custom-pipeline-ns   fedora-vm-diskuploader-1740080712-5826092-snapshot   VirtualMachine   fedora-vm-diskuploader-1740080712-5826092   Succeeded   true         10m
       
      apiVersion: kubevirt.io/v1
      kind: VirtualMachine
      metadata:
        name: fedora-vm-diskuploader-1740080712-5826092
        namespace: test-custom-pipeline-ns
        labels: {}
      spec:
        template:
          spec:
            domain:
              devices:
                rng: {}
                disks:
                  - disk:
                      bus: virtio
                    name: dv-disk
                  - disk:
                      bus: virtio
                    name: cloudinitdisk
            volumes:
              - name: dv-disk
                dataVolume:
                  name: fedora
              - name: cloudinitdisk
                cloudInitNoCloud:
                  userData: "*******"
          metadata:
            labels:
              kubevirt.io/vm: fedora-vm-diskuploader-1740080712-5826092
              kubevirt.io/domain: fedora-vm-diskuploader-1740080712-5826092
              debugLogs: "true"
        runStrategy: Halted
        instancetype:
          inferFromVolume: dv-disk
        preference:
          inferFromVolume: dv-disk
        dataVolumeTemplates:
          - apiVersion: cdi.kubevirt.io/v1beta1
            kind: DataVolume
            metadata:
              name: fedora
            spec:
              storage:
                resources:
                  requests:
                    storage: null
                storageClassName: ocs-storagecluster-ceph-rbd-virtualization
              sourceRef:
                kind: DataSource
                name: fedora
                namespace: openshift-virtualization-os-images
       
       
      Triggered pipelinerun
       
      apiVersion: tekton.dev/v1
      kind: PipelineRun
      metadata:
        name: pipelinerun-disk-uploader-vmsnapshot
        namespace: test-custom-pipeline-ns
      spec:
        pipelineref:
          name: pipeline-disk-uploader
        params:
          - name: EXPORT_SOURCE_KIND
            value: vmsnapshot
          - name: EXPORT_SOURCE_NAME
            value: fedora-vm-diskuploader-1740080712-5826092-snapshot
          - name: VOLUME_NAME
            value: fedora
          - name: IMAGE_DESTINATION
            value: quay.io/openshift-cnv/tekton-tasks
          - name: SECRET_NAME
            value: quay-disk-uploader-secret
       
       
      $ oc get vmsnapshot -A -o yaml
      apiVersion: v1
      items:
      - apiVersion: snapshot.kubevirt.io/v1beta1
        kind: VirtualMachineSnapshot
        metadata:
          creationTimestamp: "2025-02-20T19:45:12Z"
          finalizers:
          - snapshot.kubevirt.io/vmsnapshot-protection
          generation: 1
          name: fedora-vm-diskuploader-1740080712-5826092-snapshot
          namespace: test-custom-pipeline-ns
          resourceVersion: "593864"
          uid: 21c58a05-60ea-4b5f-bbe9-198664f3f0b8
        spec:
          source:
            apiGroup: kubevirt.io
            kind: VirtualMachine
            name: fedora-vm-diskuploader-1740080712-5826092
        status:
          conditions:
          - lastProbeTime: null
            lastTransitionTime: "2025-02-20T19:45:13Z"
            reason: Operation complete
            status: "False"
            type: Progressing
          - lastProbeTime: null
            lastTransitionTime: "2025-02-20T19:45:13Z"
            reason: Operation complete
            status: "True"
            type: Ready
          creationTime: "2025-02-20T19:45:13Z"
          phase: Succeeded
          readyToUse: true
          snapshotVolumes:
            excludedVolumes:
            - dv-disk
            - cloudinitdisk
          sourceUID: 47032a8a-81d4-427b-857e-bcb79d280e96
          virtualMachineSnapshotContentName: vmsnapshot-content-21c58a05-60ea-4b5f-bbe9-198664f3f0b8
      kind: List
      metadata:
        resourceVersion: ""
       
       
      $ oc get VirtualMachineExport -A -o yaml
      apiVersion: v1
      items:
      - apiVersion: export.kubevirt.io/v1beta1
        kind: VirtualMachineExport
        metadata:
          creationTimestamp: "2025-02-20T19:45:17Z"
          generateName: fedora-vm-diskuploader-1740080712-5826092-snapshot-
          generation: 1
          name: fedora-vm-diskuploader-1740080712-5826092-snapshot-nl6tq
          namespace: test-custom-pipeline-ns
          ownerReferences:
          - apiVersion: v1
            kind: Pod
            name: pipelinerun-disk-uploader-vmsnapshot-disk-uploader-pod
            uid: 6fc03c7e-9767-4c83-9812-37b0ee7647d3
          resourceVersion: "593994"
          uid: a626c3c0-3f1a-49f5-9051-71f44627aad2
        spec:
          source:
            apiGroup: snapshot.kubevirt.io
            kind: VirtualMachineSnapshot
            name: fedora-vm-diskuploader-1740080712-5826092-snapshot
          tokenSecretRef: fedora-vm-diskuploader-1740080712-5826092-snapshot-m2xng
        status:
          conditions:
          - lastProbeTime: null
            lastTransitionTime: "2025-02-20T19:45:17Z"
            reason: Initializing
            status: "False"
            type: Ready
          - lastProbeTime: null
            lastTransitionTime: "2025-02-20T19:45:17Z"
            reason: Unknown
            status: "False"
            type: PVCReady
          - lastProbeTime: null
            lastTransitionTime: "2025-02-20T19:45:17Z"
            message: VirtualMachineSnapshot test-custom-pipeline-ns/fedora-vm-diskuploader-1740080712-5826092-snapshot
              does not contain any volume snapshots
            reason: VMSnapshotNoVolumes
            status: "False"
            type: VolumesCreated
          links: {}
          phase: Skipped
          serviceName: virt-export-cc09f990
          tokenSecretRef: fedora-vm-diskuploader-1740080712-5826092-snapshot-m2xng
          ttlExpirationTime: "2025-02-20T21:45:17Z"
          virtualMachineName: fedora-vm-diskuploader-1740080712-5826092
      kind: List
      metadata:
        resourceVersion: ""

              ksimon@redhat.com Karel Simon
              gkapoor@redhat.com Geetika Kapoor
              Geetika Kapoor Geetika Kapoor
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: