Kubernetes Gateway API is the next-generation ingress and traffic routing mechanism designed to improve extensibility, and standardization over the older Ingress API. This KB helps you understand how to convert existing Ingress resources to Gateway API using GatewayClass, using SWIFT.


Suppose in your source cluster having ingress and you wish to convert it to gatewayClass into target, then you can follow below steps in SWIFT.


# With Passthrough sync


1. First login to the SWIFT.



2. Go to the 'All Replication' under Sync administration, then click on 'New' and 'Application Replication' and choose 'Passthrough Replication' 




3. Then you will prompted below screen and select your source cluster and destination cluster along with namespace. And then select the rest of the options as per your environment.




4. Now you will see a new Tab i.e. 'Advanced Options', you need to open that tab.




5. Once selected, you will see some customization options. Navigate to the 'Kubernetes Ingress Config' tab, then click on 'Ingress-GatewayClass Mapping'. Under this section, select the ingress from the source cluster .

--> in our case, we selected 'Ingress' from the source cluster. Then, choose the gatewayClass for the target cluster.

 --> we selected 'nginx' from the target cluster.




6. Once you choose the source and target , then simply click on ''+" button and click on 'Add' button




7. Once you click on 'Add' button ,then it will start the sync. Pls check below snippet.




8. Once sync is completed then it looks like below.


9. Now it will be converted 'ingress' to 'gateway' and 'httproute' and  that gateway will use specified gatewayClass at target. 


#Please see below output of the target cluster, the successfully converted the ingress to gatewayclass with the same ingress name. 


#Nginx application successfully accessible with above 'ADDRESS' (34.55.44.201).

# Also httproute will be created at target cluster.




Note: Please find below the Gateway installation links for each cloud provider. The Gateway must be deployed in the target cluster, as it is a prerequisite for this configuration.


For GKE: https://cloud.google.com/kubernetes-engine/docs/how-to/deploying-gateways

For NGINX: https://docs.nginx.com/nginx-gateway-fabric/install/helm/

For AKS: https://learn.microsoft.com/en-us/azure/application-gateway/for-containers/quickstart-deploy-application-gateway-for-containers-alb-controller?tabs=install-helm-windows

For EKS: https://www.gateway-api-controller.eks.aws.dev/latest/guides/deploy/