code: func createKubeConfigFiles(outDir string, cfg *kubeadmapi.InitConfiguration, kubeConfigFileNames ...string) error {
  
  	// gets the KubeConfigSpecs, actualized for the current InitConfiguration
  	specs, err := getKubeConfigSpecs(cfg)
  	if err != nil {
  		return err
  	}
  
  	for _, kubeConfigFileName := range kubeConfigFileNames {
  		// retrieves the KubeConfigSpec for given kubeConfigFileName
  		spec, exists := specs[kubeConfigFileName]
  		if !exists {
  			return errors.Errorf("couldn't retrieve KubeConfigSpec for %s", kubeConfigFileName)
  		}
  
  		// builds the KubeConfig object
  		config, err := buildKubeConfigFromSpec(spec, cfg.ClusterName)
  		if err != nil {
  			return err
  		}
  
  		// writes the kubeconfig to disk if it not exists
  		if err = createKubeConfigFileIfNotExists(outDir, kubeConfigFileName, config); err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // createKubeConfigFiles creates all the requested kubeconfig files.
  // If kubeconfig files already exists, they are used only if evaluated equal; otherwise an error is returned.