Skip to content

CDI is unable to schedule an import because the target PVC is acted upon by multiple controllers, causing it to transition directly to Bound instead of ImportScheduled #4019

@rporanki

Description

@rporanki

What happened:
A DataVolume created by DataVolume template in vm.yaml spec has transitioned quickly into Bound State instead of ImportScheduled state when multiple controllers act simultaneously on the PVC created by DataVolume.

What you expected to happen:
CDI deployment operator must retry and reconcile so that PVC/DataVolume moves into ImportSchedule state even when multiple controllers act on the PVC managed by CDI.

How to reproduce it (as minimally and precisely as possible):

  1. create a vm.yaml with DataVolumeTemplate
  2. This would created a DataVolume backed by PVC
  3. As soon as the PVC created another custom operator modifies/adds a custom annotiation to the PVC
  4. Now CDI logs the below error message
    "error":"Operation cannot be fulfilled on datavolumes.cdi.kubevirt.io ... the object has been modified; please apply your changes to the latest version and try again"
  5. Finally PVC quickly transitioned into Bound state instead of ImportScheduled state.

Additional context:
Add any other context about the problem here.

Environment:

  • CDI version (use kubectl get deployments cdi-deployment -o yaml): v1.63.1
  • Kubernetes version (use kubectl version): 1.3.0
  • DV specification:
Image
  • Cloud provider or hardware configuration: N/A
  • OS (e.g. from /etc/os-release): N/A
  • Kernel (e.g. uname -a): N/A
  • Install tools: N/A
  • Others: N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions