-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
disconnected clients: ensure servers meet minimum required version #12202
disconnected clients: ensure servers meet minimum required version #12202
Conversation
877a7ff
to
7a0f5f6
Compare
7a0f5f6
to
b41401b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once my comment about the tests is addressed.
…12202) * planner: expose ServerMeetsMinimumVersion via Planner interface * filterByTainted: add flag indicating disconnect support * allocReconciler: accept and pass disconnect support flag * tests: update dependent tests
…12202) * planner: expose ServerMeetsMinimumVersion via Planner interface * filterByTainted: add flag indicating disconnect support * allocReconciler: accept and pass disconnect support flag * tests: update dependent tests
I'm going to lock this pull request because it has been closed for 120 days ⏳. This helps our maintainers find and focus on the active contributions. |
Note for Reviewer: This is a pragmatic compromise that might need discussion.
CoreScheduler
has a direct reference to thenomad.Server
and thus its members and is responsible forperforming server version checks for core jobs.
Scheduler
interface, however, theGenericScheduler
cannot have adirect reference to the
nomad.Server
because it is in thescheduler
package and that creates an import cycle.Worker
fulfills thePlanner
interface, is made available to theGenericScheduler
by that interface, and alsohas a reference to the
nomad.Server
. So thePlanner
interface was extended instead.Overview
This PR contains the logic necessary to ensure clusters running mixed version servers do not enable the
max_client_disconnect
feature until all servers meet the minimum required version.ServersMeetMinimumVersion
utility function via thePlanner
interface.filterByTained
to include a boolean flag indicating whether the caller supports disconnected clients.disconnected
andreconnecting
allocSet
s are never populated.reconciler
.GenericScheduler
allocReconciler
.NewAllocReconciler
to accept a parameter to set the field.filterByTainted
.