higress icon indicating copy to clipboard operation
higress copied to clipboard

HEP: add support for Gateway API

Open Xunzhuo opened this issue 2 years ago • 6 comments

Why do you need it?

Gateway API has more advantages than Ingress, like role oriented design which separates developers and operators, and clearer spec to more common abilities of traffic management definations, more protocols supports (HTTP/HTTPS/TLS/TCP/UDP/GRPC)

How could it be?

  • [ ] Add support for L7 APIs supports
  • [ ] Add support for L4 APIs supports

Other related information

https://gateway-api.sigs.k8s.io

Xunzhuo avatar Mar 08 '23 03:03 Xunzhuo

Do you have a basic technical roadmap, such as whether it is based on the Envoy gateway?

Lynskylate avatar Mar 16 '23 12:03 Lynskylate

Hey @Lynskylate I need more feedbacks / background from @johnlanni , after that I will start to do the design of gwapi support.

In a short term, I think we should add support to gwapi with current infrastructure.

In a long term, I think we can support to gwapi by EG.

FYI, EG starts to work on multiple extending approaches for gateway venders, especially matches the needs of Higress, also for Emissary and Contour.

Xunzhuo avatar Mar 16 '23 13:03 Xunzhuo

Regarding Higress Console, it shall support both Gateway API and Ingress, and save route configurations using Gateway API CRDs if available. It shall also provide a configuration page so user can switch back to Ingress. All existed Gateway API CRs shall be converted to Ingress CRs in order to make a successful switch.

However, since Ingress doesn't support L4 routes, if there are some L4 routes in the system, they won't be (in fact, unable) converted to Ingress. But shall we disable the switching to Ingress function if L4 routes are found?

CH3CHO avatar May 06 '23 11:05 CH3CHO

Why do we need to support convert gwapi to ingress, it does not make sense, and it is a regression.

What we need to do is to only support convert ingress to gwapi, many abilities are missing in ingress but existed in gwapi, so convertions from gwapi to ingress is not working when we use TCP/UDP Route, but also GRPCRoute/TLSRoute

Xunzhuo avatar May 08 '23 02:05 Xunzhuo

Correct me if I misunderstand something @CH3CHO, thanks.

Xunzhuo avatar May 08 '23 02:05 Xunzhuo

Why do we need to support convert gwapi to ingress, it does not make sense.

What we need to do is to only support convert ingress to gwapi, many abilities are missing in ingress but existed in gwapi, so convertions from gwapi to ingress is not working when we use TCP/UDP Route, but also GRPCRoute/TLSRoute

It's just in case that we have some bugs in the implementation of GWAPI, or the user just doesn't want to use GW API although the K8s cluster supports it. Anyway, we can have the ability of converting GWAPI to Ingress, but maybe we don't need to present it on the webpage. @Xunzhuo

CH3CHO avatar May 08 '23 02:05 CH3CHO