@@ -278,29 +278,39 @@ func (r *PersistentVolumeClaimReconciler) determineScheduleAndRequeue(
278
278
return "" , err
279
279
}
280
280
schedule , scheduleFound = getScheduleFromAnnotation (logger , ns .Annotations )
281
- if ! scheduleFound {
282
- return "" , ErrScheduleNotFound
283
- }
281
+
284
282
// If the schedule is found, check whether driver supports the
285
283
// space reclamation using annotation on namespace and registered driver
286
284
// capability for decision on requeue.
287
-
288
- requeue , supportReclaimspace := r .checkDriverSupportReclaimsSpace (logger , ns .Annotations , driverName )
289
- if supportReclaimspace {
290
- // if driver supports space reclamation,
291
- // return schedule from ns annotation.
292
- return schedule , nil
285
+ if scheduleFound {
286
+ requeue , supportReclaimspace := r .checkDriverSupportReclaimsSpace (logger , ns .Annotations , driverName )
287
+ if supportReclaimspace {
288
+ // if driver supports space reclamation,
289
+ // return schedule from ns annotation.
290
+ return schedule , nil
291
+ }
292
+ if requeue {
293
+ // The request needs to be requeued for checking
294
+ // driver support again.
295
+ return "" , ErrConnNotFoundRequeueNeeded
296
+ }
293
297
}
294
- if requeue {
295
- // The request needs to be requeued for checking
296
- // driver support again.
297
- return "" , ErrConnNotFoundRequeueNeeded
298
+
299
+ // For static provisioned PVs, StorageClassName is empty.
300
+ if len (* pvc .Spec .StorageClassName ) == 0 {
301
+ logger .Info ("StorageClassName is empty" )
302
+ return "" , ErrScheduleNotFound
298
303
}
299
304
300
305
// check for storageclass schedule annotation.
301
306
sc := & storagev1.StorageClass {}
302
307
err = r .Client .Get (ctx , types.NamespacedName {Name : * pvc .Spec .StorageClassName }, sc )
303
308
if err != nil {
309
+ if apierrors .IsNotFound (err ) {
310
+ logger .Error (err , "StorageClass not found" , "StorageClass" , * pvc .Spec .StorageClassName )
311
+ return "" , ErrScheduleNotFound
312
+ }
313
+
304
314
logger .Error (err , "Failed to get StorageClass" , "StorageClass" , * pvc .Spec .StorageClassName )
305
315
return "" , err
306
316
}
0 commit comments