Skip to content

Commit 68e40f8

Browse files
committed
fix some bugs, integration test passed.
TODO: add unit tests Signed-off-by: KunWuLuan <[email protected]>
1 parent 9bcdb7d commit 68e40f8

File tree

12 files changed

+458
-88
lines changed

12 files changed

+458
-88
lines changed

cmd/scheduler/main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"sigs.k8s.io/scheduler-plugins/pkg/podstate"
3434
"sigs.k8s.io/scheduler-plugins/pkg/preemptiontoleration"
3535
"sigs.k8s.io/scheduler-plugins/pkg/qos"
36+
"sigs.k8s.io/scheduler-plugins/pkg/resourcepolicy"
3637
"sigs.k8s.io/scheduler-plugins/pkg/sysched"
3738
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/loadvariationriskbalancing"
3839
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/lowriskovercommitment"
@@ -60,6 +61,7 @@ func main() {
6061
app.WithPlugin(lowriskovercommitment.Name, lowriskovercommitment.New),
6162
app.WithPlugin(sysched.Name, sysched.New),
6263
app.WithPlugin(peaks.Name, peaks.New),
64+
app.WithPlugin(resourcepolicy.Name, resourcepolicy.New),
6365
// Sample plugins below.
6466
// app.WithPlugin(crossnodepreemption.Name, crossnodepreemption.New),
6567
app.WithPlugin(podstate.Name, podstate.New),

go.mod

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
module sigs.k8s.io/scheduler-plugins
22

3-
go 1.24.2
3+
go 1.23.0
44

55
require (
6-
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250429133120-0b5462735cdc
6+
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250727121406-048ef1326d94
77
github.com/containers/common v0.46.0
88
github.com/diktyo-io/appgroup-api v1.0.1-alpha
99
github.com/diktyo-io/networktopology-api v1.0.1-alpha
1010
github.com/dustin/go-humanize v1.0.1
1111
github.com/go-logr/logr v1.4.2
12-
github.com/google/go-cmp v0.6.0
12+
github.com/google/go-cmp v0.7.0
1313
github.com/k8stopologyawareschedwg/noderesourcetopology-api v0.1.2
1414
github.com/k8stopologyawareschedwg/podfingerprint v0.2.2
1515
github.com/patrickmn/go-cache v2.1.0+incompatible
1616
github.com/paypal/load-watcher v0.2.4
1717
github.com/spf13/pflag v1.0.5
1818
github.com/stretchr/testify v1.9.0
1919
gonum.org/v1/gonum v0.12.0
20-
k8s.io/api v0.33.0
21-
k8s.io/apimachinery v0.33.0
20+
k8s.io/api v0.33.1
21+
k8s.io/apimachinery v0.33.1
2222
k8s.io/apiserver v0.32.5
23-
k8s.io/client-go v0.32.5
23+
k8s.io/client-go v0.33.1
2424
k8s.io/code-generator v0.33.0
2525
k8s.io/component-base v0.32.5
2626
k8s.io/component-helpers v0.32.5
2727
k8s.io/klog/v2 v2.130.1
28-
k8s.io/kube-scheduler v0.31.8
29-
k8s.io/kubernetes v1.31.8
28+
k8s.io/kube-scheduler v0.32.5
29+
k8s.io/kubernetes v1.32.5
3030
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
31-
sigs.k8s.io/controller-runtime v0.19.2
31+
sigs.k8s.io/controller-runtime v0.20.4
3232
sigs.k8s.io/logtools v0.9.0
3333
sigs.k8s.io/security-profiles-operator v0.4.0
3434
sigs.k8s.io/structured-merge-diff/v4 v4.6.0
@@ -64,7 +64,7 @@ require (
6464
github.com/go-openapi/swag v0.23.0 // indirect
6565
github.com/gogo/protobuf v1.3.2 // indirect
6666
github.com/golang/protobuf v1.5.4 // indirect
67-
github.com/google/btree v1.0.1 // indirect
67+
github.com/google/btree v1.1.3 // indirect
6868
github.com/google/cel-go v0.22.0 // indirect
6969
github.com/google/gnostic-models v0.6.9 // indirect
7070
github.com/google/gofuzz v1.2.0 // indirect
@@ -112,12 +112,12 @@ require (
112112
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
113113
golang.org/x/mod v0.21.0 // indirect
114114
golang.org/x/net v0.38.0 // indirect
115-
golang.org/x/oauth2 v0.23.0 // indirect
115+
golang.org/x/oauth2 v0.27.0 // indirect
116116
golang.org/x/sync v0.12.0 // indirect
117117
golang.org/x/sys v0.31.0 // indirect
118118
golang.org/x/term v0.30.0 // indirect
119119
golang.org/x/text v0.23.0 // indirect
120-
golang.org/x/time v0.7.0 // indirect
120+
golang.org/x/time v0.9.0 // indirect
121121
golang.org/x/tools v0.26.0 // indirect
122122
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
123123
google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7 // indirect
@@ -129,11 +129,11 @@ require (
129129
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
130130
gopkg.in/yaml.v2 v2.4.0 // indirect
131131
gopkg.in/yaml.v3 v3.0.1 // indirect
132-
k8s.io/apiextensions-apiserver v0.31.8 // indirect
132+
k8s.io/apiextensions-apiserver v0.32.1 // indirect
133133
k8s.io/cloud-provider v0.32.5 // indirect
134134
k8s.io/controller-manager v0.32.5 // indirect
135-
k8s.io/csi-translation-lib v0.31.8 // indirect
136-
k8s.io/dynamic-resource-allocation v0.31.8 // indirect
135+
k8s.io/csi-translation-lib v0.32.5 // indirect
136+
k8s.io/dynamic-resource-allocation v0.32.5 // indirect
137137
k8s.io/gengo/v2 v2.0.0-20250207200755-1244d31929d7 // indirect
138138
k8s.io/kms v0.32.5 // indirect
139139
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
@@ -167,10 +167,8 @@ replace (
167167
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.32.5
168168
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.32.5
169169
k8s.io/kube-proxy => k8s.io/kube-proxy v0.32.5
170-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.32.5
171170
k8s.io/kubectl => k8s.io/kubectl v0.32.5
172171
k8s.io/kubelet => k8s.io/kubelet v0.32.5
173-
k8s.io/kubernetes => k8s.io/kubernetes v1.32.5
174172
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.31.8
175173
k8s.io/metrics => k8s.io/metrics v0.32.5
176174
k8s.io/mount-utils => k8s.io/mount-utils v0.32.5
@@ -183,3 +181,7 @@ replace k8s.io/externaljwt => k8s.io/externaljwt v0.32.5
183181
replace k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.32.5
184182

185183
replace k8s.io/sample-controller => k8s.io/sample-controller v0.32.5
184+
185+
replace k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.32.5
186+
187+
replace k8s.io/kubernetes => k8s.io/kubernetes v1.32.5

go.sum

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1342,8 +1342,8 @@ github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbi
13421342
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
13431343
github.com/JeffAshton/win_pdh v0.0.0-20161109143554-76bb4ee9f0ab/go.mod h1:3VYc5hodBMJ5+l/7J4xAyMeuM2PNuepvHlGs8yilUCA=
13441344
github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk=
1345-
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250429133120-0b5462735cdc h1:tQ0XOIup39emiznGpxgV+PQAeqKvr0DeLfZf9ReqQfc=
1346-
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250429133120-0b5462735cdc/go.mod h1:6G5vMUV/xm+IEwNrNaxvZZr6WiqAHq+o+YsU0TiwXO0=
1345+
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250727121406-048ef1326d94 h1:XQQCH4Wf2n627vWxr7+uIKuHwzlQ5MFLZN/tD+jzwU4=
1346+
github.com/KunWuLuan/resourcepolicyapi v0.0.0-20250727121406-048ef1326d94/go.mod h1:kPff4zxO6pT4b/nJQYmMM2giPbVmi6FiE5pQTS8Ux34=
13471347
github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE=
13481348
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
13491349
github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA=
@@ -1908,8 +1908,9 @@ github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEW
19081908
github.com/gomarkdown/markdown v0.0.0-20210514010506-3b9f47219fe7/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
19091909
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
19101910
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
1911-
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
19121911
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
1912+
github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
1913+
github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
19131914
github.com/google/cadvisor v0.51.0/go.mod h1:czGE/c/P/i0QFpVNKTFrIEzord9Y10YfpwuaSWXELc0=
19141915
github.com/google/cel-go v0.22.0 h1:b3FJZxpiv1vTMo2/5RDUqAHPxkT8mmMfJIrq1llbf7g=
19151916
github.com/google/cel-go v0.22.0/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8=
@@ -1933,8 +1934,9 @@ github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
19331934
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
19341935
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
19351936
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1936-
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
19371937
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1938+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
1939+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
19381940
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
19391941
github.com/google/go-github/v33 v33.0.0/go.mod h1:GMdDnVZY/2TsWgp/lkYnpSAh6TrzhANBBwm6k6TTEXg=
19401942
github.com/google/go-intervals v0.0.2/go.mod h1:MkaR3LNRfeKLPmqgJYs4E66z5InYjmCjbbr4TQlcT6Y=
@@ -2309,8 +2311,9 @@ github.com/onsi/ginkgo/v2 v2.17.1/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3Hig
23092311
github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc=
23102312
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
23112313
github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI=
2312-
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
23132314
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
2315+
github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg=
2316+
github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
23142317
github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
23152318
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
23162319
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
@@ -2342,8 +2345,9 @@ github.com/onsi/gomega v1.33.0/go.mod h1:+925n5YtiFsLzzafLUHzVMBpvvRAzrydIBiSIxj
23422345
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
23432346
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
23442347
github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc=
2345-
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
23462348
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
2349+
github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw=
2350+
github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
23472351
github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
23482352
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
23492353
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
@@ -3077,8 +3081,9 @@ golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5H
30773081
golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
30783082
golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
30793083
golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
3080-
golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
30813084
golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
3085+
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
3086+
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
30823087
golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw=
30833088
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
30843089
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -3336,8 +3341,9 @@ golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxb
33363341
golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
33373342
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
33383343
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
3339-
golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
33403344
golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
3345+
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
3346+
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
33413347
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
33423348
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
33433349
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -4101,8 +4107,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcp
41014107
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
41024108
sigs.k8s.io/controller-runtime v0.9.2/go.mod h1:TxzMCHyEUpaeuOiZx/bIdc2T81vfs/aKdvJt9wuu0zk=
41034109
sigs.k8s.io/controller-runtime v0.10.3/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY=
4104-
sigs.k8s.io/controller-runtime v0.19.2 h1:3sPrF58XQEPzbE8T81TN6selQIMGbtYwuaJ6eDssDF8=
4105-
sigs.k8s.io/controller-runtime v0.19.2/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
4110+
sigs.k8s.io/controller-runtime v0.20.4 h1:X3c+Odnxz+iPTRobG4tp092+CvBU9UK0t/bRf+n0DGU=
4111+
sigs.k8s.io/controller-runtime v0.20.4/go.mod h1:xg2XB0K5ShQzAgsoujxuKN4LNXR2LfwwHsPj7Iaw+XY=
41064112
sigs.k8s.io/controller-tools v0.2.4/go.mod h1:m/ztfQNocGYBgTTCmFdnK94uVvgxeZeE3LtJvd/jIzA=
41074113
sigs.k8s.io/controller-tools v0.7.0/go.mod h1:bpBAo0VcSDDLuWt47evLhMLPxRPxMDInTEH/YbdeMK0=
41084114
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
apiVersion: apiextensions.k8s.io/v1
3+
kind: CustomResourceDefinition
4+
metadata:
5+
annotations:
6+
controller-gen.kubebuilder.io/version: v0.18.1-0.20250610061224-4cb7e87f3b45
7+
name: resourcepolicies.scheduling.x-k8s.io
8+
spec:
9+
group: scheduling.x-k8s.io
10+
names:
11+
kind: ResourcePolicy
12+
listKind: ResourcePolicyList
13+
plural: resourcepolicies
14+
shortNames:
15+
- rsp
16+
singular: resourcepolicy
17+
scope: Namespaced
18+
versions:
19+
- name: v1alpha1
20+
schema:
21+
openAPIV3Schema:
22+
properties:
23+
apiVersion:
24+
description: |-
25+
APIVersion defines the versioned schema of this representation of an object.
26+
Servers should convert recognized schemas to the latest internal value, and
27+
may reject unrecognized values.
28+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
29+
type: string
30+
kind:
31+
description: |-
32+
Kind is a string value representing the REST resource this object represents.
33+
Servers may infer this from the endpoint the client submits requests to.
34+
Cannot be updated.
35+
In CamelCase.
36+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
37+
type: string
38+
metadata:
39+
type: object
40+
spec:
41+
properties:
42+
matchLabelKeys:
43+
items:
44+
type: string
45+
type: array
46+
selector:
47+
additionalProperties:
48+
type: string
49+
type: object
50+
units:
51+
items:
52+
properties:
53+
max:
54+
format: int32
55+
type: integer
56+
maxResources:
57+
additionalProperties:
58+
anyOf:
59+
- type: integer
60+
- type: string
61+
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
62+
x-kubernetes-int-or-string: true
63+
description: ResourceList is a set of (resource name, quantity)
64+
pairs.
65+
type: object
66+
nodeSelector:
67+
additionalProperties:
68+
type: string
69+
type: object
70+
podAnnotations:
71+
additionalProperties:
72+
type: string
73+
type: object
74+
podLabels:
75+
additionalProperties:
76+
type: string
77+
type: object
78+
type: object
79+
nullable: true
80+
type: array
81+
x-kubernetes-list-type: atomic
82+
type: object
83+
status:
84+
properties:
85+
lastUpdateTime:
86+
format: date-time
87+
type: string
88+
pods:
89+
items:
90+
format: int64
91+
type: integer
92+
type: array
93+
type: object
94+
required:
95+
- spec
96+
type: object
97+
served: true
98+
storage: true
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: nginx-deployment
5+
spec:
6+
replicas: 1
7+
selector:
8+
matchLabels:
9+
app: nginx
10+
template:
11+
metadata:
12+
labels:
13+
app: nginx
14+
spec:
15+
schedulerName: custom-scheduler
16+
containers:
17+
- name: nginx-container
18+
resources:
19+
limits:
20+
cpu: 50m
21+
memory: 50Mi
22+
image: nginx:latest
23+
ports:
24+
- containerPort: 80
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: scheduling.x-k8s.io/v1alpha1
2+
kind: ResourcePolicy
3+
metadata:
4+
name: resourcepolicy-sample
5+
namespace: default
6+
spec:
7+
selector:
8+
app: nginx
9+
units:
10+
- max: 1
11+
nodeSelector:
12+
unit: first
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: kubescheduler.config.k8s.io/v1
2+
kind: KubeSchedulerConfiguration
3+
leaderElection:
4+
leaderElect: false
5+
clientConnection:
6+
kubeconfig: /home/kunwu1997/.kube/config
7+
profiles:
8+
- schedulerName: custom-scheduler
9+
plugins:
10+
multiPoint:
11+
enabled:
12+
- name: ResourcePolicy

0 commit comments

Comments
 (0)