code: func rollbackOldManifests(oldManifests map[string]string, origErr error, pathMgr StaticPodPathManager, restoreEtcd bool) error {
  	errs := []error{origErr}
  	for component, backupPath := range oldManifests {
  		// Will restore etcd manifest only if it was explicitly requested by setting restoreEtcd to True
  		if component == constants.Etcd && !restoreEtcd {
  			continue
  		}
  		// Where we should put back the backed up manifest
  		realManifestPath := pathMgr.RealManifestPath(component)
  
  		// Move the backup manifest back into the manifests directory
  		err := pathMgr.MoveFile(backupPath, realManifestPath)
  		if err != nil {
  			errs = append(errs, err)
  		}
  	}
  	// Let the user know there were problems, but we tried to recover
  	return errors.Wrap(utilerrors.NewAggregate(errs),
  		"couldn't upgrade control plane. kubeadm has tried to recover everything into the earlier state. Errors faced")
  }
docs: // rollbackOldManifests rolls back the backed-up manifests if something went wrong.
  // It always returns an error to the caller.