@@ -1957,14 +1957,14 @@ func (og *operationGenerator) doOnlineExpansion(volumeToMount VolumeToMount,
1957
1957
actualStateOfWorld ActualStateOfWorldMounterUpdater ,
1958
1958
resizeOptions volume.NodeResizeOptions ) (bool , error , error ) {
1959
1959
1960
- resizeDone , err := og .nodeExpandVolume (volumeToMount , actualStateOfWorld , resizeOptions )
1960
+ resizeDone , newSize , err := og .nodeExpandVolume (volumeToMount , actualStateOfWorld , resizeOptions )
1961
1961
if err != nil {
1962
1962
e1 , e2 := volumeToMount .GenerateError ("NodeExpandVolume.NodeExpandVolume failed" , err )
1963
1963
klog .Errorf (e2 .Error ())
1964
1964
return false , e1 , e2
1965
1965
}
1966
1966
if resizeDone {
1967
- markingDone := actualStateOfWorld .MarkVolumeAsResized (volumeToMount .VolumeName , & resizeOptions . NewSize )
1967
+ markingDone := actualStateOfWorld .MarkVolumeAsResized (volumeToMount .VolumeName , & newSize )
1968
1968
if ! markingDone {
1969
1969
// On failure, return error. Caller will log and retry.
1970
1970
genericFailureError := fmt .Errorf ("unable to mark volume as resized" )
@@ -2013,7 +2013,7 @@ func (og *operationGenerator) expandVolumeDuringMount(volumeToMount VolumeToMoun
2013
2013
rsOpts .NewSize = pvc .Status .AllocatedResources [v1 .ResourceStorage ]
2014
2014
resizeOp .pluginResizeOpts = rsOpts
2015
2015
nodeExpander := newNodeExpander (resizeOp , og .kubeClient , og .recorder )
2016
- resizeFinished , err , _ := nodeExpander .expandOnPlugin ()
2016
+ resizeFinished , _ , err , _ := nodeExpander .expandOnPlugin ()
2017
2017
return resizeFinished , err
2018
2018
} else {
2019
2019
return og .legacyCallNodeExpandOnPlugin (resizeOp )
@@ -2044,7 +2044,7 @@ func (og *operationGenerator) checkIfSupportsNodeExpansion(volumeToMount VolumeT
2044
2044
func (og * operationGenerator ) nodeExpandVolume (
2045
2045
volumeToMount VolumeToMount ,
2046
2046
actualStateOfWorld ActualStateOfWorldMounterUpdater ,
2047
- rsOpts volume.NodeResizeOptions ) (bool , error ) {
2047
+ rsOpts volume.NodeResizeOptions ) (bool , resource. Quantity , error ) {
2048
2048
2049
2049
supportsExpansion , expandableVolumePlugin := og .checkIfSupportsNodeExpansion (volumeToMount )
2050
2050
@@ -2053,17 +2053,18 @@ func (og *operationGenerator) nodeExpandVolume(
2053
2053
if rsOpts .NewSize .Cmp (rsOpts .OldSize ) > 0 {
2054
2054
pv := volumeToMount .VolumeSpec .PersistentVolume
2055
2055
pvc , err := og .kubeClient .CoreV1 ().PersistentVolumeClaims (pv .Spec .ClaimRef .Namespace ).Get (context .TODO (), pv .Spec .ClaimRef .Name , metav1.GetOptions {})
2056
+ currentSize := pvc .Status .Capacity .Storage ()
2056
2057
if err != nil {
2057
2058
// Return error rather than leave the file system un-resized, caller will log and retry
2058
- return false , fmt .Errorf ("mountVolume.NodeExpandVolume get PVC failed : %v" , err )
2059
+ return false , * currentSize , fmt .Errorf ("mountVolume.NodeExpandVolume get PVC failed : %v" , err )
2059
2060
}
2060
2061
2061
2062
if volumeToMount .VolumeSpec .ReadOnly {
2062
2063
simpleMsg , detailedMsg := volumeToMount .GenerateMsg ("MountVolume.NodeExpandVolume failed" , "requested read-only file system" )
2063
2064
klog .Warningf (detailedMsg )
2064
2065
og .recorder .Eventf (volumeToMount .Pod , v1 .EventTypeWarning , kevents .FileSystemResizeFailed , simpleMsg )
2065
2066
og .recorder .Eventf (pvc , v1 .EventTypeWarning , kevents .FileSystemResizeFailed , simpleMsg )
2066
- return true , nil
2067
+ return true , * currentSize , nil
2067
2068
}
2068
2069
resizeOp := nodeResizeOperationOpts {
2069
2070
vmt : volumeToMount ,
@@ -2076,17 +2077,19 @@ func (og *operationGenerator) nodeExpandVolume(
2076
2077
2077
2078
if og .checkForRecoveryFromExpansion (pvc , volumeToMount ) {
2078
2079
// if recovery feature is enabled, we can use allocated size from PVC status as new size
2079
- rsOpts .NewSize = pvc .Status .AllocatedResources [v1 .ResourceStorage ]
2080
- resizeOp .pluginResizeOpts = rsOpts
2080
+ newSize := pvc .Status .AllocatedResources [v1 .ResourceStorage ]
2081
+ rsOpts .NewSize = newSize
2082
+ resizeOp .pluginResizeOpts .NewSize = newSize
2081
2083
nodeExpander := newNodeExpander (resizeOp , og .kubeClient , og .recorder )
2082
- resizeFinished , err , _ := nodeExpander .expandOnPlugin ()
2083
- return resizeFinished , err
2084
+ resizeFinished , newSize , err , _ := nodeExpander .expandOnPlugin ()
2085
+ return resizeFinished , newSize , err
2084
2086
} else {
2085
- return og .legacyCallNodeExpandOnPlugin (resizeOp )
2087
+ resizeFinished , err := og .legacyCallNodeExpandOnPlugin (resizeOp )
2088
+ return resizeFinished , rsOpts .NewSize , err
2086
2089
}
2087
2090
}
2088
2091
}
2089
- return true , nil
2092
+ return true , rsOpts . OldSize , nil
2090
2093
}
2091
2094
2092
2095
func (og * operationGenerator ) checkForRecoveryFromExpansion (pvc * v1.PersistentVolumeClaim , volumeToMount VolumeToMount ) bool {
0 commit comments