Skip to content

Commit

Permalink
skipper: use kubernetes cluster client to discover redis shards
Browse files Browse the repository at this point in the history
Fixes #2476

Signed-off-by: Alexander Yastrebov <alexander.yastrebov@zalando.de>
  • Loading branch information
AlexanderYastrebov committed Feb 9, 2024
1 parent b236790 commit e12e262
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions skipper.go
Original file line number Diff line number Diff line change
Expand Up @@ -1684,24 +1684,33 @@ func run(o Options, sig chan os.Signal, idleConnsCH chan struct{}) error {
kdc := findKubernetesDataclient(dataClients)
if kdc != nil {
redisOptions.AddrUpdater = getRedisUpdaterFunc(o.KubernetesRedisServiceNamespace, o.KubernetesRedisServiceName, kdc)
_, err = redisOptions.AddrUpdater()
} else {
clusterClient, err := kubernetes.NewClusterClient(o.KubernetesDataClientOptions())
if err != nil {
log.Errorf("Failed to update redis address %v", err)
log.Errorf("Failed to create kubernetes cluster client: %v", err)
return err
}
} else {
log.Errorf("Failed to find kubernetes dataclient, but redis shards should be get by kubernetes svc %s/%s", o.KubernetesRedisServiceNamespace, o.KubernetesRedisServiceName)
redisOptions.AddrUpdater = func() ([]string, error) {
a, err := clusterClient.LoadEndpointAddresses(o.KubernetesRedisServiceNamespace, o.KubernetesRedisServiceName)
log.Debugf("LoadEndpointAddresses found %d redis endpoints, err: %v", len(a), err)
return a, err
}
}

_, err = redisOptions.AddrUpdater()
if err != nil {
log.Errorf("Failed to update redis addresses: %v", err)
return err
}
} else if redisOptions != nil && o.SwarmRedisEndpointsRemoteURL != "" {
log.Infof("Use remote address %s to fetch updates redis shards", o.SwarmRedisEndpointsRemoteURL)
redisOptions.AddrUpdater = updateEndpointsFromURL(o.SwarmRedisEndpointsRemoteURL)
_, err = redisOptions.AddrUpdater()
if err != nil {
log.Errorf("Failed to update redis endpoints from URL %v", err)
log.Errorf("Failed to update redis endpoints from URL: %v", err)
return err
}
}

}

var ratelimitRegistry *ratelimit.Registry
Expand Down

0 comments on commit e12e262

Please sign in to comment.