Gateway API

Traffic routing model as an alternative to Ingress.

Starting in release 2.14, the Shturval platform GUI supports management of Gateway API objects. This helps prepare for the transition from Nginx Ingress Controller to Gateway API and simplifies routing configuration for different Service Mesh implementations (Istio, Cilium, etc.).

Gateway API and role model:

ObjectLevelWho configuresPurpose
GatewayClassClusterInfrastructure providerController type and implementation parameters
GatewayClusterCluster operatorEntry point: addresses, listeners, TLS
Routes (HTTPRoute, GRPCRoute)NamespaceApplication Developer/OwnerApplication routing to backend services

Where to configure in GUI:

  • Gateway Classes and Gateways: cluster → Networks section;
  • Routes: cluster → namespace → section Networks → Routes.
  • Through custom resources: cluster → section Administration → Custom resources → API group gateway.networking.k8s.io.

For more information about the benefits of the Gateway API and the Ingress migration strategy, see Ingress NGINX is dead, long live the Gateway API.


Delivery of Gateway API to the cluster

To work with Gateway API resources, Gateway API CRDs must be installed in the cluster. The Shturval platform provides CRD of the Gateway API module (shturval-gateway-api-crds) for this purpose.

Check the installed CRD: cluster → Services and repositories → Installed services → find CRD of the Gateway API module (shturval-gateway-api-crds) → Manage.

Install in the GUI of the deployed cluster: if the service is not listed as installed, open Services and repositories → Available charts → chart shturval-gateway-api-crds → Install. Create and select the namespace gateway-system. More details: CRD of the Gateway API module and How to deploy a new service.

Install when creating a cluster: in the installation wizard at the step “Selecting system services”, enable the Load Balancer group - it includes shturval-gateway-api-crds.

After successful deployment of the CRD Gateway API module in the GUI, the corresponding sections in the GUI will be available.


Gateway API Controller

The CRDs supplied to the cluster do not process traffic - routing requires a controller associated with the GatewayClass.

Before enabling the Gateway API Controller in a cluster, ensure that its version is compatible with the CRD in the cluster. In the Shturval platform, the shturval-gateway-api-crds chart supplies the CRD Gateway API version 1.4.1. The controller must support this version of the specification.

In the Shturval platform, the Cilium-based Gateway API controller is enabled by using ShturvalServicePatch with the gatewayAPI.enabled: true parameter for the Cluster Network Management Module (shturval-networking) - How to enable the Gateway API controller in Cilium. To allocate Gateway addresses, you will also need to create a pool of IP addresses CiliumLoadBalancerIPPool.