kubevela / catalog

Catalog of community maintained components and traits.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Refactor GWAPI traits and its implementations

Xunzhuo opened this issue · comments

I list some subtasks of this epic:

  • Add support Gateway API to v0.6.0 of resources/.
  • Refactor Gateway API implementations:
    • istio-gateway
      • Remove Gateway CR binded in gateway addons.
      • Add GatewayClass CR in each gateway addons, and make the GatewayClassNames as consts like (istio, traefik, eg), which can be refered in the Gateway CR in Gateway API trait. End users can create Gateway Trait and specify the gatewayClassName with its implementations.
    • envoy-gateway
      • Remove Gateway CR binded in gateway addons.
      • Add GatewayClass CR in each gateway addons, and make the GatewayClassNames as consts like (istio, traefik, eg), which can be refered in the Gateway CR in Gateway API trait. End users can create Gateway Trait and specify the gatewayClassName with its implementations.
    • traefik-gateway
      • Remove Gateway CR binded in gateway addons.
      • Add GatewayClass CR in each gateway addons, and make the GatewayClassNames as consts like (istio, traefik, eg), which can be refered in the Gateway CR in Gateway API trait. End users can create Gateway Trait and specify the gatewayClassName with its implementations.
  • Refactor Gateway API Traits:
    • Add support to core resources of latest GWAPI:
      • Gateway Trait: Gateway represents an instance of a service-traffic handling infrastructure by binding Listeners to a set of IP addresses.
      • HTTPRoute Trait: HTTPRoute provides a way to route HTTP/HTTPS requests. This includes the capability to match requests by hostname, path, header, or query param. Filters can be used to specify additional processing steps. Backends specify where matching requests should be routed.
      • TLSRoute Trait: The TLSRoute resource is similar to TCPRoute, but can be configured to match against TLS-specific metadata. This allows more flexibility in matching streams for a given TLS listener.
      • TCPRoute Trait: TCPRoute provides a way to route TCP requests. When combined with a Gateway listener, it can be used to forward connections on the port specified by the listener to a set of backends specified by the TCPRoute.
      • UDPRoute Trait: UDPRoute provides a way to route UDP traffic. When combined with a Gateway listener, it can be used to forward traffic on the port specified by the listener to a set of backends specified by the UDPRoute.
      • GRPCRoute Trait: GRPCRoute provides a way to route gRPC requests. This includes the capability to match requests by hostname, gRPC service, gRPC method, or HTTP/2 header. Filters can be used to specify additional processing steps. Backends specify where matching requests will be routed.
      • ReferenceGrant Trait: ReferenceGrant identifies kinds of resources in other namespaces that are trusted to reference the specified kinds of resources in the same namespace as the policy

Drive KubeVela as an integration project in the Gateway API website. kubernetes-sigs/gateway-api#1131