-
Notifications
You must be signed in to change notification settings - Fork 361
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
EndpointSlice to IR Route Destinations #1494
Conversation
this issue is blocked on #1105 which is blocked on #1492, because we would like to provide a way to fallback to ClusterIP Loadbalancing support for users who are running on systems with EndpointSlice disabled or prefer L3 Loadbalancing via ClusterIP / kube-proxy before enabling EndpointSlice by default |
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. Please feel free to give a status update now, ping for review, when it's ready. Thank you for your contributions! |
This pull request has been automatically marked as stale because it has not had activity in the last 30 days. Please feel free to give a status update now, ping for review, when it's ready. Thank you for your contributions! |
Codecov Report
@@ Coverage Diff @@
## main #1494 +/- ##
==========================================
+ Coverage 65.44% 65.47% +0.02%
==========================================
Files 88 88
Lines 13031 13097 +66
==========================================
+ Hits 8528 8575 +47
- Misses 3979 3993 +14
- Partials 524 529 +5
|
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers#weighted-least-request Relates to envoyproxy#1105 Relevant now that we are introducing multiple endpoints with envoyproxy#1494 Signed-off-by: Arko Dasgupta <[email protected]>
GatewayControllerName: egv1alpha1.GatewayControllerName, | ||
GatewayClassName: v1beta1.ObjectName(resources.GatewayClass.Name), | ||
GlobalRateLimitEnabled: true, | ||
EndpointRoutingDisabled: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand that we want the routing behavior to be backward compatible, but I think using endpoints as default to route traffic allows EG to bypass kube-proxy's overhead and fully leverage Envoy's advanced capabilities: more LB algorithms, session sticky, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have disabled this in egctl x translate
, because if we enable it, it will be mandatory, and all translations will fail if EndpointSlice
is not provided by the user, this config is usually generated by k8s and is not part of user config, I was planning on raising a separate GH issue on dealing with this convenience / correctness dilemma
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/load_balancers#weighted-least-request Relates to #1105 Relevant now that we are introducing multiple endpoints with #1494 Signed-off-by: Arko Dasgupta <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Just need to fix the lint and test.
Relates to envoyproxy#1256 Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
add another level of indirection in RouteDestination called DestinationSetting Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
Signed-off-by: Arko Dasgupta <[email protected]>
ds := &ir.DestinationSetting{ | ||
Weight: ptr.To(uint32(1)), | ||
Endpoints: []*ir.DestinationEndpoint{ir.NewDestEndpoint(host, uint32(port))}, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this can be simplified to a function
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can this refactor be done in a follow up ?
this PR is changing 255 files most of which are YAML, and will affect other PRs
Signed-off-by: Arko Dasgupta <[email protected]>
Relates to #1256