code: func getServerIdentificationPartialConfig(configAuthInfo clientcmdapi.AuthInfo, configClusterInfo clientcmdapi.Cluster) (*restclient.Config, error) {
  	mergedConfig := &restclient.Config{}
  
  	// configClusterInfo holds the information identify the server provided by .kubeconfig
  	configClientConfig := &restclient.Config{}
  	configClientConfig.CAFile = configClusterInfo.CertificateAuthority
  	configClientConfig.CAData = configClusterInfo.CertificateAuthorityData
  	configClientConfig.Insecure = configClusterInfo.InsecureSkipTLSVerify
  	mergo.MergeWithOverwrite(mergedConfig, configClientConfig)
  
  	return mergedConfig, nil
  }
docs: // clientauth.Info object contain both user identification and server identification.  We want different precedence orders for
  // both, so we have to split the objects and merge them separately
  // we want this order of precedence for the server identification
  // 1.  configClusterInfo (the final result of command line flags and merged .kubeconfig files)
  // 2.  configAuthInfo.auth-path (this file can contain information that conflicts with #1, and we want #1 to win the priority)
  // 3.  load the ~/.kubernetes_auth file as a default