code: func (cc *Controller) onUpdateNodeEvent(oldObj interface{}, newObj interface{}) {
  	newNode, ok := newObj.(*apiv1.Node)
  	if !ok {
  		utillog.Errorf("failed to cast new object to Node, couldn't handle event")
  		return
  	}
  	if oldObj == nil {
  		// Node was just added, need to sync
  		utillog.Infof("initial Node watch event")
  		cc.pokeConfigSourceWorker()
  		return
  	}
  	oldNode, ok := oldObj.(*apiv1.Node)
  	if !ok {
  		utillog.Errorf("failed to cast old object to Node, couldn't handle event")
  		return
  	}
  	if !apiequality.Semantic.DeepEqual(oldNode.Spec.ConfigSource, newNode.Spec.ConfigSource) {
  		utillog.Infof("Node.Spec.ConfigSource was updated")
  		cc.pokeConfigSourceWorker()
  	}
  }
docs: // onUpdateNodeEvent checks whether the configSource changed between oldObj and newObj, and pokes the
  // configuration sync worker if there was a change