Skip to content

Add dedicated cluster and endpoint discovery services - #6

Merged
ioquatix merged 12 commits into
mainfrom
dedicated-discovery-services
Aug 7, 2026
Merged

Add dedicated cluster and endpoint discovery services#6
ioquatix merged 12 commits into
mainfrom
dedicated-discovery-services

Conversation

@samuel-williams-shopify

Copy link
Copy Markdown
Contributor

Summary

Add resource-specific Cluster Discovery Service (CDS) and Endpoint Discovery Service (EDS) implementations alongside the existing Aggregated Discovery Service.

This allows a local control plane to publish the cluster and endpoint resources it owns without claiming Envoy's single ADS stream. A separate control plane can continue to use ADS for listeners, routes, or other configuration.

Design

  • Extract the state-of-the-world stream implementation shared by ADS, CDS, and EDS.
  • Pin dedicated streams to their implied resource type.
  • Accept an omitted type_url on CDS/EDS requests, as permitted for non-aggregated services.
  • Reject a conflicting type_url rather than serving the wrong resource type.
  • Ignore unrelated control-plane change notifications on dedicated streams.
  • Keep delta discovery explicitly unimplemented.
  • Allow Async::GRPC::XDS::Server to select the discovery services it registers; ADS remains the default.

Verification

  • bundle exec bake test (79 examples)
  • bundle exec rubocop
  • bundle exec bake decode:index:coverage lib/async (118/118)

@samuel-williams-shopify
samuel-williams-shopify force-pushed the dedicated-discovery-services branch 3 times, most recently from cf80845 to 32ec913 Compare August 6, 2026 08:23
@samuel-williams-shopify
samuel-williams-shopify force-pushed the dedicated-discovery-services branch from ccbb65a to 3c92457 Compare August 6, 2026 09:23
@ioquatix
ioquatix merged commit 3028354 into main Aug 7, 2026
42 of 46 checks passed
@ioquatix
ioquatix deleted the dedicated-discovery-services branch August 7, 2026 06:56
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.

2 participants