-
Notifications
You must be signed in to change notification settings - Fork 3.4k
operator: Fix CES Controller rate limiting #28963
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
Conversation
/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.
Thanks! 💯
/test |
Failed tests:
|
I don't see how the commit would break those tests. They would need to use network policies using CESs in the first place to be able to fail. |
7b19af2
to
9867008
Compare
/test |
Rebased, retested - all the tests passed |
Actually Cilium IPsec upgrade (ci-ipsec-upgrade) failed. I missed it before. But I don't recall it failing before the rebase. |
Travis seems to be stuck, I'm gonna close and reopen the PR to re-trigger it. |
All required tests are green, marking ready-to-merge. |
Please wait with merging. I'm performing final tests of the change. |
Hey Alan, just out of curiosity, can you share more details about what kind of testing you are doing? It could be an inspiration to improve the testing performed in the CI. |
9867008
to
638ad3c
Compare
I have two manual tests for verification right now:
Unfortunately it wasn't. The code was doing rate limiting before item is added to the workqueue. So if CES has 50 CEPs and we have change for all of them we may process CES once (if all 50 CEPs events happened while CES waited in the queue) but we will use 50 rate limit tokens. I fixed the code one more time. Exponential backoff is back in the queue and now rate limit is enforced before processing next item. Sorry for confusion |
Rate limiting work queue has rate limiting only when AddRateLimited method is used. It doesn't accept minimum delay so instead delaying queue with separate rate limitter is used. Signed-off-by: Alan Kutniewski <kutniewski@google.com>
638ad3c
to
9779d63
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.
Thanks for the clarification. Approving the last version of the changes! 🚀
Rate limiting work queue has rate limiting only when AddRateLimited method is used. It doesn't accept minimum delay so instead delaying queue with separate rate limitter is used. Change-Id: If3df7aabd54b82ce8c1738df204f9fec887f2c8e Signed-off-by: Alan Kutniewski <kutniewski@google.com> Upstream-PR: cilium#28963 Bug: b/309596274 Reviewed-on: https://gke-internal-review.googlesource.com/c/third_party/cilium/+/864762 Tested-by: Prow_Bot_V2 <425329972751-compute@developer.gserviceaccount.com> Unit-Verified: Prow_Bot_V2 <425329972751-compute@developer.gserviceaccount.com> Reviewed-by: Prow_Bot_V2 <425329972751-compute@developer.gserviceaccount.com> Reviewed-by: Akhil Velagapudi <avelagap@google.com>
Rate limiting work queue has rate limiting only when AddRateLimited method is used. It doesn't accept minimum delay so instead delaying queue with separate rate limitter is used.