in controller/cluster.go [275:304]
func (c *ClusterChecker) probeLoop() {
defer c.wg.Done()
log := logger.Get().With(
zap.String("namespace", c.namespace),
zap.String("clusterName", c.clusterName),
)
probeTicker := time.NewTicker(c.options.pingInterval)
defer probeTicker.Stop()
for {
select {
case <-probeTicker.C:
clusterInfo, err := c.clusterStore.GetCluster(c.ctx, c.namespace, c.clusterName)
if err != nil {
log.Error("Failed to get the clusterName info from the clusterStore", zap.Error(err))
break
}
c.clusterMu.Lock()
c.cluster = clusterInfo
c.clusterMu.Unlock()
c.parallelProbeNodes(c.ctx, clusterInfo)
case <-c.syncCh:
if err := c.syncClusterToNodes(c.ctx); err != nil {
log.Error("Failed to sync the clusterName to the nodes", zap.Error(err))
}
case <-c.ctx.Done():
return
}
}
}