From e651e7d903f2de154e0a1e68ea1406eb3bbf960a Mon Sep 17 00:00:00 2001 From: Chenzhao Huang <949412843@qq.com> Date: Wed, 17 Jan 2024 09:11:20 -0500 Subject: [PATCH] feat: improve discardcloudservice filter in yurthub component (#1924) Signed-off-by: Chenzhao Huang <949412843@qq.com> --- pkg/yurthub/filter/constant.go | 5 +++++ .../filter/discardcloudservice/filter.go | 2 +- .../filter/discardcloudservice/filter_test.go | 18 +++++++++--------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg/yurthub/filter/constant.go b/pkg/yurthub/filter/constant.go index b2623e6a71a..084788b3de3 100644 --- a/pkg/yurthub/filter/constant.go +++ b/pkg/yurthub/filter/constant.go @@ -46,6 +46,11 @@ const ( // If end users want to use specified LB service at the edge side, // End users should add annotation["openyurt.io/skip-discard"]="true" for LB service. SkipDiscardServiceAnnotation = "openyurt.io/skip-discard" + + // DiscardServiceAnnotation is annotation used by LB service. + // If end users want to discard specified LB service at the edge side, + // End users should add annotation["svc.openyurt.io/discard"]="true" for LB service. + DiscardServiceAnnotation = "svc.openyurt.io/discard" ) var ( diff --git a/pkg/yurthub/filter/discardcloudservice/filter.go b/pkg/yurthub/filter/discardcloudservice/filter.go index d8cd75d5759..58b4320ac25 100644 --- a/pkg/yurthub/filter/discardcloudservice/filter.go +++ b/pkg/yurthub/filter/discardcloudservice/filter.go @@ -79,7 +79,7 @@ func discardCloudService(svc *v1.Service) *v1.Service { nsName := fmt.Sprintf("%s/%s", svc.Namespace, svc.Name) // remove cloud LoadBalancer service if svc.Spec.Type == v1.ServiceTypeLoadBalancer { - if svc.Annotations[filter.SkipDiscardServiceAnnotation] != "true" { + if svc.Annotations[filter.DiscardServiceAnnotation] == "true" { klog.V(2).Infof("load balancer service(%s) is discarded in StreamResponseFilter of discardCloudServiceFilterHandler", nsName) return nil } diff --git a/pkg/yurthub/filter/discardcloudservice/filter_test.go b/pkg/yurthub/filter/discardcloudservice/filter_test.go index b1d8832fe36..25cc33b6ece 100644 --- a/pkg/yurthub/filter/discardcloudservice/filter_test.go +++ b/pkg/yurthub/filter/discardcloudservice/filter_test.go @@ -67,7 +67,7 @@ func TestFilter(t *testing.T) { Name: "svc1", Namespace: "default", Annotations: map[string]string{ - filter.SkipDiscardServiceAnnotation: "false", + filter.DiscardServiceAnnotation: "true", }, }, Spec: corev1.ServiceSpec{ @@ -150,7 +150,7 @@ func TestFilter(t *testing.T) { Name: "svc1", Namespace: "default", Annotations: map[string]string{ - filter.SkipDiscardServiceAnnotation: "true", + filter.DiscardServiceAnnotation: "false", }, }, Spec: corev1.ServiceSpec{ @@ -177,7 +177,7 @@ func TestFilter(t *testing.T) { Name: "svc1", Namespace: "default", Annotations: map[string]string{ - filter.SkipDiscardServiceAnnotation: "true", + filter.DiscardServiceAnnotation: "false", }, }, Spec: corev1.ServiceSpec{ @@ -205,6 +205,9 @@ func TestFilter(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "svc1", Namespace: "default", + Annotations: map[string]string{ + filter.DiscardServiceAnnotation: "true", + }, }, Spec: corev1.ServiceSpec{ ClusterIP: "10.96.105.187", @@ -230,6 +233,9 @@ func TestFilter(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "svc1", Namespace: "default", + Annotations: map[string]string{ + filter.DiscardServiceAnnotation: "true", + }, }, Spec: corev1.ServiceSpec{ ClusterIP: "10.96.105.187", @@ -256,9 +262,6 @@ func TestFilter(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "svc1", Namespace: "default", - Annotations: map[string]string{ - filter.SkipDiscardServiceAnnotation: "true", - }, }, Spec: corev1.ServiceSpec{ ClusterIP: "10.96.105.187", @@ -269,9 +272,6 @@ func TestFilter(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "svc1", Namespace: "default", - Annotations: map[string]string{ - filter.SkipDiscardServiceAnnotation: "true", - }, }, Spec: corev1.ServiceSpec{ ClusterIP: "10.96.105.187",