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

About protocol conversion rules #919

Closed
Patrick0308 opened this issue Oct 28, 2021 · 18 comments
Closed

About protocol conversion rules #919

Patrick0308 opened this issue Oct 28, 2021 · 18 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@Patrick0308
Copy link

Patrick0308 commented Oct 28, 2021

What would you like to be added:
I want to discuss protocol conversion at here. It is very common on many gateways. For example gloo edge has a grpc-to-rest feature. Although now we can add a custom backend which specify grpc service and method. However, we can not customize the conversion rules on a specific HttpRoute such as mapping a rest's path parameter to a protobuf's body field.

Why this is needed:

@Patrick0308 Patrick0308 added the kind/feature Categorizes issue or PR as related to a new feature. label Oct 28, 2021
@tokers
Copy link
Contributor

tokers commented Oct 28, 2021

This may be suitable to create some filters to do this.

@Patrick0308
Copy link
Author

@tokers Do you mean to create some custom filters? I not found a way to pass parameters at HttpRoute level to a custom filter.

@hbagdi
Copy link
Contributor

hbagdi commented Oct 28, 2021

Take a look at filters here: https://gateway-api.sigs.k8s.io/v1alpha2/api-types/httproute/?h=requesth#filters-optional

You can run inline logic to modify requests/responses as they are matched to an HTTPRoute and flow through a Gateway.

@jpeach
Copy link
Contributor

jpeach commented Oct 28, 2021

One idea to explore in this area is different kinds of backend. You might be able to model GRPC conversion as a CRD type that can be targeted as a backend by a HTTPRoute.

@robscott
Copy link
Member

There had been some discussion around potentially adding a GRPCRoute earlier, I think @gnossen had proposed that originally? It would end up being very similar to HTTPRoute, just with different matching. Maybe there's some overlap between this and #920?

@Patrick0308
Copy link
Author

Patrick0308 commented Oct 29, 2021

@robscott I am not making the gateway to route grpc requests. The request's protocol is rest protocol. Gateway route http requests and convert rest protocol to grpc protocol. In my opinion, I support @jpeach 's idea now.

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 27, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Feb 26, 2022
@youngnick
Copy link
Contributor

/remove-lifecycle rotten

Once we decide what we do with #1004, we will have a place to start from to discuss REST-to-gRPC translation.

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Feb 27, 2022
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.

This bot triages issues and PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue or PR as fresh with /remove-lifecycle stale
  • Mark this issue or PR as rotten with /lifecycle rotten
  • Close this issue or PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 29, 2022
@youngnick
Copy link
Contributor

/remove-lifecycle stale
/lifecycle frozen

@k8s-ci-robot k8s-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 31, 2022
@shaneutt
Copy link
Member

Despite this issue being quite old, we the maintainers are still pretty convinced that we want to have this functionality in a future release. We are marking this help wanted as we're looking for contributors with strong use cases to help champion and drive this forward.

@shaneutt shaneutt added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Aug 16, 2022
@keithmattix
Copy link
Contributor

I wonder if protocol conversion is part of the scope of #1333

@youngnick
Copy link
Contributor

I think there's definitely some bits of #1333 and GEP-1282s that affect it, yeah. Let's make a note to come back and check this once we're done with GEP-1282?

@shaneutt
Copy link
Member

shaneutt commented Mar 8, 2023

@youngnick with #1333 merged, it seems we just need to capture the desire here in that GEP in an upcoming iteration to consider this resolve, yes?

@youngnick
Copy link
Contributor

Actually, #1333 and #1282 are actually basically "Declined" as they are now - I'll make a note to update the GEP accordingly. (That's the BackendProperties GEP for those of you playing at home).

I think that we'll need to handle this is some other way, so sadly this one will need to stick around.

@shaneutt
Copy link
Member

I think that we'll need to handle this is some other way, so sadly this one will need to stick around.

What's the impetus for handling this right now? Given the age and the lack of someone to champion and move it forward wouldn't it be better to consider this one closed (keeping in mind that closed does not mean we will never work on it, just that we have absolutely no priority for it at the time)?

@youngnick
Copy link
Contributor

Yeah, okay, that's a good way to put it. Anyone who finds this issue, this close is "noone is able to work on this right now, and we don't see when we'll get to it", so if you would like this, please comment and we'll reopen.

@youngnick youngnick closed this as not planned Won't fix, can't repro, duplicate, stale Mar 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
No open projects
Development

No branches or pull requests

10 participants