Skip to content

feat(xds): introduce deltaXds for configuration exchange #13356

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

Merged
merged 164 commits into from
Apr 16, 2025
Merged

Conversation

lukidzi
Copy link
Contributor

@lukidzi lukidzi commented Apr 8, 2025

Motivation

Envoy supports incremental xDS, which sends only changes rather than the entire state.

Implementation information

Needs fix for warming cluster: kumahq/go-control-plane#15

  • Run a Kuma 2-cluster and Kuma- 4 multizone setup with incremental xDS.
  • Extracted common logic in each callback to support both communication types.
  • Each callback now uses a separate map to store connection information, depending on mode, preventing stream conflicts.
  • Added a global and dataplane-only flag to toggle incremental xDS for all DPPs or a single DPP.
  • Added config for Ingress and Egress to support deltaXds
  • Added a new section Envoy to Dataplane/ZoneIngress/ZoneEgress resource to be able to enable delta for single Sidecar
  • Introduced Experimental config that allows enabling deltaXds for all zone

Note

Increased the memory of control-plane since with delta it requires more memory

Supporting documentation

Fix ##13366

lukidzi and others added 14 commits April 7, 2025 16:59
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
@lukidzi lukidzi added ci/run-full-matrix PR: Runs all possible e2e test combination (expensive use carefully) ci/verify-stability ci/verify-stability-merge-master labels Apr 8, 2025
lukidzi added 2 commits April 8, 2025 08:45
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
Copy link
Contributor

github-actions bot commented Apr 8, 2025

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)

@slonka
Copy link
Contributor

slonka commented Apr 15, 2025

Needs fix for warming cluster: kumahq/go-control-plane#15

are we waiting for this?

Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
@lukidzi
Copy link
Contributor Author

lukidzi commented Apr 15, 2025

Needs fix for warming cluster: kumahq/go-control-plane#15

are we waiting for this?

I've just merged it and relased. Ready to review

Copy link
Contributor

@slonka slonka left a comment

Choose a reason for hiding this comment

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

It's quite big PR, I'll have another round tomorrow

slonka
slonka previously approved these changes Apr 16, 2025
Copy link
Contributor

@slonka slonka left a comment

Choose a reason for hiding this comment

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

In general I think it's fine. I'm thinking about migration - is per DPP annotation enough? Would we want something per namespace? 🤔

Signed-off-by: Lukasz Dziedziak <lukidzi@gmail.com>
@lukidzi lukidzi requested a review from slonka April 16, 2025 11:19
@lukidzi lukidzi merged commit 1a9c897 into master Apr 16, 2025
25 checks passed
@lukidzi lukidzi deleted the delta-poc-testing branch April 16, 2025 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci/run-full-matrix PR: Runs all possible e2e test combination (expensive use carefully) ci/verify-stability ci/verify-stability-merge-master
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use deltaXds for configuration exchange for dataplanes
2 participants