From fd0c46ee54cb72b6988c8926679310413b69f796 Mon Sep 17 00:00:00 2001 From: zdarovich Date: Fri, 15 Dec 2023 12:29:17 +0700 Subject: [PATCH 1/4] change node selection to soft affinity --- imagescan/scanner.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/imagescan/scanner.go b/imagescan/scanner.go index 2fcad09b..f3665e9d 100644 --- a/imagescan/scanner.go +++ b/imagescan/scanner.go @@ -10,8 +10,6 @@ import ( "strings" "time" - imgcollectorconfig "github.com/castai/kvisor/cmd/kvisor/imgcollector/config" - "github.com/castai/kvisor/kube" "github.com/samber/lo" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" @@ -23,7 +21,9 @@ import ( "k8s.io/client-go/kubernetes" batchv1typed "k8s.io/client-go/kubernetes/typed/batch/v1" + imgcollectorconfig "github.com/castai/kvisor/cmd/kvisor/imgcollector/config" "github.com/castai/kvisor/config" + "github.com/castai/kvisor/kube" "github.com/castai/kvisor/log" ) @@ -413,9 +413,6 @@ func scanJobSpec( Annotations: annotations, }, Spec: corev1.PodSpec{ - NodeSelector: map[string]string{ - "kubernetes.io/hostname": nodeName, - }, RestartPolicy: corev1.RestartPolicyNever, Priority: lo.ToPtr(int32(0)), Affinity: &corev1.Affinity{ @@ -433,6 +430,19 @@ func scanJobSpec( }, }, }, + PreferredDuringSchedulingIgnoredDuringExecution: []corev1.PreferredSchedulingTerm{ + { + Preference: corev1.NodeSelectorTerm{ + MatchExpressions: []corev1.NodeSelectorRequirement{ + { + Key: "kubernetes.io/hostname", + Operator: corev1.NodeSelectorOpIn, + Values: []string{nodeName}, + }, + }, + }, + }, + }, }, }, Tolerations: tolerations, From 630f7d17b910396421415b3e883544dbb86759d4 Mon Sep 17 00:00:00 2001 From: zdarovich Date: Mon, 18 Dec 2023 10:49:08 +0200 Subject: [PATCH 2/4] fix test --- imagescan/scanner_test.go | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/imagescan/scanner_test.go b/imagescan/scanner_test.go index 5abe0a14..721a1530 100644 --- a/imagescan/scanner_test.go +++ b/imagescan/scanner_test.go @@ -5,7 +5,6 @@ import ( "testing" "time" - "github.com/castai/kvisor/kube" "github.com/samber/lo" "github.com/sirupsen/logrus" "github.com/stretchr/testify/require" @@ -17,6 +16,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "github.com/castai/kvisor/config" + "github.com/castai/kvisor/kube" ) func TestScanner(t *testing.T) { @@ -95,9 +95,6 @@ func TestScanner(t *testing.T) { }, }, Spec: corev1.PodSpec{ - NodeSelector: map[string]string{ - "kubernetes.io/hostname": "n1", - }, RestartPolicy: "Never", Priority: lo.ToPtr(int32(0)), Affinity: &corev1.Affinity{ @@ -115,6 +112,19 @@ func TestScanner(t *testing.T) { }, }, }, + PreferredDuringSchedulingIgnoredDuringExecution: []corev1.PreferredSchedulingTerm{ + { + Preference: corev1.NodeSelectorTerm{ + MatchExpressions: []corev1.NodeSelectorRequirement{ + { + Key: "kubernetes.io/hostname", + Operator: corev1.NodeSelectorOpIn, + Values: []string{"n1"}, + }, + }, + }, + }, + }, }, }, Tolerations: []corev1.Toleration{ From 5567764edb50144af67c6d8654729efa81d3459e Mon Sep 17 00:00:00 2001 From: zdarovich Date: Mon, 18 Dec 2023 16:48:03 +0200 Subject: [PATCH 3/4] add weight 1 --- imagescan/scanner.go | 1 + 1 file changed, 1 insertion(+) diff --git a/imagescan/scanner.go b/imagescan/scanner.go index f3665e9d..218e376b 100644 --- a/imagescan/scanner.go +++ b/imagescan/scanner.go @@ -432,6 +432,7 @@ func scanJobSpec( }, PreferredDuringSchedulingIgnoredDuringExecution: []corev1.PreferredSchedulingTerm{ { + Weight: 1, Preference: corev1.NodeSelectorTerm{ MatchExpressions: []corev1.NodeSelectorRequirement{ { From 33e455005bfbd959162a1b69016e1fc489a1d409 Mon Sep 17 00:00:00 2001 From: zdarovich Date: Mon, 18 Dec 2023 16:52:03 +0200 Subject: [PATCH 4/4] add weight 1 --- imagescan/scanner_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/imagescan/scanner_test.go b/imagescan/scanner_test.go index 721a1530..986550f0 100644 --- a/imagescan/scanner_test.go +++ b/imagescan/scanner_test.go @@ -114,6 +114,7 @@ func TestScanner(t *testing.T) { }, PreferredDuringSchedulingIgnoredDuringExecution: []corev1.PreferredSchedulingTerm{ { + Weight: 1, Preference: corev1.NodeSelectorTerm{ MatchExpressions: []corev1.NodeSelectorRequirement{ {