diff --git a/pkg/kubelet/apis/podresources/client.go b/pkg/kubelet/apis/podresources/client.go index efa92d1d530..acc83577432 100644 --- a/pkg/kubelet/apis/podresources/client.go +++ b/pkg/kubelet/apis/podresources/client.go @@ -34,15 +34,15 @@ import ( // GetV1alpha1Client returns a client for the PodResourcesLister grpc service // Note: This is deprecated -func GetV1alpha1Client(socket string, connectionTimeout time.Duration, maxMsgSize int) (v1alpha1.PodResourcesListerClient, *grpc.ClientConn, error) { +func GetV1alpha1Client(ctx context.Context, socket string, connectionTimeout time.Duration, maxMsgSize int) (v1alpha1.PodResourcesListerClient, *grpc.ClientConn, error) { addr, dialer, err := util.GetAddressAndDialer(socket) if err != nil { return nil, nil, err } - ctx, cancel := context.WithTimeout(context.TODO(), connectionTimeout) + ctxT, cancel := context.WithTimeout(ctx, connectionTimeout) defer cancel() - conn, err := grpc.DialContext(ctx, addr, + conn, err := grpc.DialContext(ctxT, addr, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialer), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(maxMsgSize))) @@ -53,15 +53,15 @@ func GetV1alpha1Client(socket string, connectionTimeout time.Duration, maxMsgSiz } // GetV1Client returns a client for the PodResourcesLister grpc service -func GetV1Client(socket string, connectionTimeout time.Duration, maxMsgSize int) (v1.PodResourcesListerClient, *grpc.ClientConn, error) { +func GetV1Client(ctx context.Context, socket string, connectionTimeout time.Duration, maxMsgSize int) (v1.PodResourcesListerClient, *grpc.ClientConn, error) { addr, dialer, err := util.GetAddressAndDialer(socket) if err != nil { return nil, nil, err } - ctx, cancel := context.WithTimeout(context.TODO(), connectionTimeout) + ctxT, cancel := context.WithTimeout(ctx, connectionTimeout) defer cancel() - conn, err := grpc.DialContext(ctx, addr, + conn, err := grpc.DialContext(ctxT, addr, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialer), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(maxMsgSize))) diff --git a/pkg/kubelet/apis/podresources/client_test.go b/pkg/kubelet/apis/podresources/client_test.go index 5ca0b0bd415..a2e11bf7819 100644 --- a/pkg/kubelet/apis/podresources/client_test.go +++ b/pkg/kubelet/apis/podresources/client_test.go @@ -24,15 +24,17 @@ import ( "github.com/stretchr/testify/require" "google.golang.org/grpc" fakeremote "k8s.io/cri-client/pkg/fake" + "k8s.io/kubernetes/test/utils/ktesting" ) func TestGetClient(t *testing.T) { + tCtx := ktesting.Init(t) testCases := map[string]func(string, time.Duration, int) (any, *grpc.ClientConn, error){ "v1alpha1": func(socket string, timeout time.Duration, maxSize int) (any, *grpc.ClientConn, error) { - return GetV1alpha1Client(socket, timeout, maxSize) + return GetV1alpha1Client(tCtx, socket, timeout, maxSize) }, "v1": func(socket string, timeout time.Duration, maxSize int) (any, *grpc.ClientConn, error) { - return GetV1Client(socket, timeout, maxSize) + return GetV1Client(tCtx, socket, timeout, maxSize) }, } diff --git a/test/e2e_node/cpu_manager_metrics_test.go b/test/e2e_node/cpu_manager_metrics_test.go index acf7e85e731..aad29e9af4e 100644 --- a/test/e2e_node/cpu_manager_metrics_test.go +++ b/test/e2e_node/cpu_manager_metrics_test.go @@ -223,7 +223,7 @@ var _ = SIGDescribe("CPU Manager Metrics", framework.WithSerial(), feature.CPUMa endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -254,7 +254,7 @@ var _ = SIGDescribe("CPU Manager Metrics", framework.WithSerial(), feature.CPUMa endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -456,7 +456,7 @@ var _ = SIGDescribe("CPU Manager Metrics", framework.WithSerial(), feature.CPUMa endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) diff --git a/test/e2e_node/memory_manager_test.go b/test/e2e_node/memory_manager_test.go index f7a23b3d821..b2afb8414f0 100644 --- a/test/e2e_node/memory_manager_test.go +++ b/test/e2e_node/memory_manager_test.go @@ -268,7 +268,7 @@ func verifyMemoryManagerAllocations(ctx context.Context, pod *v1.Pod, expectedGu endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) defer conn.Close() //nolint:errcheck @@ -458,7 +458,7 @@ var _ = SIGDescribe("Memory Manager", "[LinuxOnly]", framework.WithDisruptive(), endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) defer conn.Close() //nolint:errcheck @@ -598,7 +598,7 @@ var _ = SIGDescribe("Memory Manager", "[LinuxOnly]", framework.WithDisruptive(), endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) defer conn.Close() //nolint:errcheck @@ -743,7 +743,7 @@ var _ = SIGDescribe("Memory Manager", "[LinuxOnly]", framework.WithDisruptive(), endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) defer conn.Close() //nolint:errcheck @@ -760,7 +760,7 @@ var _ = SIGDescribe("Memory Manager", "[LinuxOnly]", framework.WithDisruptive(), endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) defer conn.Close() //nolint:errcheck @@ -2115,7 +2115,7 @@ var _ = SIGDescribe("Memory Manager Pod Level Resources", ginkgo.Ordered, ginkgo var resp *kubeletpodresourcesv1.ListPodResourcesResponse gomega.Eventually(ctx, func(ctx context.Context) error { - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) if err != nil { return err } diff --git a/test/e2e_node/podresources_test.go b/test/e2e_node/podresources_test.go index 97fba59657d..623b82062db 100644 --- a/test/e2e_node/podresources_test.go +++ b/test/e2e_node/podresources_test.go @@ -1154,7 +1154,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer framework.ExpectNoError(conn.Close()) @@ -1183,7 +1183,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -1292,7 +1292,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -1312,7 +1312,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -1333,7 +1333,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -1495,7 +1495,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) gomega.Consistently(func(ctx context.Context) error { @@ -1588,7 +1588,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) gomega.Consistently(func(ctx context.Context) error { @@ -1629,7 +1629,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) gomega.Eventually(func(ctx context.Context) error { @@ -1762,7 +1762,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) gomega.Consistently(func(ctx context.Context) error { @@ -1836,7 +1836,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) gomega.Consistently(func(ctx context.Context) error { @@ -1882,7 +1882,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err) var cli kubeletpodresourcesv1.PodResourcesListerClient - cli, podresConn, err = podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, podresConn, err = podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err) // After all pods terminate, PodResources should eventually stop reporting them. @@ -1951,7 +1951,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err: %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err: %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -2003,7 +2003,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso endpoint, err := util.LocalEndpoint(defaultPodResourcesPath, podresources.Socket) framework.ExpectNoError(err, "LocalEndpoint() failed err %v", err) - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -2070,7 +2070,7 @@ var _ = SIGDescribe("POD Resources API", framework.WithSerial(), feature.PodReso framework.ExpectNoError(err, "LocalEndpoint() failed err %v", err) ginkgo.By("Connecting to the kubelet endpoint") - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) framework.ExpectNoError(err, "GetV1Client() failed err %v", err) defer func() { framework.ExpectNoError(conn.Close()) @@ -2303,7 +2303,7 @@ func withPodResourcesV1Client( return err } - cli, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + cli, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) if err != nil { return err } diff --git a/test/e2e_node/util.go b/test/e2e_node/util.go index 7df0fbec9b5..60a106325e2 100644 --- a/test/e2e_node/util.go +++ b/test/e2e_node/util.go @@ -131,7 +131,7 @@ func getV1alpha1NodeDevices(ctx context.Context) (*kubeletpodresourcesv1alpha1.L if err != nil { return nil, fmt.Errorf("Error getting local endpoint: %w", err) } - client, conn, err := podresources.GetV1alpha1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + client, conn, err := podresources.GetV1alpha1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) if err != nil { return nil, fmt.Errorf("Error getting grpc client: %w", err) } @@ -150,7 +150,7 @@ func getV1NodeDevices(ctx context.Context) (*kubeletpodresourcesv1.ListPodResour if err != nil { return nil, fmt.Errorf("Error getting local endpoint: %w", err) } - client, conn, err := podresources.GetV1Client(endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) + client, conn, err := podresources.GetV1Client(ctx, endpoint, defaultPodResourcesTimeout, defaultPodResourcesMaxSize) if err != nil { return nil, fmt.Errorf("Error getting gRPC client: %w", err) }