fix random pod spread
Signed-off-by: Areeb Ahmed <areebahmed0709@gmail.com>
This commit is contained in:
+5
-1
@@ -1030,7 +1030,11 @@ func detectSharedMounts(ctx context.Context, reqs map[string][]*reqForNode) (_ m
|
||||
m := map[string]map[fsKey]*fsTracker{}
|
||||
for _, reqs := range reqs {
|
||||
for _, req := range reqs {
|
||||
nodeName := req.ResolvedNode.Node().Name
|
||||
nodeName := req.Node().Name
|
||||
// skip shared-session optimisation: targets may connect to different replicas.
|
||||
if req.Node().Driver != nil && req.Node().Driver.RequiresUncachedClient() {
|
||||
continue
|
||||
}
|
||||
if _, ok := m[nodeName]; !ok {
|
||||
m[nodeName] = map[fsKey]*fsTracker{}
|
||||
}
|
||||
|
||||
@@ -57,6 +57,14 @@ func (dp ResolvedNode) Platforms() []ocispecs.Platform {
|
||||
}
|
||||
|
||||
func (dp ResolvedNode) Client(ctx context.Context) (*client.Client, error) {
|
||||
node := dp.resolver.nodes[dp.driverIndex]
|
||||
// loadbalance=random requires a fresh connection per call so each target lands on a different pod.
|
||||
if node.Driver != nil && node.Driver.RequiresUncachedClient() {
|
||||
if _, err := dp.resolver.boot(ctx, []int{dp.driverIndex}, nil); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return node.Driver.UncachedClient(ctx)
|
||||
}
|
||||
clients, err := dp.resolver.boot(ctx, []int{dp.driverIndex}, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user