Update to Go 1.26.4, build runners and go.mod depedencies (#3108)

* update golang and dependencies
* fix incorrect log formatting
* clean mod chache and introduce GOARCH in Dockerfile (choose dynamically)
* remove GO111MODULE mentions
* bump github actions from v2 to v3
* bump docker runners to v7
* use extra event store for backwards compatibility with existing codebase
* updated generated opconfig api
This commit is contained in:
Felix Kunde
2026-06-23 13:35:53 +02:00
committed by GitHub
parent a664816c09
commit df3224730f
34 changed files with 1220 additions and 406 deletions
+27 -13
View File
@@ -182,7 +182,7 @@ func (c *Controller) addCluster(lg *logrus.Entry, clusterName spec.NamespacedNam
return cl, nil
}
func (c *Controller) processEvent(event ClusterEvent) {
func (c *Controller) processEvent(event ClusterEvent, isInInitialList bool) {
var clusterName spec.NamespacedName
var clHistory ringlog.RingLogger
var err error
@@ -371,11 +371,22 @@ func (c *Controller) processClusterEventsQueue(idx int, stopCh <-chan struct{},
go func() {
<-stopCh
c.clusterEventQueues[idx].Close()
(*c.clusterEventQueues[idx]).Close()
}()
for {
obj, err := c.clusterEventQueues[idx].Pop(cache.PopProcessFunc(func(interface{}, bool) error { return nil }))
_, err := (*c.clusterEventQueues[idx]).Pop(cache.PopProcessFunc(func(obj interface{}, isInitialList bool) error {
event, ok := obj.(ClusterEvent)
if !ok {
c.logger.Errorf("could not cast to cluster event")
return nil // skip event to keep processing
}
c.processEvent(event, isInitialList)
if err := c.clusterEventStores[idx].Delete(obj); err != nil {
c.logger.Errorf("failed to delete key from lookup store: %v", err)
}
return nil
}))
if err != nil {
if err == cache.ErrFIFOClosed {
return
@@ -383,12 +394,6 @@ func (c *Controller) processClusterEventsQueue(idx int, stopCh <-chan struct{},
c.logger.Errorf("error when processing cluster events queue: %v", err)
continue
}
event, ok := obj.(ClusterEvent)
if !ok {
c.logger.Errorf("could not cast to ClusterEvent")
}
c.processEvent(event)
}
}
@@ -523,7 +528,10 @@ func (c *Controller) queueClusterEvent(informerOldSpec, informerNewSpec *acidv1.
}
lg := c.logger.WithField("worker", workerID).WithField("cluster-name", clusterName)
if err := c.clusterEventQueues[workerID].Add(clusterEvent); err != nil {
if err := c.clusterEventStores[workerID].Add(clusterEvent); err != nil {
lg.Errorf("error while storing cluster event for lookup: %v", clusterEvent)
}
if err := (*c.clusterEventQueues[workerID]).Add(clusterEvent); err != nil {
lg.Errorf("error while queueing cluster event: %v", clusterEvent)
}
lg.Infof("%s event has been queued", eventType)
@@ -533,9 +541,9 @@ func (c *Controller) queueClusterEvent(informerOldSpec, informerNewSpec *acidv1.
}
// A delete event discards all prior requests for that cluster.
for _, evType := range []EventType{EventAdd, EventSync, EventUpdate, EventRepair} {
obj, exists, err := c.clusterEventQueues[workerID].GetByKey(queueClusterKey(evType, uid))
obj, exists, err := c.clusterEventStores[workerID].GetByKey(queueClusterKey(evType, uid))
if err != nil {
lg.Warningf("could not get event from the queue: %v", err)
lg.Warningf("could not get event from the lookup store: %v", err)
continue
}
@@ -543,12 +551,18 @@ func (c *Controller) queueClusterEvent(informerOldSpec, informerNewSpec *acidv1.
continue
}
err = c.clusterEventQueues[workerID].Delete(obj)
err = (*c.clusterEventQueues[workerID]).Delete(obj)
if err != nil {
lg.Warningf("could not delete event from the queue: %v", err)
} else {
lg.Debugf("event %s has been discarded for the cluster", evType)
}
err = c.clusterEventStores[workerID].Delete(obj)
if err != nil {
lg.Warningf("could not delete event from the lookup store: %v", err)
} else {
lg.Debugf("event %s has been deleted from the lookup store", evType)
}
}
}