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

Is there any plan for Python gRPC nameresolver interface? #11685

Open
justdoit0823 opened this issue Jul 5, 2017 · 21 comments
Open

Is there any plan for Python gRPC nameresolver interface? #11685

justdoit0823 opened this issue Jul 5, 2017 · 21 comments
Assignees
Labels
area/api disposition/help wanted Maintainers do not have enough resources to allocate to this at the moment. Help is appreciated! disposition/never stale kind/enhancement lang/Python priority/P3
Milestone

Comments

@justdoit0823
Copy link

Hi, i have used the python gRPC to build services, but there isn't an elegant desgin for service load balance. After reading grpc-load-balancing and grpc-nameresolver,
i got the architecture about this, but now only dns nameresolver is available. Meanwhile in Python's implemention, there isn't any interfaces about this.

@nathanielmanistaatgoogle
Copy link
Member

This is part of our long-term project plans but it's not on any near-term road map.

@bunnyc1986
Copy link

Is there a walk around solution for python to do load balancing based on name resolving currently?

@jhaals
Copy link

jhaals commented Aug 23, 2018

@nathanielmanistaatgoogle any updates on when this will be picked up?
We are currently using custom resolvers in Java and Golang and would like to offer the same thing for our Python users.

@nathanielmanistaatgoogle
Copy link
Member

@jhaals: @srini100 is more likely than I to have up-to-date information.

@srini100
Copy link
Contributor

@jhaals, there is no immediate plan to add name resolver plugin in gRPC Python. There are some discussions going on around making the Core API public but that's in very early stage. Will update when there is more clarity on this.

@srini100
Copy link
Contributor

@jhaals, what's your time frame to require this feature?

@jhaals
Copy link

jhaals commented Aug 28, 2018

I can't speak in time frames but we have multiple Python only teams that expressed an interest in adopting gRPC. Service to service name resolution is entirely DNS(SRV) based for discovering ports and endpoints.

@euroelessar
Copy link
Contributor

@srini100 Hi, what are the required steps for adding this API?
Does it require separate proposal steps or can I send pull request to grpc-core ~now and we will iterate in it?

@markdroth
Copy link
Member

As @srini100 mentioned above, we do have work going on now to make our current internal resolver API public, but that is part of a larger project and will probably take at least a couple of quarters. However, I think we could provide a Python resolver API without having to wait for those changes. We could do this in two steps:

  1. Define a C-core surface API for resolver plugins. This is different from our current internal API (which is actually C++); it would be implemented as a shim that plugs into our existing C++ API but delegates its functionality to a resolver written against the new C-core surface API.

  2. Define a Python resolver API. This would be implemented as part of the gRPC Python layer that sits on top of C-core; it would basically convert between the C-core API described in the previous step and the Python API.

These would probably best be done as two different projects. I don't think we have any cycles to actually do either of them right now, but if someone wants to contribute, we can provide guidance and reviews from our end. I can be the contact point for the first part. @srini100 can find someone to help with the second part.

Please let me know if you have any questions about any of this.

@euroelessar
Copy link
Contributor

@markdroth Thanks for the elaborate answer. I've linked the pull request for grpc-core part and would welcome any feedback.

@stale
Copy link

stale bot commented Oct 23, 2019

This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 180 days. It will be closed automatically if no further update occurs in 1 day. Thank you for your contributions!

@lidizheng
Copy link
Contributor

This feature is still on-demand.

@stale
Copy link

stale bot commented Apr 22, 2020

This issue/PR has been automatically marked as stale because it has not had any update (including commits, comments, labels, milestones, etc) for 180 days. It will be closed automatically if no further update occurs in 1 day. Thank you for your contributions!

@stale stale bot closed this as completed Apr 29, 2020
@SilverBut
Copy link

Again, this feature is still on-demand.

@lidizheng lidizheng reopened this May 8, 2020
@stale stale bot removed the disposition/stale label May 8, 2020
lidizheng pushed a commit to lidizheng/grpc that referenced this issue Feb 12, 2021
…g. (grpc#11685)

This adds the option allow_insecure_cluster_options to the dynamic forward proxy's cluster configuration.
Enabling this flag allows disabling auto_sni and auto_san_validation in the cluster's UpstreamHttpProtocolOptions, which was previously disallowed.

This allows use where e.g. automatic adding of an exact SAN matcher for the original authority is undesirable, while preserving the existing "safe
by default" behaviour for most use cases.

Signed-off-by: Jonathan Oddy <[email protected]>

Mirrored from https://github.com/envoyproxy/envoy @ 3e2686c2bda4cc196db8d083d0dcdf6738c578ac
@LuBingtan
Copy link

Any updates?

@fangxlmr
Copy link

fangxlmr commented Mar 7, 2022

Want NameResolver in Python as well. This feature is still on-demand.

@lidizheng lidizheng assigned gnossen and unassigned lidizheng May 26, 2022
@keerthan-s-maersk
Copy link

NameResolver in python feature is still on-demand.

@XuanWang-Amos XuanWang-Amos added the disposition/help wanted Maintainers do not have enough resources to allocate to this at the moment. Help is appreciated! label Feb 1, 2023
@XuanWang-Amos
Copy link
Contributor

Thanks for bring this up, we understand that this is still needed by our users, but there are some internal changes (in grpc core) needs to be made before the change can start at all (It's called EventEngine). Once the eventEngine changes merged, we'll still need extra hands to make this happen, if someone is willing to help, they'll need write a gRFC first and then implement it. We're more than happy to provide more information with video call :)

@sulmone
Copy link

sulmone commented Mar 3, 2023

This is part of our long-term project plans but it's not on any near-term road map.

How long term are we talking?

@gnossen
Copy link
Contributor

gnossen commented Mar 3, 2023

How long term are we talking?

Given that the comment you quoted is from 2018, pretty long term.

On a more serious note, this is one of the more important long-standing gaps in the Python API as I see it. The issue is just technical complexity. This will require making many currently private Core APIs public. The Core maintainers have been hesitant to do that for the past several years because we're in the middle of a major overhaul of how Core works (Event Engine). Luckily, that effort is starting to wrap up, so the time might be right to jump on this soon.

@rlubke
Copy link

rlubke commented Dec 20, 2024

Just thought I would check on the status of this since it's been over a year since the last update. This is a pretty desirable feature for us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api disposition/help wanted Maintainers do not have enough resources to allocate to this at the moment. Help is appreciated! disposition/never stale kind/enhancement lang/Python priority/P3
Projects
None yet
Development

No branches or pull requests