From d10a4e3aef71702b37e7d0a62f5f7df17e7dabd4 Mon Sep 17 00:00:00 2001 From: naison <895703375@qq.com> Date: Sat, 22 Feb 2025 12:00:56 +0000 Subject: [PATCH] use match not equal to find svc by pod label in fargate mode --- pkg/inject/fargate.go | 4 ++-- pkg/inject/label_test.go | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 pkg/inject/label_test.go diff --git a/pkg/inject/fargate.go b/pkg/inject/fargate.go index a76c39db..1183a158 100644 --- a/pkg/inject/fargate.go +++ b/pkg/inject/fargate.go @@ -4,7 +4,6 @@ import ( "context" "fmt" "net/netip" - "reflect" "strings" "time" @@ -12,6 +11,7 @@ import ( v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" k8sjson "k8s.io/apimachinery/pkg/util/json" @@ -108,7 +108,7 @@ func ModifyServiceTargetPort(ctx context.Context, clientset *kubernetes.Clientse var svc *v1.Service for _, item := range list.Items { - if reflect.DeepEqual(item.Spec.Selector, podLabels) { + if labels.SelectorFromSet(item.Spec.Selector).Matches(labels.Set(podLabels)) { svc = &item break } diff --git a/pkg/inject/label_test.go b/pkg/inject/label_test.go new file mode 100644 index 00000000..cd79b36a --- /dev/null +++ b/pkg/inject/label_test.go @@ -0,0 +1,20 @@ +package inject + +import ( + "testing" + + "k8s.io/apimachinery/pkg/labels" +) + +func TestLabelMatch(t *testing.T) { + selector := map[string]string{ + "app": "universer", + "app.kubernetes.io/name": "universer", + } + podLabels := map[string]string{ + "app": "universer", + "app.kubernetes.io/name": "universer", + "version": "ai-chat-flow", + } + t.Log(labels.SelectorFromSet(selector).Matches(labels.Set(podLabels))) +}