in internal/loader/configuration_client_manager.go [145:173]
func (manager *ConfigurationClientManager) GetClients(ctx context.Context) ([]*ConfigurationClientWrapper, error) {
currentTime := metav1.Now()
clients := make([]*ConfigurationClientWrapper, 0)
for _, clientWrapper := range manager.StaticClientWrappers {
if currentTime.After(clientWrapper.BackOffEndTime.Time) {
clients = append(clients, clientWrapper)
}
}
if !manager.ReplicaDiscoveryEnabled {
return clients, nil
}
if currentTime.After(manager.lastFallbackClientAttempt.Time.Add(MinimalClientRefreshInterval)) &&
(manager.DynamicClientWrappers == nil ||
currentTime.After(manager.lastFallbackClientRefresh.Time.Add(FallbackClientRefreshExpireInterval))) {
manager.lastFallbackClientAttempt = currentTime
url, _ := url.Parse(manager.endpoint)
manager.DiscoverFallbackClients(ctx, url.Host)
}
for _, clientWrapper := range manager.DynamicClientWrappers {
if currentTime.After(clientWrapper.BackOffEndTime.Time) {
clients = append(clients, clientWrapper)
}
}
return clients, nil
}