diff --git a/pkg/controller/volume/expand/expand_controller.go b/pkg/controller/volume/expand/expand_controller.go index 1d6ba5df5df..ee241626d24 100644 --- a/pkg/controller/volume/expand/expand_controller.go +++ b/pkg/controller/volume/expand/expand_controller.go @@ -123,10 +123,16 @@ func NewExpandController( pvcInformer.Informer().AddEventHandler(kcache.ResourceEventHandlerFuncs{ AddFunc: expc.enqueuePVC, UpdateFunc: func(old, new interface{}) { - oldPVC := old.(*v1.PersistentVolumeClaim) - oldSize := oldPVC.Spec.Resources.Requests[v1.ResourceStorage] + oldPVC, ok := old.(*v1.PersistentVolumeClaim) + if !ok { + return + } - newPVC := new.(*v1.PersistentVolumeClaim) + oldSize := oldPVC.Spec.Resources.Requests[v1.ResourceStorage] + newPVC, ok := new.(*v1.PersistentVolumeClaim) + if !ok { + return + } newSize := newPVC.Spec.Resources.Requests[v1.ResourceStorage] if newSize.Cmp(oldSize) > 0 { expc.enqueuePVC(new) @@ -139,7 +145,11 @@ func NewExpandController( } func (expc *expandController) enqueuePVC(obj interface{}) { - pvc := obj.(*v1.PersistentVolumeClaim) + pvc, ok := obj.(*v1.PersistentVolumeClaim) + if !ok { + return + } + size := pvc.Spec.Resources.Requests[v1.ResourceStorage] statusSize := pvc.Status.Capacity[v1.ResourceStorage] @@ -191,7 +201,7 @@ func (expc *expandController) syncHandler(key string) error { klog.V(5).Infof("Error getting Persistent Volume for PVC %q (uid: %q) from informer : %v", util.GetPersistentVolumeClaimQualifiedName(pvc), pvc.UID, err) return err } - if pv.Spec.ClaimRef == nil || pvc.Namespace != pv.Spec.ClaimRef.Namespace || pvc.Name != pv.Spec.ClaimRef.Name { + if pv.Spec.ClaimRef == nil || pvc.Namespace != pv.Spec.ClaimRef.Namespace || pvc.UID != pv.Spec.ClaimRef.UID { err := fmt.Errorf("Persistent Volume is not bound to PVC being updated : %s", util.ClaimToClaimKey(pvc)) klog.V(4).Infof("%v", err) return err diff --git a/pkg/volume/util/operationexecutor/operation_executor.go b/pkg/volume/util/operationexecutor/operation_executor.go index 2b4a8a3463c..18668f8d293 100644 --- a/pkg/volume/util/operationexecutor/operation_executor.go +++ b/pkg/volume/util/operationexecutor/operation_executor.go @@ -139,8 +139,6 @@ type OperationExecutor interface { // IsOperationPending returns true if an operation for the given volumeName and podName is pending, // otherwise it returns false IsOperationPending(volumeName v1.UniqueVolumeName, podName volumetypes.UniquePodName) bool - // Expand Volume will grow size available to PVC - ExpandVolume(*v1.PersistentVolumeClaim, *v1.PersistentVolume) error // ExpandVolumeFSWithoutUnmounting will resize volume's file system to expected size without unmounting the volume. ExpandVolumeFSWithoutUnmounting(volumeToMount VolumeToMount, actualStateOfWorld ActualStateOfWorldMounterUpdater) error // ReconstructVolumeOperation construct a new volumeSpec and returns it created by plugin @@ -817,16 +815,6 @@ func (oe *operationExecutor) UnmountDevice( deviceToDetach.VolumeName, podName, generatedOperations) } -func (oe *operationExecutor) ExpandVolume(pvc *v1.PersistentVolumeClaim, pv *v1.PersistentVolume) error { - generatedOperations, err := oe.operationGenerator.GenerateExpandVolumeFunc(pvc, pv) - if err != nil { - return err - } - uniqueVolumeKey := v1.UniqueVolumeName(pvc.UID) - - return oe.pendingOperations.Run(uniqueVolumeKey, "", generatedOperations) -} - func (oe *operationExecutor) ExpandVolumeFSWithoutUnmounting(volumeToMount VolumeToMount, actualStateOfWorld ActualStateOfWorldMounterUpdater) error { generatedOperations, err := oe.operationGenerator.GenerateExpandVolumeFSWithoutUnmountingFunc(volumeToMount, actualStateOfWorld) if err != nil {