diff --git a/pkg/kubelet/volumemanager/volume_manager.go b/pkg/kubelet/volumemanager/volume_manager.go index db22f33c3c0..77a06361582 100644 --- a/pkg/kubelet/volumemanager/volume_manager.go +++ b/pkg/kubelet/volumemanager/volume_manager.go @@ -20,7 +20,7 @@ import ( "context" "errors" "fmt" - "sort" + "slices" "strconv" "strings" "sync" @@ -340,7 +340,7 @@ func (vm *volumeManager) GetExtraSupplementalGroupsForPod(pod *v1.Pod) []int64 { } result := make([]int64, 0, supplementalGroups.Len()) - for _, group := range sets.List(supplementalGroups) { + for _, group := range supplementalGroups.UnsortedList() { iGroup, extra := getExtraSupplementalGid(group, pod) if !extra { continue @@ -359,29 +359,21 @@ func (vm *volumeManager) GetVolumesInUse() []v1.UniqueVolumeName { desiredVolumes := vm.desiredStateOfWorld.GetVolumesToMount() allAttachedVolumes := vm.actualStateOfWorld.GetAttachedVolumes() volumesToReportInUse := make([]v1.UniqueVolumeName, 0, len(desiredVolumes)+len(allAttachedVolumes)) - desiredVolumesMap := make(map[v1.UniqueVolumeName]bool, len(desiredVolumes)+len(allAttachedVolumes)) for _, volume := range desiredVolumes { if volume.PluginIsAttachable { - if _, exists := desiredVolumesMap[volume.VolumeName]; !exists { - desiredVolumesMap[volume.VolumeName] = true - volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) - } + volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) } } for _, volume := range allAttachedVolumes { if volume.PluginIsAttachable { - if _, exists := desiredVolumesMap[volume.VolumeName]; !exists { - volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) - } + volumesToReportInUse = append(volumesToReportInUse, volume.VolumeName) } } - sort.Slice(volumesToReportInUse, func(i, j int) bool { - return string(volumesToReportInUse[i]) < string(volumesToReportInUse[j]) - }) - return volumesToReportInUse + slices.Sort(volumesToReportInUse) + return slices.Compact(volumesToReportInUse) } func (vm *volumeManager) ReconcilerStatesHasBeenSynced() bool { @@ -471,12 +463,11 @@ func (vm *volumeManager) WaitForUnmount(ctx context.Context, pod *v1.Pod) error for _, v := range vm.actualStateOfWorld.GetMountedVolumesForPod(uniquePodName) { mountedVolumes = append(mountedVolumes, v.OuterVolumeSpecName) } - sort.Strings(mountedVolumes) - if len(mountedVolumes) == 0 { return nil } + slices.Sort(mountedVolumes) return fmt.Errorf( "mounted volumes=%v: %w", mountedVolumes, @@ -506,7 +497,7 @@ func (vm *volumeManager) WaitForAllPodsUnmount(ctx context.Context, pods []*v1.P } func (vm *volumeManager) getVolumesNotInDSW(uniquePodName types.UniquePodName, expectedVolumes []string) []string { - volumesNotInDSW := sets.New[string](expectedVolumes...) + volumesNotInDSW := sets.New(expectedVolumes...) for _, volumeToMount := range vm.desiredStateOfWorld.GetVolumesToMount() { if volumeToMount.PodName == uniquePodName { @@ -528,7 +519,7 @@ func (vm *volumeManager) getUnattachedVolumes(uniquePodName types.UniquePodName) unattachedVolumes = append(unattachedVolumes, volumeToMount.OuterVolumeSpecName) } } - sort.Strings(unattachedVolumes) + slices.Sort(unattachedVolumes) return unattachedVolumes } @@ -582,7 +573,7 @@ func filterUnmountedVolumes(mountedVolumes sets.Set[string], expectedVolumes []s unmountedVolumes = append(unmountedVolumes, expectedVolume) } } - sort.Strings(unmountedVolumes) + slices.Sort(unmountedVolumes) return unmountedVolumes }