Skip to content

xds-federation: introduce OD-CDS xds-federation support#40988

Merged
yanavlasov merged 5 commits intoenvoyproxy:mainfrom
adisuissa:xds_federation_odcds_subscribe_singleton_v1
Sep 9, 2025
Merged

xds-federation: introduce OD-CDS xds-federation support#40988
yanavlasov merged 5 commits intoenvoyproxy:mainfrom
adisuissa:xds_federation_odcds_subscribe_singleton_v1

Conversation

@adisuissa
Copy link
Copy Markdown
Contributor

Commit Message: xds-federation: introduce OD-CDS xds-federation support
Additional Description:

This PR introduces OD-CDS xds-Federation support. The implementation uses a new OD-CDS subscription management on the main thread, that is simpler than the former (issues subscriptions directly using the xDS-manager subscription function), and doesn't need to maintain the state of whether the first request was sent or not.
It does so by allowing each subscription be a singleton subscription on the component side (the gRPC-mux to the xds-Federation server will ensure that a single subscription message is sent to the server). This approach handles some bugs that were detected for the non-xDS-TP based OD-CDS implementation.
The plan is first to use this implementation for xDS-TP based resources, and when it is validated in production, move the ADS and the specific-config-source paths to use the new implementation/model.

Apologies for the large PR, but the number of tests that was needed here is quite large.

Risk Level: low - only for xDS-TP based config sources and it is guarded by the envoy.reloadable_features.xdstp_based_config_singleton_subscriptions runtime guard which is currently disabled.
Testing: Added both unit-tests and integration tests
Docs Changes: N/A (until the entire xDS-TP based config sources support is done).
Release Notes: N/A (until the entire xDS-TP based config sources support is done).
Platform Specific Features: N/A

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
@adisuissa adisuissa marked this pull request as ready for review September 4, 2025 18:50
@adisuissa
Copy link
Copy Markdown
Contributor Author

Assigning @KBaichoo as potential OD-CDS user (no impact on the non-xDS-TP path at the moment, but feel free to comment), and @yanavlasov and @nezdolik for config-path reviewers.
/assign @yanavlasov @nezdolik @KBaichoo

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
KBaichoo
KBaichoo previously approved these changes Sep 5, 2025
Copy link
Copy Markdown
Contributor

@KBaichoo KBaichoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you for flagging.

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
…s_subscribe_singleton_v1

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
@KBaichoo
Copy link
Copy Markdown
Contributor

KBaichoo commented Sep 5, 2025

/retest

…s_subscribe_singleton_v1

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
@yanavlasov yanavlasov merged commit e98d22f into envoyproxy:main Sep 9, 2025
25 of 26 checks passed
yanavlasov pushed a commit that referenced this pull request Sep 18, 2025
… CDS SotW (#41117)

Prior to this PR, an Envoy that used (old) ADS over SotW to fetch all
the clusters and a xDS-TP-config-based source to fetch OD-CDS would see
the OD-CDS clusters removed once the ADS update arrives.
This PR, changes the SotW CDS wildcard update, and adds tracking to see
which resources are fetched from that source. The tracking is only used
if both (old) ADS and an xDS-TP based config is configured.
This implementation is currently only for CDS, but will need to be part
of the (future) xDS-Cache layer.

Continuation of #40988.

Risk Level: low - should only impact cases that use xDS-TP based configs
(guarded by a false by default runtime guard).
Testing: Added both unit and integration test.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

---------

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
mbadov pushed a commit to mbadov/envoy that referenced this pull request Sep 22, 2025
…0988)

Commit Message: xds-federation: introduce OD-CDS xds-federation support
Additional Description:

This PR introduces OD-CDS xds-Federation support. The implementation
uses a new OD-CDS subscription management on the main thread, that is
simpler than the former (issues subscriptions directly using the
xDS-manager subscription function), and doesn't need to maintain the
state of whether the first request was sent or not.
It does so by allowing each subscription be a singleton subscription on
the component side (the gRPC-mux to the xds-Federation server will
ensure that a single subscription message is sent to the server). This
approach handles some bugs that were detected for the non-xDS-TP based
OD-CDS implementation.
The plan is first to use this implementation for xDS-TP based resources,
and when it is validated in production, move the ADS and the
specific-config-source paths to use the new implementation/model.

Apologies for the large PR, but the number of tests that was needed here
is quite large.

Risk Level: low - only for xDS-TP based config sources and it is guarded
by the
`envoy.reloadable_features.xdstp_based_config_singleton_subscriptions`
runtime guard which is currently disabled.
Testing: Added both unit-tests and integration tests
Docs Changes: N/A (until the entire xDS-TP based config sources support
is done).
Release Notes: N/A (until the entire xDS-TP based config sources support
is done).
Platform Specific Features: N/A

---------

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Misha Badov <mbadov@google.com>
mbadov pushed a commit to mbadov/envoy that referenced this pull request Sep 22, 2025
… CDS SotW (envoyproxy#41117)

Prior to this PR, an Envoy that used (old) ADS over SotW to fetch all
the clusters and a xDS-TP-config-based source to fetch OD-CDS would see
the OD-CDS clusters removed once the ADS update arrives.
This PR, changes the SotW CDS wildcard update, and adds tracking to see
which resources are fetched from that source. The tracking is only used
if both (old) ADS and an xDS-TP based config is configured.
This implementation is currently only for CDS, but will need to be part
of the (future) xDS-Cache layer.

Continuation of envoyproxy#40988.

Risk Level: low - should only impact cases that use xDS-TP based configs
(guarded by a false by default runtime guard).
Testing: Added both unit and integration test.
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

---------

Signed-off-by: Adi Suissa-Peleg <adip@google.com>
Signed-off-by: Misha Badov <mbadov@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants