Skip to content

docs(dep): add the standard Multi-Cluster Services implementation to DEP 103 - #104

Draft
estroz wants to merge 3 commits into
multi-cluster-eppfrom
estroz/dep-103-standard-mcs
Draft

estroz wants to merge 3 commits into
multi-cluster-eppfrom
estroz/dep-103-standard-mcs

Conversation

@estroz

@estroz estroz commented Oct 29, 2026

Copy link
Copy Markdown

Overview

DEP 103 describes the MCS pool discovery mode with Karmada as the implementation. A standard KEP-1645 implementation is being added to ai-dynamo/dynamo under deploy/global-discovery-mcs (ai-dynamo/dynamo#17601): a registry (mcs-registry, cluster leases, Service exports and endpoint sets, merged ServiceImports over a DynamoDB Global Table) and a per-cluster controller (mcs-controller) that materializes ServiceImport, derived Service and EndpointSlices with the multicluster.kubernetes.io/* labels the Global Discovery Service reads in --pool-discovery mcs mode. This updates the DEP so the mode is described in terms of that implementation, with Karmada as the alternative.

Key Changes

  • "Which Mode When": MCS row no longer says Karmada first; new "Standard MCS or Karmada" subsection with the trade-off (multi-region, no hub, automatic imports, KEP labels and conflict handling versus an existing Karmada fleet).
  • "MCS (Karmada or Standard)": names the standard implementation, --pool-discovery mcs for it and karmada for Karmada; new subsection describing the registry and controller, the objects they create, the conflict rule and conditions, ClusterProperty creation, and the optional topology.kubernetes.io/region slice label as the pool's region source.
  • Per-mode table: rows for who creates each MCS object (exports, ServiceImport, derived Service, imported EndpointSlices, ClusterProperty) under mcs: and karmada:.
  • Implementation table: row for the port branch, PR number to follow.
  • Open question 9: a multi-replica PoolRelay (feat(operator): deploy active-active PoolRelay for one DGD dynamo#17347) registers one PoolKey from several pods.
  • Appendix: Objects table rows for ServiceImport, derived Service and clusterset.k8s.io; "Kubernetes APIs Used" says multicluster.x-k8s.io/v1beta1 with v1alpha1 also served by the mcs-api v0.5.2 CRDs (Karmada's own CRDs serve v1alpha1 only; the operator in feat(operator): export Global Router pools through the Multi-Cluster Services API dynamo#17412 writes v1alpha1, which conversion accepts).

Validation

Table column counts and link references checked by script; git diff --check clean; header unchanged.

Issues and Ongoing Work

Relates to ai-dynamo/dynamo#17601. The port PR against ai-dynamo/dynamo#17371's branch will fill in the PR number in the Implementation table.

🤖 Generated with Claude Code

…DEP 103

Dynamo now ships a standard KEP-1645 implementation in
deploy/global-discovery-mcs (ai-dynamo/dynamo#17601, branch
estroz/mcs-port-module): mcs-registry and a per-cluster mcs-controller.
The Global Discovery Service reads its slices unchanged with
--pool-discovery mcs, so Karmada becomes one option rather than the
implementation.

- Name the standard implementation in the MCS section and describe its
  registry, controller, conflict rules, ClusterProperty objects and
  region label.
- Add the MCS objects and who creates them to the per-mode components
  table and the appendix objects table.
- Add a trade-off subsection under Which Mode When: standard MCS for
  multi-region, no hub and automatic imports; Karmada for existing fleets.
- List the implementation branch and issue under Implementation.
- Kubernetes APIs Used: multicluster.x-k8s.io/v1beta1, with v1alpha1
  also served by the mcs-api v0.5.2 CRDs; Karmada serves v1alpha1 only.
- Open question: a multi-replica PoolRelay (#17347) registers one
  PoolKey from several pods.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com>
estroz and others added 2 commits October 29, 2026 13:09
The port PR for the standard MCS implementation is now open as
ai-dynamo/dynamo#17615.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com>
…mentation

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant