Skip to content

Commit 0b5755d

Browse files
committed
refactor: move scheme initial into init functions in each plugins
1 parent d7a2cf4 commit 0b5755d

File tree

6 files changed

+34
-28
lines changed

6 files changed

+34
-28
lines changed

pkg/networkaware/networkoverhead/networkoverhead.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,15 @@ const (
6161
preFilterStateKey = "PreFilter" + Name
6262
)
6363

64+
var scheme = runtime.NewScheme()
65+
66+
func init() {
67+
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
68+
69+
utilruntime.Must(agv1alpha1.AddToScheme(scheme))
70+
utilruntime.Must(ntv1alpha1.AddToScheme(scheme))
71+
}
72+
6473
// NetworkOverhead : Filter and Score nodes based on Pod's AppGroup requirements: MaxNetworkCosts requirements among Pods with dependencies
6574
type NetworkOverhead struct {
6675
client.Client
@@ -137,14 +146,6 @@ func New(obj runtime.Object, handle framework.Handle) (framework.Plugin, error)
137146
if err != nil {
138147
return nil, err
139148
}
140-
141-
scheme := runtime.NewScheme()
142-
143-
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
144-
145-
utilruntime.Must(agv1alpha1.AddToScheme(scheme))
146-
utilruntime.Must(ntv1alpha1.AddToScheme(scheme))
147-
148149
client, err := client.New(handle.KubeConfig(), client.Options{
149150
Scheme: scheme,
150151
})

pkg/networkaware/networkoverhead/networkoverhead_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import (
3232
"k8s.io/apimachinery/pkg/util/wait"
3333
"k8s.io/client-go/informers"
3434
testClientSet "k8s.io/client-go/kubernetes/fake"
35-
"k8s.io/client-go/kubernetes/scheme"
35+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3636
"k8s.io/client-go/util/workqueue"
3737
"k8s.io/kubernetes/pkg/scheduler/framework"
3838
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
@@ -488,7 +488,7 @@ func BenchmarkNetworkOverheadPreFilter(b *testing.B) {
488488

489489
for _, tt := range tests {
490490
b.Run(tt.name, func(b *testing.B) {
491-
s := scheme.Scheme
491+
s := clientgoscheme.Scheme
492492
utilruntime.Must(agv1alpha1.AddToScheme(s))
493493
utilruntime.Must(ntv1alpha1.AddToScheme(s))
494494

@@ -716,7 +716,7 @@ func TestNetworkOverheadScore(t *testing.T) {
716716
}
717717
for _, tt := range tests {
718718
t.Run(tt.name, func(t *testing.T) {
719-
s := scheme.Scheme
719+
s := clientgoscheme.Scheme
720720
utilruntime.Must(agv1alpha1.AddToScheme(s))
721721
utilruntime.Must(ntv1alpha1.AddToScheme(s))
722722

@@ -956,7 +956,7 @@ func BenchmarkNetworkOverheadScore(b *testing.B) {
956956

957957
for _, tt := range tests {
958958
b.Run(tt.name, func(b *testing.B) {
959-
s := scheme.Scheme
959+
s := clientgoscheme.Scheme
960960
utilruntime.Must(agv1alpha1.AddToScheme(s))
961961
utilruntime.Must(ntv1alpha1.AddToScheme(s))
962962

@@ -1189,7 +1189,7 @@ func TestNetworkOverheadFilter(t *testing.T) {
11891189
}
11901190
for _, tt := range tests {
11911191
t.Run(tt.name, func(t *testing.T) {
1192-
s := scheme.Scheme
1192+
s := clientgoscheme.Scheme
11931193
utilruntime.Must(agv1alpha1.AddToScheme(s))
11941194
utilruntime.Must(ntv1alpha1.AddToScheme(s))
11951195

@@ -1413,7 +1413,7 @@ func BenchmarkNetworkOverheadFilter(b *testing.B) {
14131413

14141414
for _, tt := range tests {
14151415
b.Run(tt.name, func(b *testing.B) {
1416-
s := scheme.Scheme
1416+
s := clientgoscheme.Scheme
14171417
utilruntime.Must(agv1alpha1.AddToScheme(s))
14181418
utilruntime.Must(ntv1alpha1.AddToScheme(s))
14191419

pkg/networkaware/topologicalsort/topologicalsort.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ const (
4040
Name = "TopologicalSort"
4141
)
4242

43+
var scheme = runtime.NewScheme()
44+
45+
func init() {
46+
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
47+
utilruntime.Must(agv1alpha.AddToScheme(scheme))
48+
}
49+
4350
// TopologicalSort : Sort pods based on their AppGroup and corresponding microservice dependencies
4451
type TopologicalSort struct {
4552
client.Client
@@ -73,11 +80,6 @@ func New(obj runtime.Object, handle framework.Handle) (framework.Plugin, error)
7380
return nil, err
7481
}
7582

76-
scheme := runtime.NewScheme()
77-
78-
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
79-
utilruntime.Must(agv1alpha.AddToScheme(scheme))
80-
8183
client, err := client.New(handle.KubeConfig(), client.Options{
8284
Scheme: scheme,
8385
})

pkg/networkaware/topologicalsort/topologicalsort_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
"k8s.io/apimachinery/pkg/runtime"
2929
"k8s.io/apimachinery/pkg/util/rand"
3030
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
31-
"k8s.io/client-go/kubernetes/scheme"
31+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3232
"k8s.io/client-go/util/workqueue"
3333
"k8s.io/kubernetes/pkg/scheduler/framework"
3434
st "k8s.io/kubernetes/pkg/scheduler/testing"
@@ -249,7 +249,7 @@ func TestTopologicalSortLess(t *testing.T) {
249249
t.Run(tt.name, func(t *testing.T) {
250250
pods := makePodsAppGroup(tt.deploymentNames, tt.agName, tt.podPhase)
251251

252-
s := scheme.Scheme
252+
s := clientgoscheme.Scheme
253253
utilruntime.Must(agv1alpha1.AddToScheme(s))
254254
client := fake.NewClientBuilder().
255255
WithScheme(s).
@@ -429,7 +429,7 @@ func BenchmarkTopologicalSortPlugin(b *testing.B) {
429429

430430
pods := makePodsAppGroup(tt.deploymentNames, tt.agName, tt.podPhase)
431431

432-
s := scheme.Scheme
432+
s := clientgoscheme.Scheme
433433
utilruntime.Must(agv1alpha1.AddToScheme(s))
434434
client := fake.NewClientBuilder().
435435
WithScheme(s).

pkg/noderesourcetopology/plugin.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222
v1 "k8s.io/api/core/v1"
2323
"k8s.io/apimachinery/pkg/api/resource"
2424
"k8s.io/apimachinery/pkg/runtime"
25+
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
26+
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
2527
"k8s.io/klog/v2"
2628
"k8s.io/kubernetes/pkg/scheduler/framework"
2729

@@ -38,6 +40,13 @@ const (
3840
Name = "NodeResourceTopologyMatch"
3941
)
4042

43+
var scheme = runtime.NewScheme()
44+
45+
func init() {
46+
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
47+
utilruntime.Must(topologyv1alpha2.AddToScheme(scheme))
48+
}
49+
4150
type NUMANode struct {
4251
NUMAID int
4352
Resources v1.ResourceList

pkg/noderesourcetopology/pluginhelpers.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@ import (
2323
"time"
2424

2525
corev1 "k8s.io/api/core/v1"
26-
"k8s.io/apimachinery/pkg/runtime"
27-
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
2826
"k8s.io/apimachinery/pkg/util/wait"
29-
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3027
k8scache "k8s.io/client-go/tools/cache"
3128
"k8s.io/klog/v2"
3229
"k8s.io/kubernetes/pkg/scheduler/framework"
@@ -45,9 +42,6 @@ const (
4542
)
4643

4744
func initNodeTopologyInformer(tcfg *apiconfig.NodeResourceTopologyMatchArgs, handle framework.Handle) (nrtcache.Interface, error) {
48-
scheme := runtime.NewScheme()
49-
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
50-
utilruntime.Must(topologyv1alpha2.AddToScheme(scheme))
5145
client, err := ctrlclient.New(handle.KubeConfig(), ctrlclient.Options{Scheme: scheme})
5246
if err != nil {
5347
klog.ErrorS(err, "Cannot create client for NodeTopologyResource", "kubeConfig", handle.KubeConfig())

0 commit comments

Comments
 (0)