// GetServerSupportedSMPatchVersion takes a discoveryClient,
// returns the max StrategicMergePatch version supported
func GetServerSupportedSMPatchVersion(discoveryClient discovery.DiscoveryInterface) (StrategicMergePatchVersion, error) {
	serverVersion, err := discoveryClient.ServerVersion()
	if err != nil {
		return Unknown, err
	}
	serverGitVersion := serverVersion.GitVersion
	if serverGitVersion >= string(SMPatchVersion_1_5) {
		return SMPatchVersion_1_5, nil
	}
	if serverGitVersion >= string(SMPatchVersion_1_0) {
		return SMPatchVersion_1_0, nil
	}
	return Unknown, fmt.Errorf("The version is too old: %v\n", serverVersion)
}