code: func printFilesIfDryRunning(data InitData) error {
  	if !data.DryRun() {
  		return nil
  	}
  	manifestDir := data.ManifestDir()
  
  	fmt.Printf("[dryrun] Wrote certificates, kubeconfig files and control plane manifests to the %q directory\n", manifestDir)
  	fmt.Println("[dryrun] The certificates or kubeconfig files would not be printed due to their sensitive nature")
  	fmt.Printf("[dryrun] Please examine the %q directory for details about what would be written\n", manifestDir)
  
  	// Print the contents of the upgraded manifests and pretend like they were in /etc/kubernetes/manifests
  	files := []dryrunutil.FileToPrint{}
  	// Print static pod manifests
  	for _, component := range kubeadmconstants.ControlPlaneComponents {
  		realPath := kubeadmconstants.GetStaticPodFilepath(component, manifestDir)
  		outputPath := kubeadmconstants.GetStaticPodFilepath(component, kubeadmconstants.GetStaticPodDirectory())
  		files = append(files, dryrunutil.NewFileToPrint(realPath, outputPath))
  	}
  	// Print kubelet config manifests
  	kubeletConfigFiles := []string{kubeadmconstants.KubeletConfigurationFileName, kubeadmconstants.KubeletEnvFileName}
  	for _, filename := range kubeletConfigFiles {
  		realPath := filepath.Join(manifestDir, filename)
  		outputPath := filepath.Join(kubeadmconstants.KubeletRunDirectory, filename)
  		files = append(files, dryrunutil.NewFileToPrint(realPath, outputPath))
  	}
  
  	return dryrunutil.PrintDryRunFiles(files, data.OutputWriter())
  }
docs: // printFilesIfDryRunning prints the Static Pod manifests to stdout and informs about the temporary directory to go and lookup