code: func (c *Controller) podAddedDeletedUpdated(obj interface{}, deleted bool) {
  	pod, ok := obj.(*v1.Pod)
  	if !ok {
  		tombstone, ok := obj.(cache.DeletedFinalStateUnknown)
  		if !ok {
  			utilruntime.HandleError(fmt.Errorf("Couldn't get object from tombstone %#v", obj))
  			return
  		}
  		pod, ok = tombstone.Obj.(*v1.Pod)
  		if !ok {
  			utilruntime.HandleError(fmt.Errorf("Tombstone contained object that is not a Pod %#v", obj))
  			return
  		}
  	}
  
  	// Filter out pods that can't help us to remove a finalizer on PVC
  	if !deleted && !volumeutil.IsPodTerminated(pod, pod.Status) && pod.Spec.NodeName != "" {
  		return
  	}
  
  	klog.V(4).Infof("Got event on pod %s/%s", pod.Namespace, pod.Name)
  
  	// Enqueue all PVCs that the pod uses
  	for _, volume := range pod.Spec.Volumes {
  		if volume.PersistentVolumeClaim != nil {
  			c.queue.Add(pod.Namespace + "/" + volume.PersistentVolumeClaim.ClaimName)
  		}
  	}
  }
docs: // podAddedDeletedUpdated reacts to Pod events