code: func (r *ControllerExpectations) SatisfiedExpectations(controllerKey string) bool {
  	if exp, exists, err := r.GetExpectations(controllerKey); exists {
  		if exp.Fulfilled() {
  			klog.V(4).Infof("Controller expectations fulfilled %#v", exp)
  			return true
  		} else if exp.isExpired() {
  			klog.V(4).Infof("Controller expectations expired %#v", exp)
  			return true
  		} else {
  			klog.V(4).Infof("Controller still waiting on expectations %#v", exp)
  			return false
  		}
  	} else if err != nil {
  		klog.V(2).Infof("Error encountered while checking expectations %#v, forcing sync", err)
  	} else {
  		// When a new controller is created, it doesn't have expectations.
  		// When it doesn't see expected watch events for > TTL, the expectations expire.
  		//	- In this case it wakes up, creates/deletes controllees, and sets expectations again.
  		// When it has satisfied expectations and no controllees need to be created/destroyed > TTL, the expectations expire.
  		//	- In this case it continues without setting expectations till it needs to create/delete controllees.
  		klog.V(4).Infof("Controller %v either never recorded expectations, or the ttl expired.", controllerKey)
  	}
  	// Trigger a sync if we either encountered and error (which shouldn't happen since we're
  	// getting from local store) or this controller hasn't established expectations.
  	return true
  }
docs: // SatisfiedExpectations returns true if the required adds/dels for the given controller have been observed.
  // Add/del counts are established by the controller at sync time, and updated as controllees are observed by the controller
  // manager.