code: func (dsc *DaemonSetsController) getNodesToDaemonPods(ds *apps.DaemonSet) (map[string][]*v1.Pod, error) {
  	claimedPods, err := dsc.getDaemonPods(ds)
  	if err != nil {
  		return nil, err
  	}
  	// Group Pods by Node name.
  	nodeToDaemonPods := make(map[string][]*v1.Pod)
  	for _, pod := range claimedPods {
  		nodeName, err := util.GetTargetNodeName(pod)
  		if err != nil {
  			klog.Warningf("Failed to get target node name of Pod %v/%v in DaemonSet %v/%v",
  				pod.Namespace, pod.Name, ds.Namespace, ds.Name)
  			continue
  		}
  
  		nodeToDaemonPods[nodeName] = append(nodeToDaemonPods[nodeName], pod)
  	}
  
  	return nodeToDaemonPods, nil
  }
docs: // getNodesToDaemonPods returns a map from nodes to daemon pods (corresponding to ds) created for the nodes.
  // This also reconciles ControllerRef by adopting/orphaning.
  // Note that returned Pods are pointers to objects in the cache.
  // If you want to modify one, you need to deep-copy it first.