Merge pull request #3861 from areebahmeddd/fix/random-pods

route bake targets across pods with random loadbalance
This commit is contained in:
Tõnis Tiigi
2026-07-15 09:05:30 -07:00
committed by GitHub
8 changed files with 73 additions and 9 deletions
+5 -1
View File
@@ -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{}
}
+8
View File
@@ -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