Skip to content

Commit

Permalink
Spidercoordinator: Add kubeadm-config event to workQueue
Browse files Browse the repository at this point in the history
Signed-off-by: cyclinder <qifeng.guo@daocloud.io>
  • Loading branch information
cyclinder committed Mar 6, 2024
1 parent 0712541 commit 344c444
Showing 1 changed file with 41 additions and 32 deletions.
73 changes: 41 additions & 32 deletions pkg/coordinatormanager/coordinator_informer.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,9 @@ func (cc *CoordinatorController) addEventHandlers(
}

_, err = configmapInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: cc.enqueueCoordinatorOnCiliumConfigAdd,
UpdateFunc: cc.enqueueCoordinatorOnCiliumConfigUpdated,
DeleteFunc: nil,
AddFunc: cc.enqueueCoordinatorOnConfigMapAdd,
UpdateFunc: cc.enqueueCoordinatorOnConfigMapUpdated,
DeleteFunc: cc.enqueueCoordinatorOnConfigMapDeleted,
})
if err != nil {
return err
Expand Down Expand Up @@ -319,12 +319,7 @@ func (cc *CoordinatorController) enqueueCoordinatorOnUpdate(oldObj, newObj inter
return
}

coord, err := cc.CoordinatorLister.Get(cc.DefaultCoordinatorName)
if err != nil {
return
}

coordCopy := coord.DeepCopy()
coordCopy := oldCoord.DeepCopy()
if reflect.DeepEqual(coordCopy.Status, newCoord.Status) {
logger.Info("status have no changes, ignore add it to workqueue")
return
Expand All @@ -334,39 +329,48 @@ func (cc *CoordinatorController) enqueueCoordinatorOnUpdate(oldObj, newObj inter
logger.Debug(messageEnqueueCoordiantor)
}

func (cc *CoordinatorController) enqueueCoordinatorOnCiliumConfigAdd(obj interface{}) {
func (cc *CoordinatorController) enqueueCoordinatorOnConfigMapAdd(obj interface{}) {
cm := obj.(*corev1.ConfigMap)
if cm.Name != ciliumConfig {
return
}

logger := InformerLogger.With(
zap.String("ConfigmapName", cm.Name),
zap.String("Operation", "Add"),
)
if cm.Name == ciliumConfig || cm.Name == kubeadmConfigMap {
logger := InformerLogger.With(
zap.String("ConfigmapName", cm.Name),
zap.String("Operation", "Add"),
)

cc.Workqueue.Add(fmt.Sprintf("ConfigMap/%v", cm.Name))
logger.Debug(messageEnqueueCoordiantor)
cc.Workqueue.Add(fmt.Sprintf("ConfigMap/%v", cm.Name))
logger.Debug(messageEnqueueCoordiantor)
}
}

func (cc *CoordinatorController) enqueueCoordinatorOnCiliumConfigUpdated(oldObj, newObj interface{}) {
func (cc *CoordinatorController) enqueueCoordinatorOnConfigMapUpdated(oldObj, newObj interface{}) {
oldCm := oldObj.(*corev1.ConfigMap)
newCm := newObj.(*corev1.ConfigMap)
if newCm.Name != ciliumConfig {
return
}
if newCm.Name == ciliumConfig || newCm.Name == kubeadmConfigMap {
if cmp.Diff(oldCm.Data, newCm.Data) == "" {
return
}

if cmp.Diff(oldCm.Data, newCm.Data) == "" {
return
logger := InformerLogger.With(
zap.String("ConfigmapName", newCm.Name),
zap.String("Operation", "UPDATE"),
)

cc.Workqueue.Add(fmt.Sprintf("ConfigMap/%v", newCm.Name))
logger.Debug(messageEnqueueCoordiantor)
}
}

logger := InformerLogger.With(
zap.String("ConfigmapName", newCm.Name),
zap.String("Operation", "SYNC"),
)
func (cc *CoordinatorController) enqueueCoordinatorOnConfigMapDeleted(obj interface{}) {
cm := obj.(*corev1.ConfigMap)
if cm.Name == ciliumConfig || cm.Name == kubeadmConfigMap {
logger := InformerLogger.With(
zap.String("ConfigmapName", cm.Name),
zap.String("Operation", "DEL"),
)

cc.Workqueue.Add(fmt.Sprintf("ConfigMap/%v", newCm.Name))
logger.Debug(messageEnqueueCoordiantor)
cc.Workqueue.Add(fmt.Sprintf("ConfigMap/%v", cm.Name))
logger.Debug(messageEnqueueCoordiantor)
}
}

func (cc *CoordinatorController) run(ctx context.Context, workers int) error {
Expand Down Expand Up @@ -633,6 +637,11 @@ func (cc *CoordinatorController) updateCiliumPodCIDR(k8sPodCIDR []string, coordi
return fmt.Errorf("invalid ENV %s: %s, unable parse cilium-config configMap", "SPIDERPOOL_CILIUM_CONFIGMAP_NAMESPACE_NAME", cc.CiliumConfigMap)
}

if cc.CiliumIPPoolLister == nil {
InformerLogger.Sugar().Errorf("CiliumIPPoolLister is unexpected to nil, Is the cilium multi-pool feature available?")
return fmt.Errorf("the cilium multi-pool feature is unavailable")
}

ccm, err := cc.ConfigmapLister.ConfigMaps(ns).Get(name)
if err != nil {
event.EventRecorder.Eventf(
Expand Down

0 comments on commit 344c444

Please sign in to comment.