code: func validateContext(contextName string, context clientcmdapi.Context, config clientcmdapi.Config) []error {
  	validationErrors := make([]error, 0)
  
  	if len(contextName) == 0 {
  		validationErrors = append(validationErrors, fmt.Errorf("empty context name for %#v is not allowed", context))
  	}
  
  	if len(context.AuthInfo) == 0 {
  		validationErrors = append(validationErrors, fmt.Errorf("user was not specified for context %q", contextName))
  	} else if _, exists := config.AuthInfos[context.AuthInfo]; !exists {
  		validationErrors = append(validationErrors, fmt.Errorf("user %q was not found for context %q", context.AuthInfo, contextName))
  	}
  
  	if len(context.Cluster) == 0 {
  		validationErrors = append(validationErrors, fmt.Errorf("cluster was not specified for context %q", contextName))
  	} else if _, exists := config.Clusters[context.Cluster]; !exists {
  		validationErrors = append(validationErrors, fmt.Errorf("cluster %q was not found for context %q", context.Cluster, contextName))
  	}
  
  	if len(context.Namespace) != 0 {
  		if len(validation.IsDNS1123Label(context.Namespace)) != 0 {
  			validationErrors = append(validationErrors, fmt.Errorf("namespace %q for context %q does not conform to the kubernetes DNS_LABEL rules", context.Namespace, contextName))
  		}
  	}
  
  	return validationErrors
  }
docs: // validateContext looks for errors in the context.  It is not transitive, so errors in the reference authInfo or cluster configs are not included in this return