Question on port-forwarding for Gateway API (across implementations)

Cluster information:

I’m using k3s.

Kubernetes version: v1.30.3+k3s1
Cloud being used: bare-metal
Installation method: curl -sfL https://get.k3s.io | sh -s - --disable=traefik && helm install traefik/traefik
Host OS: Debian 12
CNI and version: traefik-30.0.2
CRI and version:

$ crictl --version
crictl version v1.29.0-k3s1

Here’s the,

  1. HAProxy Documentation for Gateway API, specifically the section where they ask you to edit the controller’s service definition: Enable the Gateway API | HAProxy Kubernetes Ingress Controller
  2. Here’s the link for Envoy: Quickstart | Envoy Gateway
  3. I believe entry-points for traefik are the same thing: Traefik EntryPoints Documentation - Traefik ?

I’m not sure what is happening here - could anyone explain what these tutorials are doing in common? Envoy asks me to forward ports, while HAProxy asks me to create a listener in the service configuration of the controller (and I haven’t quite figured out what Traefik is trying to say to me).

Could someone also explain what the flow of traffic look like? Is it:

External traffic -> ports forwarded/controller service configuration listeners -> Gateway API listener -> HTTPRoute/TCPRoute -> Service -> Deployment?

I have been trying out various Gateway API implementations for several days now and haven’t managed to get any of them running. I assume my frustration is in part due to me not knowing enough about the networking path of Gateway API. I would really appreciate any help!

Thanks

NVM about Envoy, I realized that I needed an external Load Balancer for it to work. I still have no idea what HAProxy and Traefik are trying to make me do.

Thanks