From a0b444620904579495441cff6b22a343985dfa0b Mon Sep 17 00:00:00 2001 From: backguynn Date: Wed, 24 Jul 2024 17:30:48 +0900 Subject: [PATCH 1/2] change ingress class & selector label --- pkg/agent/manager/gatewayapi/gateway.go | 6 +----- pkg/agent/manager/gatewayapi/httproute.go | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/pkg/agent/manager/gatewayapi/gateway.go b/pkg/agent/manager/gatewayapi/gateway.go index caa1c9a..d0f1e27 100644 --- a/pkg/agent/manager/gatewayapi/gateway.go +++ b/pkg/agent/manager/gatewayapi/gateway.go @@ -353,11 +353,7 @@ func (gm *GatewayManager) createIngressLbService(ctx context.Context, gateway *v if newService.Spec.Selector == nil { newService.Spec.Selector = map[string]string{} } - newService.Spec.Selector["app.kubernetes.io/component"] = "controller" - //newService.Spec.Selector["app.kubernetes.io/instance"] = "loxilb-ingress" - //newService.Spec.Selector["app.kubernetes.io/name"] = "loxilb-ingress" - newService.Spec.Selector["app.kubernetes.io/instance"] = "ingress-nginx" - newService.Spec.Selector["app.kubernetes.io/name"] = "ingress-nginx" + newService.Spec.Selector["app"] = "loxilb-ingress-app" svc, err = gm.kubeClient.CoreV1().Services(newService.Namespace).Create(ctx, &newService, metav1.CreateOptions{}) if err != nil { diff --git a/pkg/agent/manager/gatewayapi/httproute.go b/pkg/agent/manager/gatewayapi/httproute.go index fc995c4..44e98bf 100644 --- a/pkg/agent/manager/gatewayapi/httproute.go +++ b/pkg/agent/manager/gatewayapi/httproute.go @@ -296,7 +296,7 @@ func (h *HTTPRouteManager) createIngress(ctx context.Context, httpRoute *v1.HTTP newIngress.SetLabels(map[string]string{ "implementation": implementation, }) - ingressClass := "nginx" + ingressClass := "loxilb.io/loxilb" newIngress.Spec.IngressClassName = &ingressClass // If the listener has a hostname, it takes precedence over httpRoute. From 1cc43f76e4f0881e8bbd8fdee78e0dc72c308015 Mon Sep 17 00:00:00 2001 From: backguynn Date: Wed, 7 Aug 2024 15:37:25 +0900 Subject: [PATCH 2/2] change ingressClassName & support another backend namespace --- pkg/agent/manager/gatewayapi/httproute.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/agent/manager/gatewayapi/httproute.go b/pkg/agent/manager/gatewayapi/httproute.go index 44e98bf..efd3a26 100644 --- a/pkg/agent/manager/gatewayapi/httproute.go +++ b/pkg/agent/manager/gatewayapi/httproute.go @@ -296,7 +296,7 @@ func (h *HTTPRouteManager) createIngress(ctx context.Context, httpRoute *v1.HTTP newIngress.SetLabels(map[string]string{ "implementation": implementation, }) - ingressClass := "loxilb.io/loxilb" + ingressClass := "loxilb" newIngress.Spec.IngressClassName = &ingressClass // If the listener has a hostname, it takes precedence over httpRoute. @@ -327,6 +327,13 @@ func (h *HTTPRouteManager) createIngress(ctx context.Context, httpRoute *v1.HTTP for _, match := range rule.Matches { for _, backref := range rule.BackendRefs { + if backref.Namespace != nil { + if newIngress.Namespace != string(*backref.Namespace) { + newIngress.Annotations["external-backend-service"] = "true" + newIngress.Annotations["service-"+string(backref.Name)+"-namespace"] = string(*backref.Namespace) + } + } + newIngressPath := netv1.HTTPIngressPath{ Backend: netv1.IngressBackend{ Service: &netv1.IngressServiceBackend{