Skip to content

Commit 007f7ae

Browse files
authored
Merge pull request kubernetes#89912 from ahg-g/ahg-fwk
Move scheduler's NodeInfo and Listers types to framework pkg
2 parents f21bd9e + a5d8172 commit 007f7ae

File tree

98 files changed

+837
-1053
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+837
-1053
lines changed

pkg/scheduler/BUILD

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,8 @@ go_test(
8080
"//pkg/scheduler/internal/cache:go_default_library",
8181
"//pkg/scheduler/internal/cache/fake:go_default_library",
8282
"//pkg/scheduler/internal/queue:go_default_library",
83-
"//pkg/scheduler/listers:go_default_library",
8483
"//pkg/scheduler/profile:go_default_library",
8584
"//pkg/scheduler/testing:go_default_library",
86-
"//pkg/scheduler/types:go_default_library",
8785
"//staging/src/k8s.io/api/core/v1:go_default_library",
8886
"//staging/src/k8s.io/api/events/v1beta1:go_default_library",
8987
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
@@ -127,12 +125,10 @@ filegroup(
127125
"//pkg/scheduler/internal/heap:all-srcs",
128126
"//pkg/scheduler/internal/parallelize:all-srcs",
129127
"//pkg/scheduler/internal/queue:all-srcs",
130-
"//pkg/scheduler/listers:all-srcs",
131128
"//pkg/scheduler/metrics:all-srcs",
132129
"//pkg/scheduler/nodeinfo:all-srcs",
133130
"//pkg/scheduler/profile:all-srcs",
134131
"//pkg/scheduler/testing:all-srcs",
135-
"//pkg/scheduler/types:all-srcs",
136132
"//pkg/scheduler/util:all-srcs",
137133
],
138134
tags = ["automanaged"],

pkg/scheduler/core/BUILD

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@ go_library(
1515
"//pkg/scheduler/internal/cache:go_default_library",
1616
"//pkg/scheduler/internal/parallelize:go_default_library",
1717
"//pkg/scheduler/internal/queue:go_default_library",
18-
"//pkg/scheduler/listers:go_default_library",
1918
"//pkg/scheduler/metrics:go_default_library",
2019
"//pkg/scheduler/profile:go_default_library",
21-
"//pkg/scheduler/types:go_default_library",
2220
"//pkg/scheduler/util:go_default_library",
2321
"//staging/src/k8s.io/api/core/v1:go_default_library",
2422
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
@@ -60,13 +58,11 @@ go_test(
6058
"//pkg/scheduler/framework/plugins/volumerestrictions:go_default_library",
6159
"//pkg/scheduler/framework/plugins/volumezone:go_default_library",
6260
"//pkg/scheduler/framework/v1alpha1:go_default_library",
61+
"//pkg/scheduler/framework/v1alpha1/fake:go_default_library",
6362
"//pkg/scheduler/internal/cache:go_default_library",
6463
"//pkg/scheduler/internal/queue:go_default_library",
65-
"//pkg/scheduler/listers:go_default_library",
66-
"//pkg/scheduler/listers/fake:go_default_library",
6764
"//pkg/scheduler/profile:go_default_library",
6865
"//pkg/scheduler/testing:go_default_library",
69-
"//pkg/scheduler/types:go_default_library",
7066
"//pkg/scheduler/util:go_default_library",
7167
"//staging/src/k8s.io/api/core/v1:go_default_library",
7268
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",

pkg/scheduler/core/extender.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ import (
3030
restclient "k8s.io/client-go/rest"
3131
extenderv1 "k8s.io/kube-scheduler/extender/v1"
3232
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
33-
"k8s.io/kubernetes/pkg/scheduler/listers"
34-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
33+
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
3534
)
3635

3736
const (
@@ -77,7 +76,7 @@ type SchedulerExtender interface {
7776
ProcessPreemption(
7877
pod *v1.Pod,
7978
nodeToVictims map[*v1.Node]*extenderv1.Victims,
80-
nodeInfos listers.NodeInfoLister) (map[*v1.Node]*extenderv1.Victims, error)
79+
nodeInfos framework.NodeInfoLister) (map[*v1.Node]*extenderv1.Victims, error)
8180

8281
// SupportsPreemption returns if the scheduler extender support preemption or not.
8382
SupportsPreemption() bool
@@ -214,7 +213,7 @@ func (h *HTTPExtender) SupportsPreemption() bool {
214213
func (h *HTTPExtender) ProcessPreemption(
215214
pod *v1.Pod,
216215
nodeToVictims map[*v1.Node]*extenderv1.Victims,
217-
nodeInfos listers.NodeInfoLister,
216+
nodeInfos framework.NodeInfoLister,
218217
) (map[*v1.Node]*extenderv1.Victims, error) {
219218
var (
220219
result extenderv1.ExtenderPreemptionResult
@@ -258,7 +257,7 @@ func (h *HTTPExtender) ProcessPreemption(
258257
// such as UIDs and names, to object pointers.
259258
func (h *HTTPExtender) convertToNodeToVictims(
260259
nodeNameToMetaVictims map[string]*extenderv1.MetaVictims,
261-
nodeInfos listers.NodeInfoLister,
260+
nodeInfos framework.NodeInfoLister,
262261
) (map[*v1.Node]*extenderv1.Victims, error) {
263262
nodeToVictims := map[*v1.Node]*extenderv1.Victims{}
264263
for nodeName, metaVictims := range nodeNameToMetaVictims {
@@ -287,7 +286,7 @@ func (h *HTTPExtender) convertToNodeToVictims(
287286
// and extender, i.e. when the pod is not found in nodeInfo.Pods.
288287
func (h *HTTPExtender) convertPodUIDToPod(
289288
metaPod *extenderv1.MetaPod,
290-
nodeInfo *schedulertypes.NodeInfo) (*v1.Pod, error) {
289+
nodeInfo *framework.NodeInfo) (*v1.Pod, error) {
291290
for _, pod := range nodeInfo.Pods() {
292291
if string(pod.UID) == metaPod.UID {
293292
return pod, nil

pkg/scheduler/core/extender_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,8 @@ import (
4040
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
4141
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
4242
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
43-
"k8s.io/kubernetes/pkg/scheduler/listers"
4443
"k8s.io/kubernetes/pkg/scheduler/profile"
4544
st "k8s.io/kubernetes/pkg/scheduler/testing"
46-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
4745
"k8s.io/kubernetes/pkg/scheduler/util"
4846
)
4947

@@ -143,7 +141,7 @@ type FakeExtender struct {
143141
ignorable bool
144142

145143
// Cached node information for fake extender
146-
cachedNodeNameToInfo map[string]*schedulertypes.NodeInfo
144+
cachedNodeNameToInfo map[string]*framework.NodeInfo
147145
}
148146

149147
func (f *FakeExtender) Name() string {
@@ -162,7 +160,7 @@ func (f *FakeExtender) SupportsPreemption() bool {
162160
func (f *FakeExtender) ProcessPreemption(
163161
pod *v1.Pod,
164162
nodeToVictims map[*v1.Node]*extenderv1.Victims,
165-
nodeInfos listers.NodeInfoLister,
163+
nodeInfos framework.NodeInfoLister,
166164
) (map[*v1.Node]*extenderv1.Victims, error) {
167165
nodeToVictimsCopy := map[*v1.Node]*extenderv1.Victims{}
168166
// We don't want to change the original nodeToVictims

pkg/scheduler/core/generic_scheduler.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ import (
4141
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
4242
"k8s.io/kubernetes/pkg/scheduler/internal/parallelize"
4343
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
44-
"k8s.io/kubernetes/pkg/scheduler/listers"
4544
"k8s.io/kubernetes/pkg/scheduler/metrics"
4645
"k8s.io/kubernetes/pkg/scheduler/profile"
47-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
4846
"k8s.io/kubernetes/pkg/scheduler/util"
4947
utiltrace "k8s.io/utils/trace"
5048
)
@@ -524,7 +522,7 @@ func (g *genericScheduler) findNodesThatPassExtenders(pod *v1.Pod, filtered []*v
524522
// addNominatedPods adds pods with equal or greater priority which are nominated
525523
// to run on the node. It returns 1) whether any pod was added, 2) augmented cycleState,
526524
// 3) augmented nodeInfo.
527-
func (g *genericScheduler) addNominatedPods(ctx context.Context, prof *profile.Profile, pod *v1.Pod, state *framework.CycleState, nodeInfo *schedulertypes.NodeInfo) (bool, *framework.CycleState, *schedulertypes.NodeInfo, error) {
525+
func (g *genericScheduler) addNominatedPods(ctx context.Context, prof *profile.Profile, pod *v1.Pod, state *framework.CycleState, nodeInfo *framework.NodeInfo) (bool, *framework.CycleState, *framework.NodeInfo, error) {
528526
if g.schedulingQueue == nil || nodeInfo == nil || nodeInfo.Node() == nil {
529527
// This may happen only in tests.
530528
return false, state, nodeInfo, nil
@@ -564,7 +562,7 @@ func (g *genericScheduler) podPassesFiltersOnNode(
564562
prof *profile.Profile,
565563
state *framework.CycleState,
566564
pod *v1.Pod,
567-
info *schedulertypes.NodeInfo,
565+
info *framework.NodeInfo,
568566
) (bool, *framework.Status, error) {
569567
var status *framework.Status
570568

@@ -856,7 +854,7 @@ func (g *genericScheduler) selectNodesForPreemption(
856854
prof *profile.Profile,
857855
state *framework.CycleState,
858856
pod *v1.Pod,
859-
potentialNodes []*schedulertypes.NodeInfo,
857+
potentialNodes []*framework.NodeInfo,
860858
pdbs []*policy.PodDisruptionBudget,
861859
) (map[*v1.Node]*extenderv1.Victims, error) {
862860
nodeToVictims := map[*v1.Node]*extenderv1.Victims{}
@@ -946,7 +944,7 @@ func (g *genericScheduler) selectVictimsOnNode(
946944
prof *profile.Profile,
947945
state *framework.CycleState,
948946
pod *v1.Pod,
949-
nodeInfo *schedulertypes.NodeInfo,
947+
nodeInfo *framework.NodeInfo,
950948
pdbs []*policy.PodDisruptionBudget,
951949
) ([]*v1.Pod, int, bool) {
952950
var potentialVictims []*v1.Pod
@@ -1034,8 +1032,8 @@ func (g *genericScheduler) selectVictimsOnNode(
10341032

10351033
// nodesWherePreemptionMightHelp returns a list of nodes with failed predicates
10361034
// that may be satisfied by removing pods from the node.
1037-
func nodesWherePreemptionMightHelp(nodes []*schedulertypes.NodeInfo, fitErr *FitError) []*schedulertypes.NodeInfo {
1038-
var potentialNodes []*schedulertypes.NodeInfo
1035+
func nodesWherePreemptionMightHelp(nodes []*framework.NodeInfo, fitErr *FitError) []*framework.NodeInfo {
1036+
var potentialNodes []*framework.NodeInfo
10391037
for _, node := range nodes {
10401038
name := node.Node().Name
10411039
// We reply on the status by each plugin - 'Unschedulable' or 'UnschedulableAndUnresolvable'
@@ -1055,7 +1053,7 @@ func nodesWherePreemptionMightHelp(nodes []*schedulertypes.NodeInfo, fitErr *Fit
10551053
// considered for preemption.
10561054
// We look at the node that is nominated for this pod and as long as there are
10571055
// terminating pods on the node, we don't consider this for preempting more pods.
1058-
func podEligibleToPreemptOthers(pod *v1.Pod, nodeInfos listers.NodeInfoLister, enableNonPreempting bool) bool {
1056+
func podEligibleToPreemptOthers(pod *v1.Pod, nodeInfos framework.NodeInfoLister, enableNonPreempting bool) bool {
10591057
if enableNonPreempting && pod.Spec.PreemptionPolicy != nil && *pod.Spec.PreemptionPolicy == v1.PreemptNever {
10601058
klog.V(5).Infof("Pod %v/%v is not eligible for preemption because it has a preemptionPolicy of %v", pod.Namespace, pod.Name, v1.PreemptNever)
10611059
return false

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,11 @@ import (
5454
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
5555
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumezone"
5656
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
57+
fakeframework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1/fake"
5758
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
5859
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
59-
fakelisters "k8s.io/kubernetes/pkg/scheduler/listers/fake"
6060
"k8s.io/kubernetes/pkg/scheduler/profile"
6161
st "k8s.io/kubernetes/pkg/scheduler/testing"
62-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
6362
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
6463
)
6564

@@ -77,7 +76,7 @@ func (pl *trueFilterPlugin) Name() string {
7776
}
7877

7978
// Filter invoked at the filter extension point.
80-
func (pl *trueFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
79+
func (pl *trueFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
8180
return nil
8281
}
8382

@@ -94,7 +93,7 @@ func (pl *falseFilterPlugin) Name() string {
9493
}
9594

9695
// Filter invoked at the filter extension point.
97-
func (pl *falseFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
96+
func (pl *falseFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
9897
return framework.NewStatus(framework.Unschedulable, ErrReasonFake)
9998
}
10099

@@ -111,7 +110,7 @@ func (pl *matchFilterPlugin) Name() string {
111110
}
112111

113112
// Filter invoked at the filter extension point.
114-
func (pl *matchFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
113+
func (pl *matchFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
115114
node := nodeInfo.Node()
116115
if node == nil {
117116
return framework.NewStatus(framework.Error, "node not found")
@@ -135,7 +134,7 @@ func (pl *noPodsFilterPlugin) Name() string {
135134
}
136135

137136
// Filter invoked at the filter extension point.
138-
func (pl *noPodsFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
137+
func (pl *noPodsFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
139138
if len(nodeInfo.Pods()) == 0 {
140139
return nil
141140
}
@@ -160,7 +159,7 @@ func (pl *fakeFilterPlugin) Name() string {
160159
}
161160

162161
// Filter invoked at the filter extension point.
163-
func (pl *fakeFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
162+
func (pl *fakeFilterPlugin) Filter(_ context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
164163
atomic.AddInt32(&pl.numFilterCalled, 1)
165164

166165
if returnCode, ok := pl.failedNodeReturnCodeMap[nodeInfo.Node().Name]; ok {
@@ -808,7 +807,7 @@ func TestGenericScheduler(t *testing.T) {
808807

809808
var pvcs []v1.PersistentVolumeClaim
810809
pvcs = append(pvcs, test.pvcs...)
811-
pvcLister := fakelisters.PersistentVolumeClaimLister(pvcs)
810+
pvcLister := fakeframework.PersistentVolumeClaimLister(pvcs)
812811

813812
scheduler := NewGenericScheduler(
814813
cache,
@@ -2028,9 +2027,9 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
20282027
fitErr := FitError{
20292028
FilteredNodesStatuses: test.nodesStatuses,
20302029
}
2031-
var nodeInfos []*schedulertypes.NodeInfo
2030+
var nodeInfos []*framework.NodeInfo
20322031
for _, n := range makeNodeList(nodeNames) {
2033-
ni := schedulertypes.NewNodeInfo()
2032+
ni := framework.NewNodeInfo()
20342033
ni.SetNode(n)
20352034
nodeInfos = append(nodeInfos, ni)
20362035
}
@@ -2371,7 +2370,7 @@ func TestPreempt(t *testing.T) {
23712370
for _, pod := range test.pods {
23722371
cache.AddPod(pod)
23732372
}
2374-
cachedNodeInfoMap := map[string]*schedulertypes.NodeInfo{}
2373+
cachedNodeInfoMap := map[string]*framework.NodeInfo{}
23752374
nodeNames := defaultNodeNames
23762375
if len(test.nodeNames) != 0 {
23772376
nodeNames = test.nodeNames
@@ -2391,7 +2390,7 @@ func TestPreempt(t *testing.T) {
23912390
nodeNames[i] = node.Name
23922391

23932392
// Set nodeInfo to extenders to mock extenders' cache for preemption.
2394-
cachedNodeInfo := schedulertypes.NewNodeInfo()
2393+
cachedNodeInfo := framework.NewNodeInfo()
23952394
cachedNodeInfo.SetNode(node)
23962395
cachedNodeInfoMap[node.Name] = cachedNodeInfo
23972396
}
@@ -2570,8 +2569,8 @@ func TestFairEvaluationForNodes(t *testing.T) {
25702569
}
25712570
}
25722571

2573-
func nodesToNodeInfos(nodes []*v1.Node, snapshot *internalcache.Snapshot) ([]*schedulertypes.NodeInfo, error) {
2574-
var nodeInfos []*schedulertypes.NodeInfo
2572+
func nodesToNodeInfos(nodes []*v1.Node, snapshot *internalcache.Snapshot) ([]*framework.NodeInfo, error) {
2573+
var nodeInfos []*framework.NodeInfo
25752574
for _, n := range nodes {
25762575
nodeInfo, err := snapshot.NodeInfos().Get(n.Name)
25772576
if err != nil {

pkg/scheduler/factory_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ import (
5353
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
5454
internalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
5555
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
56-
"k8s.io/kubernetes/pkg/scheduler/listers"
5756
"k8s.io/kubernetes/pkg/scheduler/profile"
58-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
5957
)
6058

6159
const (
@@ -538,7 +536,7 @@ func (f *fakeExtender) IsIgnorable() bool {
538536
func (f *fakeExtender) ProcessPreemption(
539537
pod *v1.Pod,
540538
nodeToVictims map[*v1.Node]*extenderv1.Victims,
541-
nodeInfos listers.NodeInfoLister,
539+
nodeInfos framework.NodeInfoLister,
542540
) (map[*v1.Node]*extenderv1.Victims, error) {
543541
return nil, nil
544542
}
@@ -593,6 +591,6 @@ func (t *TestPlugin) ScoreExtensions() framework.ScoreExtensions {
593591
return nil
594592
}
595593

596-
func (t *TestPlugin) Filter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *schedulertypes.NodeInfo) *framework.Status {
594+
func (t *TestPlugin) Filter(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeInfo *framework.NodeInfo) *framework.Status {
597595
return nil
598596
}

pkg/scheduler/framework/plugins/defaultpodtopologyspread/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ go_library(
88
deps = [
99
"//pkg/scheduler/framework/plugins/helper:go_default_library",
1010
"//pkg/scheduler/framework/v1alpha1:go_default_library",
11-
"//pkg/scheduler/types:go_default_library",
1211
"//pkg/util/node:go_default_library",
1312
"//staging/src/k8s.io/api/core/v1:go_default_library",
1413
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",

pkg/scheduler/framework/plugins/defaultpodtopologyspread/default_pod_topology_spread.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"k8s.io/apimachinery/pkg/runtime"
2626
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/helper"
2727
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
28-
schedulertypes "k8s.io/kubernetes/pkg/scheduler/types"
2928
utilnode "k8s.io/kubernetes/pkg/util/node"
3029
)
3130

@@ -196,7 +195,7 @@ func New(_ *runtime.Unknown, handle framework.FrameworkHandle) (framework.Plugin
196195
}
197196

198197
// countMatchingPods counts pods based on namespace and matching all selectors
199-
func countMatchingPods(namespace string, selector labels.Selector, nodeInfo *schedulertypes.NodeInfo) int {
198+
func countMatchingPods(namespace string, selector labels.Selector, nodeInfo *framework.NodeInfo) int {
200199
if len(nodeInfo.Pods()) == 0 || selector.Empty() {
201200
return 0
202201
}

pkg/scheduler/framework/plugins/imagelocality/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ go_library(
77
visibility = ["//visibility:public"],
88
deps = [
99
"//pkg/scheduler/framework/v1alpha1:go_default_library",
10-
"//pkg/scheduler/types:go_default_library",
1110
"//pkg/util/parsers:go_default_library",
1211
"//staging/src/k8s.io/api/core/v1:go_default_library",
1312
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",

0 commit comments

Comments
 (0)