Convert k8s.io/kubelet/pkg/apis/podresources from gogo to protoc

Use standard protoc for the pod resources instead of gogo.

Part of kubernetes#96564

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
This commit is contained in:
Sascha Grunert
2025-07-17 13:33:46 +02:00
parent b2d7149090
commit 532d48fe6a
14 changed files with 1436 additions and 5244 deletions

View File

@@ -38,6 +38,7 @@ type v1PodResourcesServer struct {
memoryProvider MemoryProvider
dynamicResourcesProvider DynamicResourcesProvider
useActivePods bool
podresourcesv1.UnsafePodResourcesListerServer
}
// NewV1PodResourcesServer returns a PodResourcesListerServer which lists pods provided by the PodsProvider

View File

@@ -58,12 +58,12 @@ func TestListPodResourcesV1(t *testing.T) {
memory := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
{
MemoryType: "hugepages-1Gi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
}
@@ -94,7 +94,7 @@ func TestListPodResourcesV1(t *testing.T) {
{
ClaimName: "claim-name",
ClaimNamespace: "default",
ClaimResources: []*podresourcesapi.ClaimResource{{CDIDevices: pluginCDIDevices, DriverName: draDriverName, PoolName: poolName, DeviceName: deviceName}},
ClaimResources: []*podresourcesapi.ClaimResource{{CdiDevices: pluginCDIDevices, DriverName: draDriverName, PoolName: poolName, DeviceName: deviceName}},
},
}
@@ -245,8 +245,8 @@ func TestListPodResourcesV1(t *testing.T) {
if err != nil {
t.Errorf("want err = %v, got %q", nil, err)
}
if diff := cmp.Diff(tc.expectedResponse, resp, cmpopts.EquateEmpty()); diff != "" {
t.Fatal(diff)
if tc.expectedResponse.String() != resp.String() {
t.Fatalf("want: %+v; got: %+v", tc.expectedResponse, resp)
}
})
}
@@ -310,12 +310,12 @@ func TestListPodResourcesUsesOnlyActivePodsV1(t *testing.T) {
mems := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
{
MemoryType: "hugepages-1Gi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
}
@@ -429,12 +429,12 @@ func TestListPodResourcesWithInitContainersV1(t *testing.T) {
memory := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
{
MemoryType: "hugepages-1Gi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
}
@@ -594,8 +594,8 @@ func TestListPodResourcesWithInitContainersV1(t *testing.T) {
if err != nil {
t.Errorf("want err = %v, got %q", nil, err)
}
if diff := cmp.Diff(tc.expectedResponse, resp, cmpopts.EquateEmpty()); diff != "" {
t.Fatal(diff)
if tc.expectedResponse.String() != resp.String() {
t.Fatalf("want: %+v; got: %+v", tc.expectedResponse, resp)
}
})
}
@@ -661,7 +661,7 @@ func TestAllocatableResources(t *testing.T) {
allMemory := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 5368709120,
Size: 5368709120,
Topology: &podresourcesapi.TopologyInfo{
Nodes: []*podresourcesapi.NUMANode{
{
@@ -672,7 +672,7 @@ func TestAllocatableResources(t *testing.T) {
},
{
MemoryType: "hugepages-2Mi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{
Nodes: []*podresourcesapi.NUMANode{
{
@@ -683,7 +683,7 @@ func TestAllocatableResources(t *testing.T) {
},
{
MemoryType: "memory",
Size_: 5368709120,
Size: 5368709120,
Topology: &podresourcesapi.TopologyInfo{
Nodes: []*podresourcesapi.NUMANode{
{
@@ -694,7 +694,7 @@ func TestAllocatableResources(t *testing.T) {
},
{
MemoryType: "hugepages-2Mi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{
Nodes: []*podresourcesapi.NUMANode{
{
@@ -885,8 +885,8 @@ func TestAllocatableResources(t *testing.T) {
t.Errorf("want err = %v, got %q", nil, err)
}
if diff := cmp.Diff(tc.expectedAllocatableResourcesResponse, resp, cmpopts.EquateEmpty()); diff != "" {
t.Fatal(diff)
if tc.expectedAllocatableResourcesResponse.String() != resp.String() {
t.Fatalf("want: %+v; got: %+v", tc.expectedAllocatableResourcesResponse, resp)
}
})
}
@@ -915,12 +915,12 @@ func TestGetPodResourcesV1(t *testing.T) {
memory := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
{
MemoryType: "hugepages-1Gi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
}
@@ -947,7 +947,7 @@ func TestGetPodResourcesV1(t *testing.T) {
{
ClaimName: "claim-name",
ClaimNamespace: "default",
ClaimResources: []*podresourcesapi.ClaimResource{{CDIDevices: pluginCDIDevices}},
ClaimResources: []*podresourcesapi.ClaimResource{{CdiDevices: pluginCDIDevices}},
},
}
@@ -1059,8 +1059,8 @@ func TestGetPodResourcesV1(t *testing.T) {
if err != tc.err {
t.Errorf("want exit = %v, got %v", tc.err, err)
} else {
if diff := cmp.Diff(tc.expectedResponse, resp, cmpopts.EquateEmpty()); diff != "" {
t.Fatal(diff)
if tc.expectedResponse.String() != resp.String() {
t.Fatalf("want: %+v; got: %+v", tc.expectedResponse, resp)
}
}
}
@@ -1094,12 +1094,12 @@ func TestGetPodResourcesWithInitContainersV1(t *testing.T) {
memory := []*podresourcesapi.ContainerMemory{
{
MemoryType: "memory",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
{
MemoryType: "hugepages-1Gi",
Size_: 1073741824,
Size: 1073741824,
Topology: &podresourcesapi.TopologyInfo{Nodes: []*podresourcesapi.NUMANode{{ID: numaID}}},
},
}
@@ -1251,8 +1251,8 @@ func TestGetPodResourcesWithInitContainersV1(t *testing.T) {
if err != nil {
t.Errorf("want err = %v, got %q", nil, err)
}
if diff := cmp.Diff(tc.expectedResponse, resp, cmpopts.EquateEmpty()); diff != "" {
t.Fatal(diff)
if tc.expectedResponse.String() != resp.String() {
t.Fatalf("want: %+v; got: %+v", tc.expectedResponse, resp)
}
})
}

View File

@@ -21,7 +21,7 @@ import (
"k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubelet/pkg/apis/podresources/v1"
v1 "k8s.io/kubelet/pkg/apis/podresources/v1"
"k8s.io/kubelet/pkg/apis/podresources/v1alpha1"
)
@@ -29,6 +29,7 @@ import (
type v1alpha1PodResourcesServer struct {
podsProvider PodsProvider
devicesProvider DevicesProvider
v1alpha1.UnsafePodResourcesListerServer
}
// NewV1alpha1PodResourcesServer returns a PodResourcesListerServer which lists pods provided by the PodsProvider

View File

@@ -985,7 +985,7 @@ func (cm *containerManagerImpl) GetDynamicResources(pod *v1.Pod, container *v1.C
cdiDevices = append(cdiDevices, &podresourcesapi.CDIDevice{Name: cdiDeviceID})
}
resources := &podresourcesapi.ClaimResource{
CDIDevices: cdiDevices,
CdiDevices: cdiDevices,
DriverName: driverName,
PoolName: device.PoolName,
DeviceName: device.DeviceName,
@@ -1017,7 +1017,7 @@ func containerMemoryFromBlock(blocks []memorymanagerstate.Block) []*podresources
for _, b := range blocks {
containerMemory := podresourcesapi.ContainerMemory{
MemoryType: string(b.Type),
Size_: b.Size,
Size: b.Size,
Topology: &podresourcesapi.TopologyInfo{
Nodes: []*podresourcesapi.NUMANode{},
},