Repository navigation
feat(global-router): resolve MCS pool models and live frontends - #17276
Draft
sachalmalick wants to merge 1 commit into
Draft
sachalmalick wants to merge 1 commit into
sachalmalick wants to merge 1 commit into
Conversation
Signed-off-by: Sachal Malick <s@chal.ai>
This was referenced Oct 25, 2026
This was referenced Oct 25, 2026
atchernych
added a commit
that referenced
this pull request
Oct 27, 2026
In MCS mode the Global Discovery Service now accepts POST /pools, and lists a pool only while MCS shows a Ready PoolRelay for it and the pool's registration is live. The registration gives the model, capabilities, capacity and location. MCS gives the Relay and frontend addresses; the frontends come from the `<dgd>-frontend` Service, as in #17276. Instances share registrations: each polls the others' GET /registrations twice per heartbeat interval, finding them through the service's own MCS export (--peer-service), and keeps copies for the time they have left. Only registrations a PoolRelay made locally are shared, so copies are never passed on. Sharing goes through a RegistrationExchange contract, which the memory store implements. A new instance is ready only after it has asked the others once, and with --peer-service the lease must be more than two heartbeat intervals. Instances ask each other over plain HTTP, so --peer-service is refused with --tls-cert-path for now. A pool that only one side lists for two lease durations is logged once. This replaces #17282, which targeted the global-router-v2 test branch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych
added a commit
that referenced
this pull request
Oct 27, 2026
In MCS mode the Global Discovery Service now accepts POST /pools, and lists a pool only while MCS shows a Ready PoolRelay for it and the pool's registration is live. The registration gives the model, capabilities, capacity and location. MCS gives the Relay and frontend addresses; the frontends come from the `<dgd>-frontend` Service, as in #17276. Instances share registrations: each polls the others' GET /registrations twice per heartbeat interval, finding them through the service's own MCS export (--peer-service), and keeps copies for the time they have left. Only registrations a PoolRelay made locally are shared, so copies are never passed on. Sharing goes through a RegistrationExchange contract, which the memory store implements. A new instance is ready only after it has asked the others once, and with --peer-service the lease must be more than two heartbeat intervals. Instances ask each other over plain HTTP, so --peer-service is refused with --tls-cert-path for now. A pool that only one side lists for two lease durations is logged once. This replaces #17282, which targeted the global-router-v2 test branch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych
added a commit
that referenced
this pull request
Oct 27, 2026
In MCS mode the Global Discovery Service now accepts POST /pools, and lists a pool only while MCS shows a Ready PoolRelay for it and the pool's registration is live. The registration gives the model, capabilities, capacity and location. MCS gives the Relay and frontend addresses; the frontends come from the `<dgd>-frontend` Service, as in #17276. Instances share registrations: each polls the others' GET /registrations twice per heartbeat interval, finding them through the service's own MCS export (--peer-service), and keeps copies for the time they have left. Only registrations a PoolRelay made locally are shared, so copies are never passed on. Sharing goes through a RegistrationExchange contract, which the memory store implements. A new instance is ready only after it has asked the others once, and with --peer-service the lease must be more than two heartbeat intervals. Instances ask each other over plain HTTP, so --peer-service is refused with --tls-cert-path for now. A pool that only one side lists for two lease durations is logged once. This replaces #17282, which targeted the global-router-v2 test branch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych
added a commit
that referenced
this pull request
Oct 27, 2026
In MCS mode the Global Discovery Service now accepts POST /pools, and lists a pool only while MCS shows a Ready PoolRelay for it and the pool's registration is live. The registration gives the model, capabilities, capacity and location. MCS gives the Relay and frontend addresses; the frontends come from the `<dgd>-frontend` Service, as in #17276. Instances share registrations: each polls the others' GET /registrations twice per heartbeat interval, finding them through the service's own MCS export (--peer-service), and keeps copies for the time they have left. Only registrations a PoolRelay made locally are shared, so copies are never passed on. Sharing goes through a RegistrationExchange contract, which the memory store implements. A new instance is ready only after it has asked the others once, and with --peer-service the lease must be more than two heartbeat intervals. Instances ask each other over plain HTTP, so --peer-service is refused with --tls-cert-path for now. A pool that only one side lists for two lease durations is logged once. This replaces #17282, which targeted the global-router-v2 test branch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
atchernych
added a commit
that referenced
this pull request
Oct 27, 2026
In MCS mode the Global Discovery Service now accepts POST /pools, and lists a pool only while MCS shows a Ready PoolRelay for it and the pool's registration is live. The registration gives the model, capabilities, capacity and location. MCS gives the Relay and frontend addresses; the frontends come from the `<dgd>-frontend` Service, as in #17276. Instances share registrations: each polls the others' GET /registrations twice per heartbeat interval, finding them through the service's own MCS export (--peer-service), and keeps copies for the time they have left. Only registrations a PoolRelay made locally are shared, so copies are never passed on. Sharing goes through a RegistrationExchange contract, which the memory store implements. A new instance is ready only after it has asked the others once, and with --peer-service the lease must be more than two heartbeat intervals. Instances ask each other over plain HTTP, so --peer-service is refused with --tls-cert-path for now. A pool that only one side lists for two lease durations is logged once. This replaces #17282, which targeted the global-router-v2 test branch. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: Anna Tchernych <atchernych@nvidia.com>
1 task done
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #17275 (discovery metadata prerequisite).
Global Ingress polls
/pools, but the MCS backend previously returned no model or frontend addresses. Add optional--routing-configmodel/location bindings and join them with ready imported frontend EndpointSlices by source cluster, namespace, and DGD name. Frontend addresses remain dynamic; a ready Relay is still required for pool membership. Existing constructors and unconfigured behavior remain compatible.This is the first PR in a stack; the deployment and validation example follows separately.
Validation