code: func NewPodControllerRefManager(
  	podControl PodControlInterface,
  	controller metav1.Object,
  	selector labels.Selector,
  	controllerKind schema.GroupVersionKind,
  	canAdopt func() error,
  ) *PodControllerRefManager {
  	return &PodControllerRefManager{
  		BaseControllerRefManager: BaseControllerRefManager{
  			Controller:   controller,
  			Selector:     selector,
  			CanAdoptFunc: canAdopt,
  		},
  		controllerKind: controllerKind,
  		podControl:     podControl,
  	}
  }
docs: // NewPodControllerRefManager returns a PodControllerRefManager that exposes
  // methods to manage the controllerRef of pods.
  //
  // The CanAdopt() function can be used to perform a potentially expensive check
  // (such as a live GET from the API server) prior to the first adoption.
  // It will only be called (at most once) if an adoption is actually attempted.
  // If CanAdopt() returns a non-nil error, all adoptions will fail.
  //
  // NOTE: Once CanAdopt() is called, it will not be called again by the same
  //       PodControllerRefManager instance. Create a new instance if it makes
  //       sense to check CanAdopt() again (e.g. in a different sync pass).