Repository navigation
Conversation
✅ Dynamo PR CI passed — run 41732038322 (attempt 1) on
|
5ccd7b6 to
03b0d74
Compare
03b0d74 to
244e98f
Compare
Select the backend logic and regression tests from: #17604 (cherry picked from commit b30c06b) Read topology.kubernetes.io/region from imported EndpointSlices and propagate it to PoolListing.location.region. Choose a labeled slice deterministically and publish region changes even when relay identity does not change. Preserve the upstream fallback for missing or empty labels. Part of #17601. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com> Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Run identical strict GDS discovery cases with either bundled MCS or Cilium. Isolate provider setup, retain diagnostics, guard report writes before teardown, and record shared-case validation and architecture slides. Part of #17601; refs DGH-2319. Stacked on #17681; the preceding minimal GDS region fix comes from #17604. Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
01f2d4b to
e14b7c4
Compare
|
Rebased onto the updated #17681 ( Addressed and resolved all three review threads: removed the duplicate region-presence assertion and the two redundant Rust comments. Also fixed this PR's prompt-file SPDX header and trailing blank line. Historical slide/results counts remain dated; the README and PR description now explain the current case count.
Case names and order match exactly; both runs removed their dedicated clusters. The MCS image was rebuilt. Both runs reused the validated GDS image after checking unchanged rebased runtime sources/dependencies; the new GDS edits remove comments only. Dated results and provenance are committed. Coverage remains discovery/lifecycle with real GDS and router/relay stand-ins. The full Go unit/envtest suite passes with the race detector at 95.7% coverage, along with lint, nine cleanup regressions, Bash 3.2/ShellCheck, commit hooks and clean-tree generated-file checks. The parent's DynamoDB socket-override fix is inherited, not copied here; its integration suite also passes locally. Both independent reviewers confirmed the scope and review fixes. Fresh CI is queued for this head: provider matrix, pre-merge, copyright. |
Overview
Keep the MCS-to-Global Discovery Service discovery boundary independent of the bundled MCS implementation by running one shared set of kind cases with either Dynamo MCS or Cilium. New discovery cases are written once and run against both providers; provider selection changes installation and teardown, not the workloads or assertions.
This tests discovery and lifecycle with real GDS. Router and PoolRelay Pods are busybox stand-ins: inference routing, relay handshakes, state streams and full Global Router failover are not exercised.
Stacked on #17681 (
sttts-mcs-upstream-conformanceat244e98fa8639e85a589e7859dda334f3f8c020fa). That PR supplies the tested MCS baseline and remains a separate conformance change. Merge it first, then retarget this PR.Key Changes
Production Rust change: +21 / -3 nonblank, non-comment lines, excluding tests. The provider swap adds no bundled MCS production changes.
make e2e-discovery E2E_PROVIDER=dynamo|cilium. Both modes execute the samephase3.sh, headless Service fixtures, standard ServiceExports and GDS configuration. Cilium 1.20.4 runs with MCS API and EndpointSlice synchronization enabled; its mode asserts that bundled registry/controller workloads are absent. Phase 3 has no provider branches; strict mode rejects skips and known gaps.b30c06b16cd122e726d0c9da5aa8593f2b4ea193. Read an optional imported region label and preserve the cluster-ID fallback. Keep the original author and commit reference; omit unrelated help/doc changes.Configuration and Compatibility
The new target always selects phase 3 and strict mode. The existing
make e2edefault still runs the bundled phases 1/2/3; requesting phases 1/2 with Cilium fails explicitly because those cases exercise bundled registry/controller internals. The upstream conformance runner remains pinned to the Dynamo provider.GDS reads standard imported Kubernetes objects and does not call the bundled registry. For example, an MCS provider may publish:
The MCS provider owns that object; the suite never patches its slices. A nonempty region label yields
location.region=region-a. Omit the label, or give it an empty value, and GDS retainslocation.region=a. The shared assertion checks this same label-or-cluster contract for both providers. No new CRD, Helm API, registry/storage API or data migration is introduced.The slide records the original 2026-10-30 run: 20 shared cases plus two setup checks. Review removed a redundant region-presence assertion; the retained region-contract case still requires a nonempty region and validates its value. The current suite has 19 shared cases plus two setup checks.
Validation
Review reruns on 2026-11-03, locally on macOS arm64 with kind v0.33.0 / Kubernetes v1.35.8 and Helm v3.21.0:
Both runs reused the validated
global-discovery-service:e2e-78fb0157db6aimage after checking that rebased GDS sources and in-tree dependencies match its source; the GDS review edits remove two comments only. The bundled MCS image was rebuilt. Their executed discovery case names and order match exactly, including ServiceExport readiness, imported objects, pool/router identities and URLs, scale-to-zero/recovery, and export removal. Both pairs of dedicated clusters were deleted. Recorded summaries, case lists and source/image provenance distinguish the earlier baseline, region fix, original shared suite and 2026-11-03 review runs. The dated original evidence is preserved.The region fix previously passed 45 library and 6 binary tests plus formatting and Clippy; these were not repeated for comment-only GDS edits. Nine targeted runner checks exercise real EXIT-handler/report paths with stubbed cluster operations: failures to create the report directory, open/write the summary, exit-status preservation and existing keep behavior. ShellCheck and commit-time checks pass. Independent harness/setup/adversarial reviews and a focused re-review checked the shared-suite boundary and the two introduced CI/cleanup fixes.
The full Go unit/envtest suite also passes with the race detector at 95.7% internal coverage, with AWS environment/profile settings isolated. No test source or filters were changed for that isolation. The DynamoDB integration suite and clean-tree generated-file check also pass after taking the parent's socket-override fix. The evidence above is local. Both Ubuntu provider-matrix jobs also passed on the original
01f2d4b5aahead (run 41092610002); new runs report their own results for the rebased head. This does not establish end-to-end request routing, DNS conformance, real relay protocol behavior, DynamoDB/multi-region behavior, or a complete extraction of a generic MCS package.Issues and Ongoing Work
Pull Request Checklist
/pr-checklistskill, including independent review.