Skip to content
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

fix(dsr): change grpc resolver to passthrough #1756

Merged
merged 1 commit into from
Oct 21, 2024

Conversation

aauren
Copy link
Collaborator

@aauren aauren commented Oct 20, 2024

@mrueg

When we used DialContext() before it was deprecated, it manually set the default resolver to passthrough. NewClient() appears to not do this, and then several versions of grpc ago, they defaulted to the DNS resolver which broke our DSR implementation with CRI compatible container engines.

I'm not 100% sure that there isn't a better way to specify this, but I spent 20 - 30 minutes poking around the gRPC code base and I don't think that I can see an easy way to do this outside of specifying it this way.

Furthermore, the project itself seems to advocate for this approach in comments like those on: grpc/grpc-go#1846

Fixes: #1754

When we used DialContext() before it was deprecated, it manually set the
default resolver to passthrough. NewClient() appears to not do this, and
then several versions of grpc ago, they defaulted to the DNS resolver
which broke our DSR implementation with CRI compatible container
engines.

I'm not 100% sure that there isn't a better way to specify this, but I
spent 20 - 30 minutes poking around the gRPC code base and I don't think
that I can see an easy way to do this outside of specifying it this way.

Furthermore, the project itself seems to advocate for this approach in
comments like those on: grpc/grpc-go#1846
@opipenbe
Copy link

Hi! This changed resolved DSR issue. I also mentioned in #1754

But seems like I found either bug or feature with the latest master build? :)

With the latest master branch kube-router is starting with an error:
Failed to start node BGP server: failed to start BGP server due to : invalid router-id

In my test environment I am not using IPV6 and I havent previously used --router-id option. Although everything seems working fine once I added --router-id=generate as per https://www.kube-router.io/docs/user-guide/

@aauren
Copy link
Collaborator Author

aauren commented Oct 21, 2024

Yes, sorry, I should have prepped you for that. If you used the build from this pipeline instead of just applying the patch, then you would have hit the regression that I fixed in another PR: #1755

Since both have been reviewed, I plan on merging both today, and then cutting a new release.

@aauren aauren merged commit 9d7c58b into master Oct 21, 2024
7 checks passed
@aauren aauren deleted the fix_dsr_cri_grpc_resolver branch October 21, 2024 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DSR not working with Rocky / RHEL: Unavailable desc = name resolver error: produced zero addresses
3 participants