code: func NewReplicaSetControllerRefManager(
  	rsControl RSControlInterface,
  	controller metav1.Object,
  	selector labels.Selector,
  	controllerKind schema.GroupVersionKind,
  	canAdopt func() error,
  ) *ReplicaSetControllerRefManager {
  	return &ReplicaSetControllerRefManager{
  		BaseControllerRefManager: BaseControllerRefManager{
  			Controller:   controller,
  			Selector:     selector,
  			CanAdoptFunc: canAdopt,
  		},
  		controllerKind: controllerKind,
  		rsControl:      rsControl,
  	}
  }
docs: // NewReplicaSetControllerRefManager returns a ReplicaSetControllerRefManager that exposes
  // methods to manage the controllerRef of ReplicaSets.
  //
  // 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
  //       ReplicaSetControllerRefManager instance. Create a new instance if it
  //       makes sense to check CanAdopt() again (e.g. in a different sync pass).