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
egressgw: retry getIdentityLabels on failure #26457
Conversation
I got pinged for TH review on |
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.
CODEOWNERS change lgtm
69ebbc3
to
a0dd816
Compare
Thanks for the pointers @giorio94 , I switched this PR to a workqueue. The approach I'm taking is the follow: there's an This ensures we can deal nicely with CiliumEndpoints that get updated/deleted while in the workqueue: whenever we receive a new event, any existing one for the same ID gets removed from the queue (as otherwise we could end up retrying processing old revisions of a given CiliumEndpoint). tested with a random fake error:
|
a0dd816
to
f7f6218
Compare
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.
The workqueue implementation looks good to me.
I wonder whether it could make sense to leverage it also during insertion for increased uniformity. WDYT?
f7f6218
to
777cb59
Compare
777cb59
to
e550bda
Compare
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.
Looks great to me!
68793a4
to
654c0c0
Compare
when the manager fails to resolve the identity of an endpoint to a set of labels, instead of discarding the endpoint update, enqueue the event and retry identity labels resolution following the same exponential backoff logic used by the identity allocator Signed-off-by: Gilberto Bertin <jibi@cilium.io>
inside getEndpointMetadata as that's where the rest of the checks for the received CiliumEndpoint event live Signed-off-by: Gilberto Bertin <jibi@cilium.io>
654c0c0
to
9fa34ab
Compare
/test |
when the manager fails to resolve the identity of an endpoint to a set of labels, instead of discarding the endpoint update, enqueue the event and retry identity labels resolution following the same exponential backoff logic used by the identity allocator
testing
I tested this locally by forcing the identity resolution to randomly fail:
Fixes: #26158 (hopefully 🤞)