From c943766f8f96958e81c2754e7984993117728652 Mon Sep 17 00:00:00 2001 From: Raphael Campos Date: Mon, 17 Jun 2024 18:30:40 -0500 Subject: [PATCH] chore: Possible fix for size/RSS issue Using scheme package increases the binary size because it includes additional code and dependencies related to Kubernetes. It also increases the RSS memory. Because we don't need the entire scheme package, only apimachinery/runtime package was used to create a new scheme. commit: 3b5175d (main), cherry-pick --- go.mod | 1 - go.sum | 2 -- pkg/k8s/policy.go | 7 ++++--- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index f1b46a3556a9..3c6dbef044d9 100644 --- a/go.mod +++ b/go.mod @@ -39,7 +39,6 @@ require ( k8s.io/apimachinery v0.28.3 k8s.io/client-go v0.28.3 k8s.io/cri-api v0.29.0 - k8s.io/kubectl v0.27.7 kernel.org/pub/linux/libs/security/libcap/cap v1.2.68 sigs.k8s.io/controller-runtime v0.16.3 ) diff --git a/go.sum b/go.sum index 8edecfada0ac..45ff3d9f784c 100644 --- a/go.sum +++ b/go.sum @@ -578,8 +578,6 @@ k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= -k8s.io/kubectl v0.27.7 h1:HTEDa4s/oWjB3t5ysdW1yKlcNl9bzigcqWBq0LIIe3k= -k8s.io/kubectl v0.27.7/go.mod h1:Xb1Ubc8uN1i2RvSN1HCgSHTtzgX0woihMk/gW7XbjJU= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= kernel.org/pub/linux/libs/security/libcap/cap v1.2.68 h1:137hV1K92dqIjdd46hSJbiKodzfo3pju8uiG6zj1qHY= diff --git a/pkg/k8s/policy.go b/pkg/k8s/policy.go index 4bb9d9811454..3927d85b1695 100644 --- a/pkg/k8s/policy.go +++ b/pkg/k8s/policy.go @@ -3,9 +3,9 @@ package k8s import ( "context" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/rest" - "k8s.io/kubectl/pkg/scheme" "github.com/aquasecurity/tracee/pkg/k8s/apis/tracee.aquasec.com/v1beta1" ) @@ -20,7 +20,8 @@ func New() (*Client, error) { return nil, err } - err = v1beta1.AddToScheme(scheme.Scheme) + scheme := runtime.NewScheme() + err = v1beta1.AddToScheme(scheme) if err != nil { return nil, err } @@ -28,7 +29,7 @@ func New() (*Client, error) { crdConfig := *config crdConfig.ContentConfig.GroupVersion = &v1beta1.GroupVersion crdConfig.APIPath = "/apis" - crdConfig.NegotiatedSerializer = serializer.NewCodecFactory(scheme.Scheme) + crdConfig.NegotiatedSerializer = serializer.NewCodecFactory(scheme) crdConfig.UserAgent = rest.DefaultKubernetesUserAgent() client, err := rest.UnversionedRESTClientFor(&crdConfig)