code: func GetVersionSet(client discovery.ServerGroupsInterface) (chartutil.VersionSet, error) {
  	groups, err := client.ServerGroups()
  	if err != nil {
  		return chartutil.DefaultVersionSet, err
  	}
  
  	// FIXME: The Kubernetes test fixture for cli appears to always return nil
  	// for calls to Discovery().ServerGroups(). So in this case, we return
  	// the default API list. This is also a safe value to return in any other
  	// odd-ball case.
  	if groups.Size() == 0 {
  		return chartutil.DefaultVersionSet, nil
  	}
  
  	versions := metav1.ExtractGroupVersions(groups)
  	return chartutil.NewVersionSet(versions...), nil
  }
docs: // GetVersionSet retrieves a set of available k8s API versions