diff --git a/go.mod b/go.mod index 30d406b0b..a7cae18a7 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( k8s.io/api v0.29.0 k8s.io/apimachinery v0.29.0 k8s.io/client-go v0.29.0 - k8s.io/cri-api v0.25.16 + k8s.io/cri-api v0.29.0 k8s.io/klog/v2 v2.110.1 k8s.io/utils v0.0.0-20240102154912-e7106e64919e sigs.k8s.io/yaml v1.4.0 @@ -98,5 +98,5 @@ replace ( k8s.io/apiserver => k8s.io/apiserver v0.29.0 k8s.io/client-go => k8s.io/client-go v0.29.0 k8s.io/component-base => k8s.io/component-base v0.29.0 - k8s.io/cri-api => k8s.io/cri-api v0.25.16 + k8s.io/cri-api => k8s.io/cri-api v0.29.0 ) diff --git a/go.sum b/go.sum index 7c66b6598..c48615c8a 100644 --- a/go.sum +++ b/go.sum @@ -637,8 +637,8 @@ k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8= k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38= -k8s.io/cri-api v0.25.16 h1:NSa4jRRP8zvEKBVfnWvMEaemvAsMXw5UQkLPQCRa2cc= -k8s.io/cri-api v0.25.16/go.mod h1:0vfZsZhEs3LoY5Lqm6Zgx43M633ToNlTUtEQc+VvXhw= +k8s.io/cri-api v0.29.0 h1:atenAqOltRsFqcCQlFFpDnl/R4aGfOELoNLTDJfd7t8= +k8s.io/cri-api v0.29.0/go.mod h1:Rls2JoVwfC7kW3tndm7267kriuRukQ02qfht0PCRuIc= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= diff --git a/pkg/cri/client/client.go b/pkg/cri/client/client.go index 798465dba..5969a1447 100644 --- a/pkg/cri/client/client.go +++ b/pkg/cri/client/client.go @@ -32,7 +32,6 @@ import ( "github.com/intel/cri-resource-manager/pkg/utils" v1 "github.com/intel/cri-resource-manager/pkg/cri/client/v1" - v1alpha2 "github.com/intel/cri-resource-manager/pkg/cri/client/v1alpha2" ) // DialNotifyFn is a function to call after a successful net.Dial[Timeout](). @@ -128,9 +127,6 @@ func (c *client) Connect(options ConnectOptions) error { } client, err := v1.Connect(c.rcc, c.icc) - if err != nil { - client, err = v1alpha2.Connect(c.rcc, c.icc) - } if err != nil { return err } @@ -446,23 +442,25 @@ func (c *client) Status(ctx context.Context, in *criv1.StatusRequest, _ ...grpc. return c.client.Status(ctx, in) } -/* func (c *client) CheckpointContainer(ctx context.Context, in *criv1.CheckpointContainerRequest, _ ...grpc.CallOption) (*criv1.CheckpointContainerResponse, error) { - return nil, fmt.Errorf("unimplemented by CRI RuntimeService") + return c.client.CheckpointContainer(ctx, in) } -func (c *client) GetContainerEvents(ctx context.Context, in *criv1.GetContainerEventsRequest, _ ...grpc.CallOption) (criv1.RuntimeService_GetContainerEventsClient, error) { - return nil, fmt.Errorf("unimplemented by CRI RuntimeService") +func (c *client) GetContainerEvents(ctx context.Context, in *criv1.GetEventsRequest, _ ...grpc.CallOption) (criv1.RuntimeService_GetContainerEventsClient, error) { + return c.client.GetContainerEvents(ctx, in) } func (c *client) ListMetricDescriptors(ctx context.Context, in *criv1.ListMetricDescriptorsRequest, _ ...grpc.CallOption) (*criv1.ListMetricDescriptorsResponse, error) { - return nil, fmt.Errorf("unimplemented by CRI RuntimeService") + return c.client.ListMetricDescriptors(ctx, in) } func (c *client) ListPodSandboxMetrics(ctx context.Context, in *criv1.ListPodSandboxMetricsRequest, _ ...grpc.CallOption) (*criv1.ListPodSandboxMetricsResponse, error) { - return nil, fmt.Errorf("unimplemented by CRI RuntimeService") + return c.client.ListPodSandboxMetrics(ctx, in) +} + +func (c *client) RuntimeConfig(ctx context.Context, in *criv1.RuntimeConfigRequest, _ ...grpc.CallOption) (*criv1.RuntimeConfigResponse, error) { + return c.client.RuntimeConfig(ctx, in) } -*/ func (c *client) ListImages(ctx context.Context, in *criv1.ListImagesRequest, _ ...grpc.CallOption) (*criv1.ListImagesResponse, error) { if err := c.checkImageService(); err != nil { diff --git a/pkg/cri/client/v1/client.go b/pkg/cri/client/v1/client.go index c1132e964..dc743a9e4 100644 --- a/pkg/cri/client/v1/client.go +++ b/pkg/cri/client/v1/client.go @@ -69,14 +69,14 @@ func Connect(runtime, image *grpc.ClientConn) (Client, error) { func (c *client) checkRuntimeService() error { if c.rcc == nil { - return fmt.Errorf("no CRI v1alpha2 RuntimeService client") + return fmt.Errorf("no CRI v1 RuntimeService client") } return nil } func (c *client) checkImageService() error { if c.icc == nil { - return fmt.Errorf("no CRI v1alpha2 ImageService client") + return fmt.Errorf("no CRI v1 ImageService client") } return nil } @@ -294,10 +294,6 @@ func (c *client) GetContainerEvents(ctx context.Context, in *criv1.GetEventsRequ return eventsClient, err } -// -// These are being introduced but they are not defined yet for the -// CRI API version we are compiling against. -/* func (c *client) ListMetricDescriptors(ctx context.Context, in *criv1.ListMetricDescriptorsRequest, _ ...grpc.CallOption) (*criv1.ListMetricDescriptorsResponse, error) { if err := c.checkRuntimeService(); err != nil { return nil, err @@ -313,7 +309,14 @@ func (c *client) ListPodSandboxMetrics(ctx context.Context, in *criv1.ListPodSan return c.rsc.ListPodSandboxMetrics(ctx, in) } -*/ + +func (c *client) RuntimeConfig(ctx context.Context, in *criv1.RuntimeConfigRequest, _ ...grpc.CallOption) (*criv1.RuntimeConfigResponse, error) { + if err := c.checkRuntimeService(); err != nil { + return nil, err + } + + return c.rsc.RuntimeConfig(ctx, in) +} func (c *client) ListImages(ctx context.Context, in *criv1.ListImagesRequest, _ ...grpc.CallOption) (*criv1.ListImagesResponse, error) { if err := c.checkImageService(); err != nil { diff --git a/pkg/cri/client/v1alpha2/client.go b/pkg/cri/client/v1alpha2/client.go deleted file mode 100644 index f9b260750..000000000 --- a/pkg/cri/client/v1alpha2/client.go +++ /dev/null @@ -1,905 +0,0 @@ -// Copyright Intel Corporation. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package v1alpha2 - -import ( - "context" - "fmt" - - "google.golang.org/grpc" - - criv1 "k8s.io/cri-api/pkg/apis/runtime/v1" - criv1alpha2 "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" - - logger "github.com/intel/cri-resource-manager/pkg/log" -) - -type Client interface { - criv1.ImageServiceClient - criv1.RuntimeServiceClient -} - -type client struct { - logger.Logger - isc criv1alpha2.ImageServiceClient - rsc criv1alpha2.RuntimeServiceClient - rcc *grpc.ClientConn - icc *grpc.ClientConn -} - -// Connect v2alpha1 RuntimeService and ImageService clients. -func Connect(runtime, image *grpc.ClientConn) (Client, error) { - c := &client{ - Logger: logger.Get("cri/client"), - rcc: runtime, - icc: image, - } - - if c.rcc != nil { - c.Info("probing CRI v1alpha2 RuntimeService client...") - c.rsc = criv1alpha2.NewRuntimeServiceClient(c.rcc) - _, err := c.rsc.Version(context.Background(), &criv1alpha2.VersionRequest{}) - if err != nil { - return nil, err - } - } - - if c.icc != nil { - c.Info("probing CRI v1alpha2 ImageService client...") - c.isc = criv1alpha2.NewImageServiceClient(c.icc) - _, err := c.isc.ListImages(context.Background(), &criv1alpha2.ListImagesRequest{}) - if err != nil { - return nil, err - } - } - - return c, nil -} - -func (c *client) checkRuntimeService() error { - if c.rcc == nil { - return fmt.Errorf("no CRI v1alpha2 RuntimeService client") - } - return nil -} - -func (c *client) checkImageService() error { - if c.icc == nil { - return fmt.Errorf("no CRI v1alpha2 ImageService client") - } - return nil -} - -func (c *client) Version(ctx context.Context, in *criv1.VersionRequest, _ ...grpc.CallOption) (*criv1.VersionResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.VersionRequest{} - v1resp = &criv1.VersionResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.Version(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) RunPodSandbox(ctx context.Context, in *criv1.RunPodSandboxRequest, _ ...grpc.CallOption) (*criv1.RunPodSandboxResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.RunPodSandboxRequest{} - v1resp = &criv1.RunPodSandboxResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.RunPodSandbox(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) StopPodSandbox(ctx context.Context, in *criv1.StopPodSandboxRequest, _ ...grpc.CallOption) (*criv1.StopPodSandboxResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.StopPodSandboxRequest{} - v1resp = &criv1.StopPodSandboxResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.StopPodSandbox(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) RemovePodSandbox(ctx context.Context, in *criv1.RemovePodSandboxRequest, _ ...grpc.CallOption) (*criv1.RemovePodSandboxResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.RemovePodSandboxRequest{} - v1resp = &criv1.RemovePodSandboxResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.RemovePodSandbox(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) PodSandboxStatus(ctx context.Context, in *criv1.PodSandboxStatusRequest, _ ...grpc.CallOption) (*criv1.PodSandboxStatusResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.PodSandboxStatusRequest{} - v1resp = &criv1.PodSandboxStatusResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.PodSandboxStatus(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ListPodSandbox(ctx context.Context, in *criv1.ListPodSandboxRequest, _ ...grpc.CallOption) (*criv1.ListPodSandboxResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ListPodSandboxRequest{} - v1resp = &criv1.ListPodSandboxResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ListPodSandbox(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) CreateContainer(ctx context.Context, in *criv1.CreateContainerRequest, _ ...grpc.CallOption) (*criv1.CreateContainerResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.CreateContainerRequest{} - v1resp = &criv1.CreateContainerResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.CreateContainer(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) StartContainer(ctx context.Context, in *criv1.StartContainerRequest, _ ...grpc.CallOption) (*criv1.StartContainerResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.StartContainerRequest{} - v1resp = &criv1.StartContainerResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.StartContainer(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) StopContainer(ctx context.Context, in *criv1.StopContainerRequest, _ ...grpc.CallOption) (*criv1.StopContainerResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.StopContainerRequest{} - v1resp = &criv1.StopContainerResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.StopContainer(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) RemoveContainer(ctx context.Context, in *criv1.RemoveContainerRequest, _ ...grpc.CallOption) (*criv1.RemoveContainerResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.RemoveContainerRequest{} - v1resp = &criv1.RemoveContainerResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.RemoveContainer(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ListContainers(ctx context.Context, in *criv1.ListContainersRequest, _ ...grpc.CallOption) (*criv1.ListContainersResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ListContainersRequest{} - v1resp = &criv1.ListContainersResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ListContainers(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ContainerStatus(ctx context.Context, in *criv1.ContainerStatusRequest, _ ...grpc.CallOption) (*criv1.ContainerStatusResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ContainerStatusRequest{} - v1resp = &criv1.ContainerStatusResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ContainerStatus(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) UpdateContainerResources(ctx context.Context, in *criv1.UpdateContainerResourcesRequest, _ ...grpc.CallOption) (*criv1.UpdateContainerResourcesResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.UpdateContainerResourcesRequest{} - v1resp = &criv1.UpdateContainerResourcesResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.UpdateContainerResources(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ReopenContainerLog(ctx context.Context, in *criv1.ReopenContainerLogRequest, _ ...grpc.CallOption) (*criv1.ReopenContainerLogResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ReopenContainerLogRequest{} - v1resp = &criv1.ReopenContainerLogResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ReopenContainerLog(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ExecSync(ctx context.Context, in *criv1.ExecSyncRequest, _ ...grpc.CallOption) (*criv1.ExecSyncResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ExecSyncRequest{} - v1resp = &criv1.ExecSyncResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ExecSync(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) Exec(ctx context.Context, in *criv1.ExecRequest, _ ...grpc.CallOption) (*criv1.ExecResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ExecRequest{} - v1resp = &criv1.ExecResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.Exec(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) Attach(ctx context.Context, in *criv1.AttachRequest, _ ...grpc.CallOption) (*criv1.AttachResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.AttachRequest{} - v1resp = &criv1.AttachResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.Attach(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) PortForward(ctx context.Context, in *criv1.PortForwardRequest, _ ...grpc.CallOption) (*criv1.PortForwardResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.PortForwardRequest{} - v1resp = &criv1.PortForwardResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.PortForward(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ContainerStats(ctx context.Context, in *criv1.ContainerStatsRequest, _ ...grpc.CallOption) (*criv1.ContainerStatsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ContainerStatsRequest{} - v1resp = &criv1.ContainerStatsResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ContainerStats(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ListContainerStats(ctx context.Context, in *criv1.ListContainerStatsRequest, _ ...grpc.CallOption) (*criv1.ListContainerStatsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ListContainerStatsRequest{} - v1resp = &criv1.ListContainerStatsResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ListContainerStats(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) PodSandboxStats(ctx context.Context, in *criv1.PodSandboxStatsRequest, _ ...grpc.CallOption) (*criv1.PodSandboxStatsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.PodSandboxStatsRequest{} - v1resp = &criv1.PodSandboxStatsResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.PodSandboxStats(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ListPodSandboxStats(ctx context.Context, in *criv1.ListPodSandboxStatsRequest, _ ...grpc.CallOption) (*criv1.ListPodSandboxStatsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ListPodSandboxStatsRequest{} - v1resp = &criv1.ListPodSandboxStatsResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.ListPodSandboxStats(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) UpdateRuntimeConfig(ctx context.Context, in *criv1.UpdateRuntimeConfigRequest, _ ...grpc.CallOption) (*criv1.UpdateRuntimeConfigResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.UpdateRuntimeConfigRequest{} - v1resp = &criv1.UpdateRuntimeConfigResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.UpdateRuntimeConfig(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) Status(ctx context.Context, in *criv1.StatusRequest, _ ...grpc.CallOption) (*criv1.StatusResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.StatusRequest{} - v1resp = &criv1.StatusResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.rsc.Status(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) CheckpointContainer(_ context.Context, _ *criv1.CheckpointContainerRequest, _ ...grpc.CallOption) (*criv1.CheckpointContainerResponse, error) { - c.Errorf("internal error: GetContainerEvents() called for v1alpha2 client") - return &criv1.CheckpointContainerResponse{}, - fmt.Errorf("internal error: CheckpointContainer() called for v1alpha2 client") -} - -func (c *client) GetContainerEvents(_ context.Context, _ *criv1.GetEventsRequest, _ ...grpc.CallOption) (criv1.RuntimeService_GetContainerEventsClient, error) { - c.Errorf("internal error: GetContainerEvents() called for v1alpha2 client") - return nil, fmt.Errorf("internal error: GetContainerEvents() called for v1alpha2 client") -} - -// -// These are being introduced but they are not defined yet for the -// CRI API version we are compiling against. -/* -func (c *client) ListMetricDescriptors(ctx context.Context, in *criv1.ListMetricDescriptorsRequest, _ ...grpc.CallOption) (*criv1.ListMetricDescriptorsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - return c.rsc.ListMetricDescriptors(ctx, in) -} - -func (c *client) ListPodSandboxMetrics(ctx context.Context, in *criv1.ListPodSandboxMetricsRequest, _ ...grpc.CallOption) (*criv1.ListPodSandboxMetricsResponse, error) { - if err := c.checkRuntimeService(); err != nil { - return nil, err - } - - return c.rsc.ListPodSandboxMetrics(ctx, in) -} -*/ - -func (c *client) ListImages(ctx context.Context, in *criv1.ListImagesRequest, _ ...grpc.CallOption) (*criv1.ListImagesResponse, error) { - if err := c.checkImageService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ListImagesRequest{} - v1resp = &criv1.ListImagesResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.isc.ListImages(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ImageStatus(ctx context.Context, in *criv1.ImageStatusRequest, _ ...grpc.CallOption) (*criv1.ImageStatusResponse, error) { - if err := c.checkImageService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ImageStatusRequest{} - v1resp = &criv1.ImageStatusResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.isc.ImageStatus(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) PullImage(ctx context.Context, in *criv1.PullImageRequest, _ ...grpc.CallOption) (*criv1.PullImageResponse, error) { - if err := c.checkImageService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.PullImageRequest{} - v1resp = &criv1.PullImageResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.isc.PullImage(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) RemoveImage(ctx context.Context, in *criv1.RemoveImageRequest, _ ...grpc.CallOption) (*criv1.RemoveImageResponse, error) { - if err := c.checkImageService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.RemoveImageRequest{} - v1resp = &criv1.RemoveImageResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.isc.RemoveImage(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil -} - -func (c *client) ImageFsInfo(ctx context.Context, in *criv1.ImageFsInfoRequest, _ ...grpc.CallOption) (*criv1.ImageFsInfoResponse, error) { - if err := c.checkImageService(); err != nil { - return nil, err - } - - var ( - req = &criv1alpha2.ImageFsInfoRequest{} - v1resp = &criv1.ImageFsInfoResponse{} - ) - - if err := v1ReqToAlpha(in, req); err != nil { - return nil, err - } - - resp, err := c.isc.ImageFsInfo(ctx, req) - if err != nil { - return nil, err - } - - if err := alphaRespToV1(resp, v1resp); err != nil { - return nil, err - } - - return v1resp, nil - -} - -func v1ReqToAlpha( - v1req interface{ Marshal() ([]byte, error) }, - alpha interface{ Unmarshal(_ []byte) error }, -) error { - p, err := v1req.Marshal() - if err != nil { - return err - } - - if err = alpha.Unmarshal(p); err != nil { - return err - } - return nil -} - -func alphaRespToV1( - alpha interface{ Marshal() ([]byte, error) }, - v1res interface{ Unmarshal(_ []byte) error }, -) error { - p, err := alpha.Marshal() - if err != nil { - return err - } - - if err = v1res.Unmarshal(p); err != nil { - return err - } - return nil -} - -// Return a formatted client-specific error. -func clientError(format string, args ...interface{}) error { - return fmt.Errorf("cri/client: "+format, args...) -} diff --git a/pkg/cri/relay/runtime-service.go b/pkg/cri/relay/runtime-service.go index b712692a4..e24fe905a 100644 --- a/pkg/cri/relay/runtime-service.go +++ b/pkg/cri/relay/runtime-service.go @@ -191,3 +191,18 @@ func (r *relay) CheckpointContainer(ctx context.Context, req *criv1.CheckpointCo func (r *relay) GetContainerEvents(_ *criv1.GetEventsRequest, _ criv1.RuntimeService_GetContainerEventsServer) error { return status.Errorf(codes.Unimplemented, "method GetContainerEvents not implemented") } + +func (r *relay) ListMetricDescriptors(ctx context.Context, req *criv1.ListMetricDescriptorsRequest) (*criv1.ListMetricDescriptorsResponse, error) { + r.dump("ListMetricDescriptors", req) + return r.client.ListMetricDescriptors(ctx, req) +} + +func (r *relay) ListPodSandboxMetrics(ctx context.Context, req *criv1.ListPodSandboxMetricsRequest) (*criv1.ListPodSandboxMetricsResponse, error) { + r.dump("ListPodSandboxMetrics", req) + return r.client.ListPodSandboxMetrics(ctx, req) +} + +func (r *relay) RuntimeConfig(ctx context.Context, req *criv1.RuntimeConfigRequest) (*criv1.RuntimeConfigResponse, error) { + r.dump("RuntimeConfig", req) + return r.client.RuntimeConfig(ctx, req) +} diff --git a/pkg/cri/server/server.go b/pkg/cri/server/server.go index 0fe8719ff..bf497d6b8 100644 --- a/pkg/cri/server/server.go +++ b/pkg/cri/server/server.go @@ -27,7 +27,6 @@ import ( "google.golang.org/grpc" - v1alpha2 "github.com/intel/cri-resource-manager/pkg/cri/server/v1alpha2" criv1 "k8s.io/cri-api/pkg/apis/runtime/v1" "github.com/intel/cri-resource-manager/pkg/cri/resource-manager/sockets" @@ -86,7 +85,6 @@ type server struct { interceptors map[string]Interceptor // request intercepting hooks runtime *criv1.RuntimeServiceServer // CRI runtime service image *criv1.ImageServiceServer // CRI image service - v1alpha2 *v1alpha2.Server // CRI v1alpha2 bridging service } // NewServer creates a new server instance. @@ -117,7 +115,6 @@ func (s *server) RegisterImageService(service criv1.ImageServiceServer) error { is := service s.image = &is criv1.RegisterImageServiceServer(s.server, s) - s.v1alpha2.RegisterImageService(s) return nil } @@ -135,7 +132,6 @@ func (s *server) RegisterRuntimeService(service criv1.RuntimeServiceServer) erro rs := service s.runtime = &rs criv1.RegisterRuntimeServiceServer(s.server, s) - s.v1alpha2.RegisterRuntimeService(s) return nil } @@ -224,7 +220,6 @@ func (s *server) createGrpcServer() error { } s.server = grpc.NewServer(instrumentation.InjectGrpcServerTrace()...) - s.v1alpha2 = v1alpha2.NewServer(s.server) return nil } diff --git a/pkg/cri/server/services.go b/pkg/cri/server/services.go index 828739ee0..d61d8e442 100644 --- a/pkg/cri/server/services.go +++ b/pkg/cri/server/services.go @@ -61,6 +61,9 @@ const ( updateRuntimeConfig = "UpdateRuntimeConfig" status = "Status" checkpointContainer = "CheckpointContainer" + listMetricDescriptors = "ListMetricDescriptors" + listPodSandboxMetrics = "ListPodSandboxMetrics" + runtimeConfig = "RuntimeConfig" ) func fqmn(service, method string) string { @@ -501,3 +504,42 @@ func (s *server) CheckpointContainer(ctx context.Context, req *criv1.CheckpointC func (s *server) GetContainerEvents(_ *criv1.GetEventsRequest, _ criv1.RuntimeService_GetContainerEventsServer) error { return grpcstatus.Errorf(grpccodes.Unimplemented, "GetContainerEvents not implemented") } + +func (s *server) ListMetricDescriptors(ctx context.Context, req *criv1.ListMetricDescriptorsRequest) (*criv1.ListMetricDescriptorsResponse, error) { + rsp, err := s.interceptRequest(ctx, runtimeService, listMetricDescriptors, req, + func(ctx context.Context, req interface{}) (interface{}, error) { + return (*s.runtime).ListMetricDescriptors(ctx, req.(*criv1.ListMetricDescriptorsRequest)) + }) + + if err != nil { + return nil, err + } + + return rsp.(*criv1.ListMetricDescriptorsResponse), err +} + +func (s *server) ListPodSandboxMetrics(ctx context.Context, req *criv1.ListPodSandboxMetricsRequest) (*criv1.ListPodSandboxMetricsResponse, error) { + rsp, err := s.interceptRequest(ctx, runtimeService, listPodSandboxMetrics, req, + func(ctx context.Context, req interface{}) (interface{}, error) { + return (*s.runtime).ListPodSandboxMetrics(ctx, req.(*criv1.ListPodSandboxMetricsRequest)) + }) + + if err != nil { + return nil, err + } + + return rsp.(*criv1.ListPodSandboxMetricsResponse), err +} + +func (s *server) RuntimeConfig(ctx context.Context, req *criv1.RuntimeConfigRequest) (*criv1.RuntimeConfigResponse, error) { + rsp, err := s.interceptRequest(ctx, runtimeService, runtimeConfig, req, + func(ctx context.Context, req interface{}) (interface{}, error) { + return (*s.runtime).RuntimeConfig(ctx, req.(*criv1.RuntimeConfigRequest)) + }) + + if err != nil { + return nil, err + } + + return rsp.(*criv1.RuntimeConfigResponse), err +} diff --git a/pkg/cri/server/v1alpha2/server.go b/pkg/cri/server/v1alpha2/server.go deleted file mode 100644 index 0353fbc62..000000000 --- a/pkg/cri/server/v1alpha2/server.go +++ /dev/null @@ -1,747 +0,0 @@ -// Copyright 2022 Intel Corporation. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package server - -import ( - "context" - - "google.golang.org/grpc" - - criv1 "k8s.io/cri-api/pkg/apis/runtime/v1" - criv1alpha2 "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" -) - -type Server struct { - server *grpc.Server - runtime criv1.RuntimeServiceServer - image criv1.ImageServiceServer -} - -func NewServer(s *grpc.Server) *Server { - return &Server{ - server: s, - } -} - -func (s *Server) RegisterImageService(image criv1.ImageServiceServer) { - if s == nil { - return - } - s.image = image - criv1alpha2.RegisterImageServiceServer(s.server, s) -} - -func (s *Server) RegisterRuntimeService(runtime criv1.RuntimeServiceServer) { - if s == nil { - return - } - s.runtime = runtime - criv1alpha2.RegisterRuntimeServiceServer(s.server, s) -} - -func (s *Server) ListImages(ctx context.Context, - in *criv1alpha2.ListImagesRequest) (*criv1alpha2.ListImagesResponse, error) { - var ( - v1req = &criv1.ListImagesRequest{} - alpharesp = &criv1alpha2.ListImagesResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.image.ListImages(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ImageStatus(ctx context.Context, - in *criv1alpha2.ImageStatusRequest) (*criv1alpha2.ImageStatusResponse, error) { - var ( - v1req = &criv1.ImageStatusRequest{} - alpharesp = &criv1alpha2.ImageStatusResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.image.ImageStatus(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) PullImage(ctx context.Context, - in *criv1alpha2.PullImageRequest) (*criv1alpha2.PullImageResponse, error) { - var ( - v1req = &criv1.PullImageRequest{} - alpharesp = &criv1alpha2.PullImageResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.image.PullImage(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) RemoveImage(ctx context.Context, - in *criv1alpha2.RemoveImageRequest) (*criv1alpha2.RemoveImageResponse, error) { - var ( - v1req = &criv1.RemoveImageRequest{} - alpharesp = &criv1alpha2.RemoveImageResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.image.RemoveImage(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ImageFsInfo(ctx context.Context, - in *criv1alpha2.ImageFsInfoRequest) (*criv1alpha2.ImageFsInfoResponse, error) { - var ( - v1req = &criv1.ImageFsInfoRequest{} - alpharesp = &criv1alpha2.ImageFsInfoResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.image.ImageFsInfo(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) Version(ctx context.Context, - in *criv1alpha2.VersionRequest) (*criv1alpha2.VersionResponse, error) { - var ( - v1req = &criv1.VersionRequest{} - alpharesp = &criv1alpha2.VersionResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.Version(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) RunPodSandbox(ctx context.Context, - in *criv1alpha2.RunPodSandboxRequest) (*criv1alpha2.RunPodSandboxResponse, error) { - var ( - v1req = &criv1.RunPodSandboxRequest{} - alpharesp = &criv1alpha2.RunPodSandboxResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.RunPodSandbox(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) StopPodSandbox(ctx context.Context, - in *criv1alpha2.StopPodSandboxRequest) (*criv1alpha2.StopPodSandboxResponse, error) { - var ( - v1req = &criv1.StopPodSandboxRequest{} - alpharesp = &criv1alpha2.StopPodSandboxResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.StopPodSandbox(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) RemovePodSandbox(ctx context.Context, - in *criv1alpha2.RemovePodSandboxRequest) (*criv1alpha2.RemovePodSandboxResponse, error) { - var ( - v1req = &criv1.RemovePodSandboxRequest{} - alpharesp = &criv1alpha2.RemovePodSandboxResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.RemovePodSandbox(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) PodSandboxStatus(ctx context.Context, - in *criv1alpha2.PodSandboxStatusRequest) (*criv1alpha2.PodSandboxStatusResponse, error) { - var ( - v1req = &criv1.PodSandboxStatusRequest{} - alpharesp = &criv1alpha2.PodSandboxStatusResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.PodSandboxStatus(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ListPodSandbox(ctx context.Context, - in *criv1alpha2.ListPodSandboxRequest) (*criv1alpha2.ListPodSandboxResponse, error) { - var ( - v1req = &criv1.ListPodSandboxRequest{} - alpharesp = &criv1alpha2.ListPodSandboxResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ListPodSandbox(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) CreateContainer(ctx context.Context, - in *criv1alpha2.CreateContainerRequest) (*criv1alpha2.CreateContainerResponse, error) { - var ( - v1req = &criv1.CreateContainerRequest{} - alpharesp = &criv1alpha2.CreateContainerResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.CreateContainer(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) StartContainer(ctx context.Context, - in *criv1alpha2.StartContainerRequest) (*criv1alpha2.StartContainerResponse, error) { - var ( - v1req = &criv1.StartContainerRequest{} - alpharesp = &criv1alpha2.StartContainerResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.StartContainer(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) StopContainer(ctx context.Context, - in *criv1alpha2.StopContainerRequest) (*criv1alpha2.StopContainerResponse, error) { - var ( - v1req = &criv1.StopContainerRequest{} - alpharesp = &criv1alpha2.StopContainerResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.StopContainer(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) RemoveContainer(ctx context.Context, - in *criv1alpha2.RemoveContainerRequest) (*criv1alpha2.RemoveContainerResponse, error) { - var ( - v1req = &criv1.RemoveContainerRequest{} - alpharesp = &criv1alpha2.RemoveContainerResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.RemoveContainer(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ListContainers(ctx context.Context, - in *criv1alpha2.ListContainersRequest) (*criv1alpha2.ListContainersResponse, error) { - var ( - v1req = &criv1.ListContainersRequest{} - alpharesp = &criv1alpha2.ListContainersResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ListContainers(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ContainerStatus(ctx context.Context, - in *criv1alpha2.ContainerStatusRequest) (*criv1alpha2.ContainerStatusResponse, error) { - var ( - v1req = &criv1.ContainerStatusRequest{} - alpharesp = &criv1alpha2.ContainerStatusResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ContainerStatus(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) UpdateContainerResources(ctx context.Context, - in *criv1alpha2.UpdateContainerResourcesRequest) (*criv1alpha2.UpdateContainerResourcesResponse, error) { - var ( - v1req = &criv1.UpdateContainerResourcesRequest{} - alpharesp = &criv1alpha2.UpdateContainerResourcesResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.UpdateContainerResources(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ReopenContainerLog(ctx context.Context, - in *criv1alpha2.ReopenContainerLogRequest) (*criv1alpha2.ReopenContainerLogResponse, error) { - var ( - v1req = &criv1.ReopenContainerLogRequest{} - alpharesp = &criv1alpha2.ReopenContainerLogResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ReopenContainerLog(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ExecSync(ctx context.Context, - in *criv1alpha2.ExecSyncRequest) (*criv1alpha2.ExecSyncResponse, error) { - var ( - v1req = &criv1.ExecSyncRequest{} - alpharesp = &criv1alpha2.ExecSyncResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ExecSync(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) Exec(ctx context.Context, - in *criv1alpha2.ExecRequest) (*criv1alpha2.ExecResponse, error) { - var ( - v1req = &criv1.ExecRequest{} - alpharesp = &criv1alpha2.ExecResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.Exec(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) Attach(ctx context.Context, - in *criv1alpha2.AttachRequest) (*criv1alpha2.AttachResponse, error) { - var ( - v1req = &criv1.AttachRequest{} - alpharesp = &criv1alpha2.AttachResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.Attach(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) PortForward(ctx context.Context, - in *criv1alpha2.PortForwardRequest) (*criv1alpha2.PortForwardResponse, error) { - var ( - v1req = &criv1.PortForwardRequest{} - alpharesp = &criv1alpha2.PortForwardResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.PortForward(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ContainerStats(ctx context.Context, - in *criv1alpha2.ContainerStatsRequest) (*criv1alpha2.ContainerStatsResponse, error) { - var ( - v1req = &criv1.ContainerStatsRequest{} - alpharesp = &criv1alpha2.ContainerStatsResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ContainerStats(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ListContainerStats(ctx context.Context, - in *criv1alpha2.ListContainerStatsRequest) (*criv1alpha2.ListContainerStatsResponse, error) { - var ( - v1req = &criv1.ListContainerStatsRequest{} - alpharesp = &criv1alpha2.ListContainerStatsResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ListContainerStats(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) PodSandboxStats(ctx context.Context, in *criv1alpha2.PodSandboxStatsRequest) (*criv1alpha2.PodSandboxStatsResponse, error) { - var ( - v1req = &criv1.PodSandboxStatsRequest{} - alpharesp = &criv1alpha2.PodSandboxStatsResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.PodSandboxStats(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) ListPodSandboxStats(ctx context.Context, in *criv1alpha2.ListPodSandboxStatsRequest) (*criv1alpha2.ListPodSandboxStatsResponse, error) { - var ( - v1req = &criv1.ListPodSandboxStatsRequest{} - alpharesp = &criv1alpha2.ListPodSandboxStatsResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.ListPodSandboxStats(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) UpdateRuntimeConfig(ctx context.Context, - in *criv1alpha2.UpdateRuntimeConfigRequest) (*criv1alpha2.UpdateRuntimeConfigResponse, error) { - var ( - v1req = &criv1.UpdateRuntimeConfigRequest{} - alpharesp = &criv1alpha2.UpdateRuntimeConfigResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.UpdateRuntimeConfig(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func (s *Server) Status(ctx context.Context, - in *criv1alpha2.StatusRequest) (*criv1alpha2.StatusResponse, error) { - var ( - v1req = &criv1.StatusRequest{} - alpharesp = &criv1alpha2.StatusResponse{} - ) - - if err := alphaReqToV1(in, v1req); err != nil { - return nil, err - } - - resp, err := s.runtime.Status(ctx, v1req) - if err != nil { - return nil, err - } - - if err := v1RespToAlpha(resp, alpharesp); err != nil { - return nil, err - } - - return alpharesp, nil -} - -func alphaReqToV1( - alpha interface{ Marshal() ([]byte, error) }, - v1req interface{ Unmarshal(_ []byte) error }, -) error { - p, err := alpha.Marshal() - if err != nil { - return err - } - - if err = v1req.Unmarshal(p); err != nil { - return err - } - return nil -} - -func v1RespToAlpha( - v1res interface{ Marshal() ([]byte, error) }, - alpha interface{ Unmarshal(_ []byte) error }, -) error { - p, err := v1res.Marshal() - if err != nil { - return err - } - - if err = alpha.Unmarshal(p); err != nil { - return err - } - return nil -} diff --git a/test/e2e/policies.test-suite/static-pools/distro.var b/test/e2e/policies.test-suite/static-pools/distro.var deleted file mode 100644 index 086245cd7..000000000 --- a/test/e2e/policies.test-suite/static-pools/distro.var +++ /dev/null @@ -1 +0,0 @@ -debian-sid diff --git a/test/functional/fake_cri_server_test.go b/test/functional/fake_cri_server_test.go index 43756a1c8..0472f4a78 100644 --- a/test/functional/fake_cri_server_test.go +++ b/test/functional/fake_cri_server_test.go @@ -277,6 +277,21 @@ func (s *fakeCriServer) GetContainerEvents(_ *criv1.GetEventsRequest, _ criv1.Ru return nil } +func (s *fakeCriServer) ListMetricDescriptors(ctx context.Context, req *criv1.ListMetricDescriptorsRequest) (*criv1.ListMetricDescriptorsResponse, error) { + response, err := s.callHandler(ctx, req, nil) + return response.(*criv1.ListMetricDescriptorsResponse), err +} + +func (s *fakeCriServer) ListPodSandboxMetrics(ctx context.Context, req *criv1.ListPodSandboxMetricsRequest) (*criv1.ListPodSandboxMetricsResponse, error) { + response, err := s.callHandler(ctx, req, nil) + return response.(*criv1.ListPodSandboxMetricsResponse), err +} + +func (s *fakeCriServer) RuntimeConfig(ctx context.Context, req *criv1.RuntimeConfigRequest) (*criv1.RuntimeConfigResponse, error) { + response, err := s.callHandler(ctx, req, nil) + return response.(*criv1.RuntimeConfigResponse), err +} + // Implementation of criv1.ImageServiceServer func (s *fakeCriServer) ListImages(ctx context.Context, req *criv1.ListImagesRequest) (*criv1.ListImagesResponse, error) {