code: func highestSupportedVersion(versions []string) (*utilversion.Version, error) {
  	if len(versions) == 0 {
  		return nil, fmt.Errorf("CSI driver reporting empty array for supported versions")
  	}
  
  	// Sort by lowest to highest version
  	sort.Slice(versions, func(i, j int) bool {
  		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-- {
  		highestSupportedVersion, err := utilversion.ParseGeneric(versions[i])
  		if err != nil {
  			return nil, err
  		}
  
  		if highestSupportedVersion.Major() <= 1 {
  			return highestSupportedVersion, nil
  		}
  	}
  
  	return nil, fmt.Errorf("None of the CSI versions reported by this driver are supported")
  }
docs: // Return the highest supported version