Skip to content

feat(xds): rework DeltaXds to use metadata instead of proto #13467

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

lukidzi
Copy link
Contributor

@lukidzi lukidzi commented Apr 25, 2025

Motivation

We shouldn't change the proto schema but instead use metadata.

Implementation information

  • Remove proto file and field from Dataplane/ZoneIngress/ZoneEgress. It should be safe since clients (mink) were not able to set this property and only global knew about it
  • Introduce a new variable for kuma-dp KUMA_DATAPLANE_RUNTIME_ENVOY_XDS_TRANSPORT_PROTOCOL_VARIANT which allow setting specific variant of the xds protocol
  • Keep kuma.io/xds-transport-protocol-variant in the k8s to simplify delta testing for the user

Supporting documentation

Fix #13461

lukidzi added 3 commits April 25, 2025 08:57
Signed-off-by: Lukasz Dziedziak <[email protected]>
Signed-off-by: Lukasz Dziedziak <[email protected]>
@lukidzi lukidzi requested a review from a team as a code owner April 25, 2025 15:55
Copy link
Contributor

Reviewer Checklist

🔍 Each of these sections need to be checked by the reviewer of the PR 🔍:
If something doesn't apply please check the box and add a justification if the reason is non obvious.

  • Is the PR title satisfactory? Is this part of a larger feature and should be grouped using > Changelog?
  • PR description is clear and complete. It Links to relevant issue as well as docs and UI issues
  • This will not break child repos: it doesn't hardcode values (.e.g "kumahq" as an image registry)
  • IPv6 is taken into account (.e.g: no string concatenation of host port)
  • Tests (Unit test, E2E tests, manual test on universal and k8s)
    • Don't forget ci/ labels to run additional/fewer tests
  • Does this contain a change that needs to be notified to users? In this case, UPGRADE.md should be updated.
  • Does it need to be backported according to the backporting policy? (this GH action will add "backport" label based on these file globs, if you want to prevent it from adding the "backport" label use no-backport-autolabel label)

@lukidzi lukidzi changed the title feat(xds): rework DeltaXds to use metadata instead of proto feat(xds): rework DeltaXds to use metadata instead of proto Apr 25, 2025
Signed-off-by: Lukasz Dziedziak <[email protected]>
Copy link
Contributor

@Icarus9913 Icarus9913 left a comment

Choose a reason for hiding this comment

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

@lukidzi Please double check pkg/plugins/runtime/k8s/controllers/pod_converter.go PodConverter struct DeltaXds property, it seems not used anymore

Signed-off-by: Lukasz Dziedziak <[email protected]>
@lukidzi lukidzi requested a review from Icarus9913 April 28, 2025 11:17
if d.EnvoyXdsTransportProtocolVariant != "" {
switch d.EnvoyXdsTransportProtocolVariant {
case "DELTA_GRPC":
case "GRPC":
Copy link
Contributor

Choose a reason for hiding this comment

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

should we call this one SOTW_GRPC?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Envoy configuration reference to SOTW as GRPC so I wanted to keep them the same

Resources types.ProxyResources
SystemCaPath string
TransparentProxy *tproxy_config.DataplaneConfig
UseDeltaXds bool
Copy link
Contributor

Choose a reason for hiding this comment

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

why do we need UseDeltaXds if you can always call params.Features.HasFeature(xds_types.FeatureDeltaGRPC)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We need since you can always enable it on the control-plane level and later you need to set it

Signed-off-by: Lukasz Dziedziak <[email protected]>
@lukidzi lukidzi requested a review from lobkovilya April 28, 2025 18:38
Icarus9913
Icarus9913 previously approved these changes Apr 29, 2025
Copy link
Contributor

@Icarus9913 Icarus9913 left a comment

Choose a reason for hiding this comment

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

LGTM

Signed-off-by: Lukasz Dziedziak <[email protected]>
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.

Remove xds protocol from Dataplane object and use metadata
3 participants