Skip to content

Commit 562f502

Browse files
committed
wip
Signed-off-by: Daniil Loktev <[email protected]>
1 parent 65de9ec commit 562f502

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

images/virtualization-artifact/pkg/controller/vm/internal/service/migration_volumes.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -262,10 +262,19 @@ func (s MigrationVolumesService) VolumesSynced(ctx context.Context, vmState stat
262262
return false, fmt.Errorf("kvvm or kvvmi is nil")
263263
}
264264

265-
migratable, _ := conditions.GetKVVMICondition(virtv1.VirtualMachineInstanceIsMigratable, kvvmiInCluster.Status.Conditions)
266-
if migratable.Status != corev1.ConditionTrue {
267-
log.Info("VirtualMachine is not migratable, volumes are not synced yet.")
268-
return false, nil
265+
readWriteOnceDisks, storageClassChangedDisks, err := s.getDisks(ctx, vmState)
266+
if err != nil {
267+
return false, err
268+
}
269+
270+
// Only check KubeVirt's LiveMigratable condition if there are non-hotplugged RWO disks
271+
// that require VD migration. Hotplugged RWO disks are handled by KubeVirt's block migration.
272+
if len(readWriteOnceDisks) > 0 || len(storageClassChangedDisks) > 0 {
273+
migratable, _ := conditions.GetKVVMICondition(virtv1.VirtualMachineInstanceIsMigratable, kvvmiInCluster.Status.Conditions)
274+
if migratable.Status != corev1.ConditionTrue {
275+
log.Info("VirtualMachine is not migratable, volumes are not synced yet.")
276+
return false, nil
277+
}
269278
}
270279

271280
kvvmSynced := equality.Semantic.DeepEqual(builtKVVMWithMigrationVolumes.Spec.Template.Spec.Volumes, kvvmInCluster.Spec.Template.Spec.Volumes)
@@ -287,11 +296,6 @@ func (s MigrationVolumesService) VolumesSynced(ctx context.Context, vmState stat
287296
return false, nil
288297
}
289298

290-
readWriteOnceDisks, storageClassChangedDisks, err := s.getDisks(ctx, vmState)
291-
if err != nil {
292-
return false, err
293-
}
294-
295299
readWriteOnceDisksSynced := s.areDisksSynced(builtKVVMWithMigrationVolumes, readWriteOnceDisks)
296300
if !readWriteOnceDisksSynced {
297301
log.Info("ReadWriteOnce disks are not synced yet")

0 commit comments

Comments
 (0)