code: func (r *leaseEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []corev1.EndpointPort, reconcilePorts bool) error {
  	r.reconcilingLock.Lock()
  	defer r.reconcilingLock.Unlock()
  
  	if r.stopReconcilingCalled {
  		return nil
  	}
  
  	// Refresh the TTL on our key, independently of whether any error or
  	// update conflict happens below. This makes sure that at least some of
  	// the masters will add our endpoint.
  	if err := r.masterLeases.UpdateLease(ip.String()); err != nil {
  		return err
  	}
  
  	return r.doReconcile(serviceName, endpointPorts, reconcilePorts)
  }
docs: // ReconcileEndpoints lists keys in a special etcd directory.
  // Each key is expected to have a TTL of R+n, where R is the refresh interval
  // at which this function is called, and n is some small value.  If an
  // apiserver goes down, it will fail to refresh its key's TTL and the key will
  // expire. ReconcileEndpoints will notice that the endpoints object is
  // different from the directory listing, and update the endpoints object
  // accordingly.