diff --git a/nomad/worker.go b/nomad/worker.go index deaab0303f9b..b66dc2470244 100644 --- a/nomad/worker.go +++ b/nomad/worker.go @@ -581,11 +581,11 @@ func (w *Worker) invokeScheduler(snap *state.StateSnapshot, eval *structs.Evalua return nil } -// ServersMeetMinimumVersion allows implementations of the Scheduler interface in +// RegionServersMeetMinimumVersion allows implementations of the Scheduler interface in // other packages to perform server version checks without direct references to // the Nomad server. -func (w *Worker) ServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool { - return ServersMeetMinimumVersion(w.srv.Members(), minVersion, checkFailedServers) +func (w *Worker) RegionServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool { + return RegionServersMeetMinimumVersion(w.srv.Members(), w.srv.Region(), minVersion, checkFailedServers) } // SubmitPlan is used to submit a plan for consideration. This allows diff --git a/scheduler/generic_sched.go b/scheduler/generic_sched.go index 90fba5427e7c..0b0219ba6b70 100644 --- a/scheduler/generic_sched.go +++ b/scheduler/generic_sched.go @@ -378,7 +378,7 @@ func (s *GenericScheduler) computeJobAllocs() error { reconciler := NewAllocReconciler(s.logger, genericAllocUpdateFn(s.ctx, s.stack, s.eval.ID), s.batch, s.eval.JobID, s.job, s.deployment, allocs, tainted, s.eval.ID, - s.eval.Priority, s.planner.ServersMeetMinimumVersion(minVersionMaxClientDisconnect, true)) + s.eval.Priority, s.planner.RegionServersMeetMinimumVersion(minVersionMaxClientDisconnect, true)) results := reconciler.Compute() s.logger.Debug("reconciled current state with desired state", "results", log.Fmt("%#v", results)) diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go index 705ac9afb9f1..962bca2ab02b 100644 --- a/scheduler/scheduler.go +++ b/scheduler/scheduler.go @@ -134,8 +134,9 @@ type Planner interface { // that on leader changes, the evaluation will be reblocked properly. ReblockEval(*structs.Evaluation) error - // ServersMeetMinimumVersion returns whether the Nomad servers are at least on the - // given Nomad version. The checkFailedServers parameter specifies whether version - // for the failed servers should be verified. - ServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool + // RegionServersMeetMinimumVersion returns whether the Nomad servers in the + // worker's region are at least on the given Nomad version. The + // checkFailedServers parameter specifies whether version for the failed + // servers should be verified. + RegionServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool } diff --git a/scheduler/scheduler_system.go b/scheduler/scheduler_system.go index 2d5e03bda38e..02315e7d4e31 100644 --- a/scheduler/scheduler_system.go +++ b/scheduler/scheduler_system.go @@ -230,7 +230,7 @@ func (s *SystemScheduler) computeJobAllocs() error { // Diff the required and existing allocations diff := diffSystemAllocs(s.job, s.nodes, s.notReadyNodes, tainted, live, term, - s.planner.ServersMeetMinimumVersion(minVersionMaxClientDisconnect, true)) + s.planner.RegionServersMeetMinimumVersion(minVersionMaxClientDisconnect, true)) s.logger.Debug("reconciled current state with desired state", "place", len(diff.place), "update", len(diff.update), diff --git a/scheduler/testing.go b/scheduler/testing.go index aba160fb9495..4b54f2514e86 100644 --- a/scheduler/testing.go +++ b/scheduler/testing.go @@ -20,7 +20,7 @@ type RejectPlan struct { Harness *Harness } -func (r *RejectPlan) ServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool { +func (r *RejectPlan) RegionServersMeetMinimumVersion(minVersion *version.Version, checkFailedServers bool) bool { return r.Harness.serversMeetMinimumVersion } @@ -250,7 +250,7 @@ func (h *Harness) ReblockEval(eval *structs.Evaluation) error { return nil } -func (h *Harness) ServersMeetMinimumVersion(_ *version.Version, _ bool) bool { +func (h *Harness) RegionServersMeetMinimumVersion(_ *version.Version, _ bool) bool { return h.serversMeetMinimumVersion }