feat(loadbalancer): Add LoadBalancerType Client Side Weighted Round Robin#7407
feat(loadbalancer): Add LoadBalancerType Client Side Weighted Round Robin#7407jukie merged 39 commits intoenvoyproxy:mainfrom
Conversation
9a814bd to
573a483
Compare
|
@jukie I have added the implementation and also tested it on my local setup PS: the repo is so easy to contribute everything just works with the docs given on the site :) |
|
Also I wanted to know should I include slow start in client wrr? So the thing is that I have submitted the proposal in grpc-xds grpc/proposal#498 and also in envoy I have got the proto updated. It is not implemented yet, but I am trying to pick it up this month if my time allows |
|
Also I am unsure of how to test this e2e, so I have just included an AI generated e2e test suite. The challenge here is that we need multiple replicas with each server respond with a specific header containing rps and cpu_utilisation and then the traffic is distributed by calculating the weight (rps / cpu) I don't know what the current e2e tests allow and if this type of test case is feasible to write |
5f3d64b to
ff2a353
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #7407 +/- ##
==========================================
- Coverage 74.34% 74.32% -0.03%
==========================================
Files 242 242
Lines 37707 37793 +86
==========================================
+ Hits 28035 28089 +54
- Misses 7730 7754 +24
- Partials 1942 1950 +8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
I have started the implementation of slow_start_config and locality lb config with WRR as well, if possible I would also want to include them in the gatway implementation. |
|
We wait to add features here until they've made it into a full envoy release. The flow would be getting this lb support added for 1.7 and if your envoy changes get merged we can add that support to gateway in 1.8. Let's keep the scope of this PR to what's currently available and we can always include additional features in a follow-up. Are you able to make the suggested changes or can you join the contributors call next week to discuss? |
|
Sure, I just paused because the other changes were also approved, but I understand I will make the respective changes as suggested. Will try to complete them by today / tomorrow @jukie |
f926f90 to
c7ecca3
Compare
|
@jukie I have made the respective changes |
…Gateway CRDs, ensuring configurable parameters and validation rules are integrated. Includes e2e test for validation. Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
…eway CRDs and related configurations. Update associated test data and documentation. Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
…entSideWeightedRoundRobin configuration, update affected tests and CRDs. Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
…cross Gateway CRDs, configuration files, and related tests. Adjust documentation to reflect percentage-based representation. Signed-off-by: anurag.ag <anuragagarwal561994@users.noreply.github.com>
a0471e0 to
dd5d285
Compare
|
Overall looks good, just a few more comments @anuragagarwal561994! Thanks for adding this and make sure to run Sorry for the delayed review on this. I'll prioritize helping you with this next week. |
|
@jukie I will be able to pick up these changes only by next week as I am travelling and been catching up with my work lately. |
|
@altaiezior do you still plan on updating this? |
|
@jukie I want to but the conflicts are a bit much and I am currently caught up with my work, so I will need more time to look into this. |
|
@jukie I have re-merged master now with this branch, most of the merge-conflicts I have resolved with the help of AI and reviewed it once on my own. |
|
@jukie do I need to make some changes here? |
|
@altaiezior just a few nits left. I'd really like to see this make it into 1.8 and will make it a priority to review if you're able to add the changes. |
…balancer_types.go` for consistency. Signed-off-by: altaiezior <6075379+altaiezior@users.noreply.github.com>
…zation load balancers. Adjust tests to reflect the new validation rule. Signed-off-by: altaiezior <6075379+altaiezior@users.noreply.github.com>
…lization` fields (`BlackoutPeriod`, `WeightExpirationPeriod`, `WeightUpdatePeriod`). Signed-off-by: altaiezior <6075379+altaiezior@users.noreply.github.com>
…ion` handling within cluster translator. Signed-off-by: altaiezior <6075379+altaiezior@users.noreply.github.com>
…ackendTrafficPolicy. Signed-off-by: altaiezior <6075379+altaiezior@users.noreply.github.com>
Signed-off-by: Isaac Wilson <isaac.wilson514@gmail.com>
|
Yey :) |
What type of PR is this?
What this PR does / why we need it:
This PR provides addition of new load balancer type client side weighted round robin. This is a new load balancing extension introduced since envoy 1.32
https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.proto
Which issue(s) this PR fixes:
Fixes #7305
Release Notes: Yes