From c5b4ee20991bda3e2ff4e40f5e7744ebc090dfce Mon Sep 17 00:00:00 2001 From: Etai Lev Ran Date: Thu, 20 Nov 2025 15:35:10 +0200 Subject: [PATCH 1/4] replace ktesting with explicit calls Signed-off-by: Etai Lev Ran --- pkg/sidecar/proxy/connector_test.go | 3 +-- pkg/sidecar/proxy/data_parallel_test.go | 3 +-- pkg/sidecar/proxy/proxy_test.go | 22 ++++++++++++++++++---- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/pkg/sidecar/proxy/connector_test.go b/pkg/sidecar/proxy/connector_test.go index ec2c9966..64ba2687 100644 --- a/pkg/sidecar/proxy/connector_test.go +++ b/pkg/sidecar/proxy/connector_test.go @@ -30,7 +30,6 @@ import ( "github.com/llm-d/llm-d-inference-scheduler/test/sidecar/mock" . "github.com/onsi/ginkgo/v2" // nolint:revive . "github.com/onsi/gomega" // nolint:revive - "k8s.io/klog/v2/ktesting" ) type sidecarTestInfo struct { @@ -180,7 +179,7 @@ var _ = Describe("Common Connector tests", func() { func sidecarConnectionTestSetup(connector string) *sidecarTestInfo { testInfo := sidecarTestInfo{} - _, testInfo.ctx = ktesting.NewTestContext(GinkgoT()) + testInfo.ctx = newTestContext() testInfo.ctx, testInfo.cancelFn = context.WithCancel(testInfo.ctx) testInfo.stoppedCh = make(chan struct{}) diff --git a/pkg/sidecar/proxy/data_parallel_test.go b/pkg/sidecar/proxy/data_parallel_test.go index 7f625b91..3bd8118b 100644 --- a/pkg/sidecar/proxy/data_parallel_test.go +++ b/pkg/sidecar/proxy/data_parallel_test.go @@ -10,7 +10,6 @@ import ( . "github.com/onsi/ginkgo/v2" // nolint:revive . "github.com/onsi/gomega" // nolint:revive "golang.org/x/sync/errgroup" - "k8s.io/klog/v2/ktesting" "github.com/llm-d/llm-d-inference-scheduler/pkg/common" sidecarmock "github.com/llm-d/llm-d-inference-scheduler/test/sidecar/mock" @@ -24,7 +23,7 @@ const ( var _ = Describe("Data Parallel support", func() { When("configured with --data-parallel-size > 1", func() { It("should create an extra proxy", func() { - _, ctx := ktesting.NewTestContext(GinkgoT()) + ctx := newTestContext() ctx, cancel := context.WithCancel(ctx) grp, ctx := errgroup.WithContext(ctx) diff --git a/pkg/sidecar/proxy/proxy_test.go b/pkg/sidecar/proxy/proxy_test.go index 8cbc0ed0..6902c3e8 100644 --- a/pkg/sidecar/proxy/proxy_test.go +++ b/pkg/sidecar/proxy/proxy_test.go @@ -26,20 +26,34 @@ import ( "strings" "time" + "sigs.k8s.io/controller-runtime/pkg/log" + ctrllog "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/log/zap" + "github.com/llm-d/llm-d-inference-scheduler/pkg/common" "github.com/llm-d/llm-d-inference-scheduler/test/sidecar/mock" . "github.com/onsi/ginkgo/v2" // nolint:revive . "github.com/onsi/gomega" // nolint:revive - "k8s.io/klog/v2/ktesting" ) +func newTestContext() context.Context { + logger := zap.New( + zap.WriteTo(GinkgoWriter), + zap.UseDevMode(true), + ) + ctrllog.SetLogger(logger) + ctx := context.Background() + log.IntoContext(ctx, logger) // not strictly needed since we called SetLogger to set default + return ctx +} + var _ = Describe("Reverse Proxy", func() { When("x-prefiller-url is not present", func() { DescribeTable("should forward requests to decode server", func(path string, secureProxy bool) { - _, ctx := ktesting.NewTestContext(GinkgoT()) + ctx := newTestContext() var cert *tls.Certificate if secureProxy { tempCert, err := CreateSelfSignedTLSCertificate() @@ -159,7 +173,7 @@ var _ = Describe("Reverse Proxy", func() { }) It("should successfully send request to 1. prefill 2. decode with the right fields (backward compatible behavior)", func() { - _, ctx := ktesting.NewTestContext(GinkgoT()) + ctx := newTestContext() ctx, cancelFn := context.WithCancel(ctx) stoppedCh := make(chan struct{}) @@ -233,7 +247,7 @@ var _ = Describe("Reverse Proxy", func() { }) It("should successfully send request to 1. prefill 2. decode with the right fields", func() { - _, ctx := ktesting.NewTestContext(GinkgoT()) + ctx := newTestContext() ctx, cancelFn := context.WithCancel(ctx) stoppedCh := make(chan struct{}) From c24eb2afb3af8971792c9bf3b12e0c5af85fcbe1 Mon Sep 17 00:00:00 2001 From: Etai Lev Ran Date: Thu, 20 Nov 2025 15:37:49 +0200 Subject: [PATCH 2/4] replace klog with controller-runtime/log Signed-off-by: Etai Lev Ran --- pkg/sidecar/proxy/allowlist.go | 4 ++-- pkg/sidecar/proxy/data_parallel.go | 4 ++-- pkg/sidecar/proxy/proxy.go | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/sidecar/proxy/allowlist.go b/pkg/sidecar/proxy/allowlist.go index 76b43449..8442e8b2 100644 --- a/pkg/sidecar/proxy/allowlist.go +++ b/pkg/sidecar/proxy/allowlist.go @@ -33,8 +33,8 @@ import ( "k8s.io/client-go/dynamic" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/clientcmd" - "k8s.io/klog/v2" "k8s.io/utils/set" + "sigs.k8s.io/controller-runtime/pkg/log" ) const ( @@ -105,7 +105,7 @@ func (av *AllowlistValidator) Start(ctx context.Context) error { return nil } - av.logger = klog.FromContext(ctx).WithName("allowlist-validator") + av.logger = log.FromContext(ctx).WithName("allowlist-validator") av.logger.Info("starting SSRF protection allowlist validator", "namespace", av.namespace, "poolName", av.poolName) gvr := schema.GroupVersionResource{ diff --git a/pkg/sidecar/proxy/data_parallel.go b/pkg/sidecar/proxy/data_parallel.go index 00a8803f..535b980f 100644 --- a/pkg/sidecar/proxy/data_parallel.go +++ b/pkg/sidecar/proxy/data_parallel.go @@ -11,7 +11,7 @@ import ( "github.com/llm-d/llm-d-inference-scheduler/pkg/common" "golang.org/x/sync/errgroup" - "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/log" ) // dataParallelHandler checks if Data Parallel handling is needed. @@ -71,7 +71,7 @@ func (s *Server) startDataParallel(ctx context.Context, cert *tls.Certificate, g } clone := s.Clone() - clone.logger = klog.FromContext(ctx).WithName("proxy server on port " + rankPort) + clone.logger = log.FromContext(ctx).WithName("proxy server on port " + rankPort) clone.port = rankPort clone.decoderURL = decoderURL clone.forwardDataParallel = false diff --git a/pkg/sidecar/proxy/proxy.go b/pkg/sidecar/proxy/proxy.go index 9b88b5b6..a5467071 100644 --- a/pkg/sidecar/proxy/proxy.go +++ b/pkg/sidecar/proxy/proxy.go @@ -29,7 +29,7 @@ import ( "github.com/go-logr/logr" lru "github.com/hashicorp/golang-lru/v2" "golang.org/x/sync/errgroup" - "k8s.io/klog/v2" + "sigs.k8s.io/controller-runtime/pkg/log" ) const ( @@ -141,7 +141,7 @@ func NewProxy(port string, decodeURL *url.URL, config Config) *Server { // Start the HTTP reverse proxy. func (s *Server) Start(ctx context.Context, cert *tls.Certificate, allowlistValidator *AllowlistValidator) error { - s.logger = klog.FromContext(ctx).WithName("proxy server on port " + s.port) + s.logger = log.FromContext(ctx).WithName("proxy server on port " + s.port) s.allowlistValidator = allowlistValidator From a1234ddd208f9d309d755b53ea2bac579cdd2313 Mon Sep 17 00:00:00 2001 From: Etai Lev Ran Date: Thu, 20 Nov 2025 15:38:16 +0200 Subject: [PATCH 3/4] remove klog Signed-off-by: Etai Lev Ran --- cmd/pd-sidecar/main.go | 12 +++++++----- go.mod | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cmd/pd-sidecar/main.go b/cmd/pd-sidecar/main.go index 2bcbdc72..bd6b1b5d 100644 --- a/cmd/pd-sidecar/main.go +++ b/cmd/pd-sidecar/main.go @@ -23,8 +23,9 @@ import ( "strconv" "strings" - "k8s.io/klog/v2" ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/log" + "sigs.k8s.io/controller-runtime/pkg/log/zap" "github.com/llm-d/llm-d-inference-scheduler/pkg/sidecar/proxy" "github.com/llm-d/llm-d-inference-scheduler/pkg/sidecar/version" @@ -58,14 +59,15 @@ func main() { inferencePoolName := flag.String("inference-pool-name", os.Getenv("INFERENCE_POOL_NAME"), "the specific InferencePool name to watch (defaults to INFERENCE_POOL_NAME env var)") enablePrefillerSampling := flag.Bool("enable-prefiller-sampling", func() bool { b, _ := strconv.ParseBool(os.Getenv("ENABLE_PREFILLER_SAMPLING")); return b }(), "if true, the target prefill instance will be selected randomly from among the provided prefill host values") - klog.InitFlags(nil) + opts := zap.Options{} + opts.BindFlags(flag.CommandLine) // optional to allow zap logging control via CLI flag.Parse() - // make sure to flush logs before exiting - defer klog.Flush() + logger := zap.New(zap.UseFlagOptions(&opts)) + log.SetLogger(logger) ctx := ctrl.SetupSignalHandler() - logger := klog.FromContext(ctx) + log.IntoContext(ctx, logger) logger.Info("Proxy starting", "Built on", version.BuildRef, "From Git SHA", version.CommitSHA) diff --git a/go.mod b/go.mod index 7b71476a..445d863a 100644 --- a/go.mod +++ b/go.mod @@ -23,7 +23,6 @@ require ( k8s.io/apimachinery v0.34.2 k8s.io/client-go v0.34.2 k8s.io/component-base v0.34.2 - k8s.io/klog/v2 v2.130.1 k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d sigs.k8s.io/controller-runtime v0.22.4 sigs.k8s.io/gateway-api v1.4.0 @@ -126,6 +125,7 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/apiserver v0.34.2 // indirect + k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250814151709-d7b6acb124c3 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect From 910299f5e64de33f5b8202b062c46cd2116659f9 Mon Sep 17 00:00:00 2001 From: Etai Lev Ran Date: Thu, 20 Nov 2025 15:43:44 +0200 Subject: [PATCH 4/4] lint fixes (revive var-naming was not introduced in this PR) Signed-off-by: Etai Lev Ran --- pkg/sidecar/proxy/proxy_test.go | 3 +-- test/utils/network.go | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/sidecar/proxy/proxy_test.go b/pkg/sidecar/proxy/proxy_test.go index 6902c3e8..b0f330bb 100644 --- a/pkg/sidecar/proxy/proxy_test.go +++ b/pkg/sidecar/proxy/proxy_test.go @@ -27,7 +27,6 @@ import ( "time" "sigs.k8s.io/controller-runtime/pkg/log" - ctrllog "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" "github.com/llm-d/llm-d-inference-scheduler/pkg/common" @@ -41,7 +40,7 @@ func newTestContext() context.Context { zap.WriteTo(GinkgoWriter), zap.UseDevMode(true), ) - ctrllog.SetLogger(logger) + log.SetLogger(logger) ctx := context.Background() log.IntoContext(ctx, logger) // not strictly needed since we called SetLogger to set default return ctx diff --git a/test/utils/network.go b/test/utils/network.go index 2d277440..57097c05 100644 --- a/test/utils/network.go +++ b/test/utils/network.go @@ -1,6 +1,10 @@ // Package utils contains utilities for testing +// +//revive:disable:var-naming package utils +//revive:enable:var-naming + import ( "net" )