code: func (r *RollingUpdater) scaleAndWaitWithScaler(rc *api.ReplicationController, retry *RetryParams, wait *RetryParams) (*api.ReplicationController, error) {
  	scaler, err := ScalerFor(api.Kind("ReplicationController"), r.c)
  	if err != nil {
  		return nil, fmt.Errorf("Couldn't make scaler: %s", err)
  	}
  	if err := scaler.Scale(rc.Namespace, rc.Name, uint(rc.Spec.Replicas), &ScalePrecondition{-1, ""}, retry, wait); err != nil {
  		return nil, err
  	}
  	return r.c.ReplicationControllers(rc.Namespace).Get(rc.Name)
  }
docs: // scalerScaleAndWait scales a controller using a Scaler and a real client.