Description of problem: MTV migration does not start when using NFS as the target storage class (tested with cold migration). The importer pod is not created and no PVC is bound $ oc get dv NAME PHASE PROGRESS RESTARTS AGE mtv-api-tests-22-02-01-15-05-48-508-plan-7b27230c-9b41-4ddmtwzf 41s Error in cdi-deployment log: {"level":"error","ts":1641128925.8659854,"logger":"controller-runtime.manager.controller.datavolume-controller","msg":"Reconciler error","name":"mtv-api-tests-22-02-01-15-05-48-508-plan-7b27230c-9b41-4ddmtwzf","namespace":"mtv-api-tests","error":"no accessMode defined on StorageProfile for nfs StorageClass" Version-Release number of selected component (if applicable): MTV 2.3.0-2 / iib:152391 CNV 4.9.1-58 / iib:144466 How reproducible: 100% Attachments: plan.yaml cdi-deployment.log Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: The issue is not reproduced with MTV 2.2.0 GA
Created attachment 1848572 [details] plan.yaml
Created attachment 1848573 [details] cdi-deployment.log
StorageProfile is a CNV feature. In MTV 2.2, we don't specify volume and access mode to let CDI handle this.
This is working as designed. CDI can only recommend accessMode and volumeMode settings for storage classes that have a recognized provisioner. Your NFS storage class has "provisioner: kubernetes.io/no-provisioner" which means that CDI cannot differentiate this storage class from another that contains statically provisioned block volumes for example. To work around the problem you can update the spec of the 'nfs' storage profile object to provide the necessary defaults. For example claimPropertySets: - accessModes: - ReadWriteMany volumeMode: Filesystem See https://github.com/kubevirt/containerized-data-importer/blob/main/doc/storageprofile.md for additional information.