diff --git a/pkg/kubelet/volumemanager/volume_manager.go b/pkg/kubelet/volumemanager/volume_manager.go index 7e5d00c6d12..b34f21b62f6 100644 --- a/pkg/kubelet/volumemanager/volume_manager.go +++ b/pkg/kubelet/volumemanager/volume_manager.go @@ -504,6 +504,7 @@ func (vm *volumeManager) getUnattachedVolumes(uniquePodName types.UniquePodName) unattachedVolumes = append(unattachedVolumes, volumeToMount.OuterVolumeSpecName) } } + sort.Strings(unattachedVolumes) return unattachedVolumes } @@ -551,6 +552,8 @@ func filterUnmountedVolumes(mountedVolumes sets.String, expectedVolumes []string unmountedVolumes = append(unmountedVolumes, expectedVolume) } } + sort.Strings(unmountedVolumes) + return unmountedVolumes } diff --git a/pkg/kubelet/volumemanager/volume_manager_test.go b/pkg/kubelet/volumemanager/volume_manager_test.go index cd8b591656f..a17a780e431 100644 --- a/pkg/kubelet/volumemanager/volume_manager_test.go +++ b/pkg/kubelet/volumemanager/volume_manager_test.go @@ -164,10 +164,18 @@ func TestWaitForAttachAndMountError(t *testing.T) { Name: "vol2", MountPath: "/vol2", }, + { + Name: "vol02", + MountPath: "/vol02", + }, { Name: "vol3", MountPath: "/vol3", }, + { + Name: "vol03", + MountPath: "/vol03", + }, }, }, }, @@ -184,12 +192,24 @@ func TestWaitForAttachAndMountError(t *testing.T) { RBD: &v1.RBDVolumeSource{}, }, }, + { + Name: "vol02", + VolumeSource: v1.VolumeSource{ + RBD: &v1.RBDVolumeSource{}, + }, + }, { Name: "vol3", VolumeSource: v1.VolumeSource{ AzureDisk: &v1.AzureDiskVolumeSource{}, }, }, + { + Name: "vol03", + VolumeSource: v1.VolumeSource{ + AzureDisk: &v1.AzureDiskVolumeSource{}, + }, + }, }, }, } @@ -208,7 +228,7 @@ func TestWaitForAttachAndMountError(t *testing.T) { t.Errorf("Expected error, got none") } if !strings.Contains(err.Error(), - "unattached volumes=[vol2], failed to process volumes=[vol3]") { + "unattached volumes=[vol02 vol2], failed to process volumes=[vol03 vol3]") { t.Errorf("Unexpected error info: %v", err) } }