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
Egress Gateway: make CiliumEndpoint reconciliation asynchronous from k8s watcher #26741
Conversation
03f69b3
to
1f3beaa
Compare
e82b589
to
1c4eeca
Compare
/test |
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.
Helm changes LGTM.
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.
Thank you! One CI-related comment below, would be good to understand if we have issues lurking there.
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.
One spelling nit, but looks good otherwise from my side
1b55722
to
cd2e032
Compare
Doc workflow failure is my fault, should be fixed with #26780. |
instead of running the reconciliation logic for each event received by the egress gateway manager, switch to a trigger based approach where each event simply triggers a reconciliation, and the actual reconciliation is be performed at most once every --egress-gateway-reconciliation-trigger-interval time interval. This should help reducing the CPU load in case the manager is dealing with lots of events (for example high churn of endpoints) Signed-off-by: Gilberto Bertin <jibi@cilium.io>
by: * making locking more granular by introducing a new pendingEndpointEventsLock lock that protects accesses to the pendingEndpointEvents field * using the endpoint workqueue to handle also CiliumEndpoint deletion events we can completely decouple the On{Update,Delete}Endpoint methods from the reconciliation logic, as the caller will not have to block anymore on the main manager lock (which is held during the entire reconciliation process) Signed-off-by: Gilberto Bertin <jibi@cilium.io>
cd2e032
to
332cb45
Compare
/test |
see individual commits
Fixes: #23976