code: func (kl *Kubelet) RunOnce(updates <-chan kubetypes.PodUpdate) ([]RunPodResult, error) {
  	// Setup filesystem directories.
  	if err := kl.setupDataDirs(); err != nil {
  		return nil, err
  	}
  
  	// If the container logs directory does not exist, create it.
  	if _, err := os.Stat(ContainerLogsDir); err != nil {
  		if err := kl.os.MkdirAll(ContainerLogsDir, 0755); err != nil {
  			klog.Errorf("Failed to create directory %q: %v", ContainerLogsDir, err)
  		}
  	}
  
  	select {
  	case u := <-updates:
  		klog.Infof("processing manifest with %d pods", len(u.Pods))
  		result, err := kl.runOnce(u.Pods, runOnceRetryDelay)
  		klog.Infof("finished processing %d pods", len(u.Pods))
  		return result, err
  	case <-time.After(runOnceManifestDelay):
  		return nil, fmt.Errorf("no pod manifest update after %v", runOnceManifestDelay)
  	}
  }
docs: // RunOnce polls from one configuration update and run the associated pods.