mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +00:00
Remove unnecessary sorting for highestSupportedVersion
This commit is contained in:
parent
53b3c8968e
commit
23c7405fe0
@ -21,7 +21,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"sort"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -892,35 +891,30 @@ func highestSupportedVersion(versions []string) (*utilversion.Version, error) {
|
|||||||
return nil, errors.New(log("CSI driver reporting empty array for supported versions"))
|
return nil, errors.New(log("CSI driver reporting empty array for supported versions"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort by lowest to highest version
|
var highestSupportedVersion *utilversion.Version
|
||||||
sort.Slice(versions, func(i, j int) bool {
|
var theErr error
|
||||||
parsedVersionI, err := utilversion.ParseGeneric(versions[i])
|
|
||||||
if err != nil {
|
|
||||||
// Push bad values to the bottom
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
parsedVersionJ, err := utilversion.ParseGeneric(versions[j])
|
|
||||||
if err != nil {
|
|
||||||
// Push bad values to the bottom
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return parsedVersionI.LessThan(parsedVersionJ)
|
|
||||||
})
|
|
||||||
|
|
||||||
for i := len(versions) - 1; i >= 0; i-- {
|
for i := len(versions) - 1; i >= 0; i-- {
|
||||||
highestSupportedVersion, err := utilversion.ParseGeneric(versions[i])
|
currentHighestVer, err := utilversion.ParseGeneric(versions[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
theErr = err
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if currentHighestVer.Major() > 1 {
|
||||||
|
// CSI currently only has version 0.x and 1.x (see https://github.com/container-storage-interface/spec/releases).
|
||||||
|
// Therefore any driver claiming version 2.x+ is ignored as an unsupported versions.
|
||||||
|
// Future 1.x versions of CSI are supposed to be backwards compatible so this version of Kubernetes will work with any 1.x driver
|
||||||
|
// (or 0.x), but it may not work with 2.x drivers (because 2.x does not have to be backwards compatible with 1.x).
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if highestSupportedVersion == nil || highestSupportedVersion.LessThan(currentHighestVer) {
|
||||||
|
highestSupportedVersion = currentHighestVer
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if highestSupportedVersion.Major() <= 1 {
|
if highestSupportedVersion != nil {
|
||||||
return highestSupportedVersion, nil
|
return highestSupportedVersion, nil
|
||||||
}
|
}
|
||||||
}
|
return nil, fmt.Errorf("None of the CSI versions (%v) reported by this driver are supported : %v", versions, theErr)
|
||||||
|
|
||||||
return nil, errors.New(log("None of the CSI versions reported by this driver are supported"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Only drivers that implement CSI 0.x are allowed to use deprecated socket dir.
|
// Only drivers that implement CSI 0.x are allowed to use deprecated socket dir.
|
||||||
|
Loading…
Reference in New Issue
Block a user