Skip to content

Commit 896444c

Browse files
authored
Merge pull request #180 from Huang-Wei/automated-cherry-pick-of-#156-#143-#170-upstream-release-1.19
Automated cherry pick of #156: added LoadVariationRiskBalancing plugin (apis + docs) #143: NUMA aware scheduling #170: Add default value to pg status
2 parents 593952e + da71be0 commit 896444c

39 files changed

+3891
-73
lines changed

cmd/scheduler/main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ import (
2828
"sigs.k8s.io/scheduler-plugins/pkg/coscheduling"
2929
"sigs.k8s.io/scheduler-plugins/pkg/crossnodepreemption"
3030
"sigs.k8s.io/scheduler-plugins/pkg/noderesources"
31+
"sigs.k8s.io/scheduler-plugins/pkg/noderesourcetopology"
3132
"sigs.k8s.io/scheduler-plugins/pkg/podstate"
3233
"sigs.k8s.io/scheduler-plugins/pkg/qos"
34+
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/loadvariationriskbalancing"
3335
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/targetloadpacking"
3436
// Ensure scheme package is initialized.
3537
_ "sigs.k8s.io/scheduler-plugins/pkg/apis/config/scheme"
@@ -44,7 +46,9 @@ func main() {
4446
command := app.NewSchedulerCommand(
4547
app.WithPlugin(capacityscheduling.Name, capacityscheduling.New),
4648
app.WithPlugin(coscheduling.Name, coscheduling.New),
49+
app.WithPlugin(loadvariationriskbalancing.Name, loadvariationriskbalancing.New),
4750
app.WithPlugin(noderesources.AllocatableName, noderesources.NewAllocatable),
51+
app.WithPlugin(noderesourcetopology.Name, noderesourcetopology.New),
4852
app.WithPlugin(targetloadpacking.Name, targetloadpacking.New),
4953
// Sample plugins below.
5054
app.WithPlugin(crossnodepreemption.Name, crossnodepreemption.New),

cmd/scheduler/main_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
"sigs.k8s.io/scheduler-plugins/pkg/coscheduling"
3737
"sigs.k8s.io/scheduler-plugins/pkg/noderesources"
3838
"sigs.k8s.io/scheduler-plugins/pkg/qos"
39+
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/loadvariationriskbalancing"
3940
"sigs.k8s.io/scheduler-plugins/pkg/trimaran/targetloadpacking"
4041
)
4142

@@ -333,6 +334,33 @@ profiles:
333334
t.Fatal(err)
334335
}
335336

337+
// LoadVariationRiskBalancing plugin config with arguments
338+
loadVariationRiskBalancingConfigWithArgsFile := filepath.Join(tmpDir, "loadVariationRiskBalancing-with-args.yaml")
339+
if err := ioutil.WriteFile(loadVariationRiskBalancingConfigWithArgsFile, []byte(fmt.Sprintf(`
340+
apiVersion: kubescheduler.config.k8s.io/v1beta1
341+
kind: KubeSchedulerConfiguration
342+
clientConnection:
343+
kubeconfig: "%s"
344+
profiles:
345+
- plugins:
346+
score:
347+
enabled:
348+
- name: LoadVariationRiskBalancing
349+
disabled:
350+
- name: "*"
351+
pluginConfig:
352+
- name: LoadVariationRiskBalancing
353+
args:
354+
metricProvider:
355+
type: Prometheus
356+
address: http://prometheus-k8s.monitoring.svc.cluster.local:9090
357+
safeVarianceMargin: 1
358+
safeVarianceSensitivity: 2.5
359+
watcherAddress: http://deadbeef:2020
360+
`, configKubeconfig)), os.FileMode(0600)); err != nil {
361+
t.Fatal(err)
362+
}
363+
336364
// multiple profiles config
337365
multiProfilesConfig := filepath.Join(tmpDir, "multi-profiles.yaml")
338366
if err := ioutil.WriteFile(multiProfilesConfig, []byte(fmt.Sprintf(`
@@ -533,6 +561,24 @@ profiles:
533561
},
534562
},
535563
},
564+
{
565+
name: "single profile config - LoadVariationRiskBalancing with args",
566+
flags: []string{"--config", loadVariationRiskBalancingConfigWithArgsFile},
567+
registryOptions: []app.Option{app.WithPlugin(loadvariationriskbalancing.Name, loadvariationriskbalancing.New)},
568+
wantPlugins: map[string]map[string][]kubeschedulerconfig.Plugin{
569+
"default-scheduler": {
570+
"BindPlugin": {{Name: "DefaultBinder"}},
571+
"FilterPlugin": defaultPlugins["FilterPlugin"],
572+
"PostFilterPlugin": {{Name: "DefaultPreemption"}},
573+
"PreBindPlugin": {{Name: "VolumeBinding"}},
574+
"PreFilterPlugin": defaultPlugins["PreFilterPlugin"],
575+
"PreScorePlugin": defaultPlugins["PreScorePlugin"],
576+
"QueueSortPlugin": defaultPlugins["QueueSortPlugin"],
577+
"ReservePlugin": {{Name: "VolumeBinding"}},
578+
"ScorePlugin": {{Name: loadvariationriskbalancing.Name, Weight: 1}},
579+
},
580+
},
581+
},
536582
// TODO: add a multi profile test.
537583
// Ref: test "plugin config with multiple profiles" in
538584
// https://github.com/kubernetes/kubernetes/blob/master/cmd/kube-scheduler/app/server_test.go

go.mod

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,46 @@ go 1.15
55
require (
66
github.com/google/go-cmp v0.5.2
77
github.com/google/uuid v1.1.1
8+
github.com/k8stopologyawareschedwg/noderesourcetopology-api v0.0.8
89
github.com/patrickmn/go-cache v2.1.0+incompatible
910
github.com/paypal/load-watcher v0.1.1
1011
github.com/spf13/pflag v1.0.5
1112
github.com/stretchr/testify v1.5.1
12-
k8s.io/api v0.19.8
13+
k8s.io/api v0.19.9
1314
k8s.io/apiextensions-apiserver v0.0.0
14-
k8s.io/apimachinery v0.19.8
15-
k8s.io/apiserver v0.19.8
16-
k8s.io/client-go v0.19.8
17-
k8s.io/code-generator v0.19.8
18-
k8s.io/component-base v0.19.8
15+
k8s.io/apimachinery v0.19.9
16+
k8s.io/apiserver v0.19.9
17+
k8s.io/client-go v0.19.9
18+
k8s.io/code-generator v0.19.9
19+
k8s.io/component-base v0.19.9
1920
k8s.io/klog/v2 v2.2.0
2021
k8s.io/kube-aggregator v0.0.0
2122
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6
22-
k8s.io/kube-scheduler v0.19.8
23-
k8s.io/kubernetes v1.19.8
23+
k8s.io/kube-scheduler v0.19.9
24+
k8s.io/kubernetes v1.19.9
2425
)
2526

2627
replace (
27-
k8s.io/api => k8s.io/api v0.19.8
28-
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.8
29-
k8s.io/apimachinery => k8s.io/apimachinery v0.19.8
30-
k8s.io/apiserver => k8s.io/apiserver v0.19.8
31-
k8s.io/cli-runtime => k8s.io/cli-runtime v0.19.8
32-
k8s.io/client-go => k8s.io/client-go v0.19.8
33-
k8s.io/cloud-provider => k8s.io/cloud-provider v0.19.8
34-
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.19.8
35-
k8s.io/code-generator => k8s.io/code-generator v0.19.8
36-
k8s.io/component-base => k8s.io/component-base v0.19.8
37-
k8s.io/cri-api => k8s.io/cri-api v0.19.8
38-
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.19.8
39-
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.8
40-
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.19.8
41-
k8s.io/kube-proxy => k8s.io/kube-proxy v0.19.8
42-
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.19.8
43-
k8s.io/kubectl => k8s.io/kubectl v0.19.8
44-
k8s.io/kubelet => k8s.io/kubelet v0.19.8
45-
k8s.io/kubernetes => k8s.io/kubernetes v1.19.8
46-
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.19.8
47-
k8s.io/metrics => k8s.io/metrics v0.19.8
48-
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.19.8
28+
k8s.io/api => k8s.io/api v0.19.9
29+
k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.9
30+
k8s.io/apimachinery => k8s.io/apimachinery v0.19.9
31+
k8s.io/apiserver => k8s.io/apiserver v0.19.9
32+
k8s.io/cli-runtime => k8s.io/cli-runtime v0.19.9
33+
k8s.io/client-go => k8s.io/client-go v0.19.9
34+
k8s.io/cloud-provider => k8s.io/cloud-provider v0.19.9
35+
k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.19.9
36+
k8s.io/code-generator => k8s.io/code-generator v0.19.9
37+
k8s.io/component-base => k8s.io/component-base v0.19.9
38+
k8s.io/cri-api => k8s.io/cri-api v0.19.9
39+
k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.19.9
40+
k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.9
41+
k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.19.9
42+
k8s.io/kube-proxy => k8s.io/kube-proxy v0.19.9
43+
k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.19.9
44+
k8s.io/kubectl => k8s.io/kubectl v0.19.9
45+
k8s.io/kubelet => k8s.io/kubelet v0.19.9
46+
k8s.io/kubernetes => k8s.io/kubernetes v1.19.9
47+
k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.19.9
48+
k8s.io/metrics => k8s.io/metrics v0.19.9
49+
k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.19.9
4950
)

go.sum

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//
335335
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
336336
github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo=
337337
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
338-
github.com/google/cadvisor v0.37.4/go.mod h1:BalYQhwl2UV8lpB3oFssiaW8Uj6sqfFDxw5nEs9sBgU=
338+
github.com/google/cadvisor v0.37.5/go.mod h1:BalYQhwl2UV8lpB3oFssiaW8Uj6sqfFDxw5nEs9sBgU=
339339
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
340340
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
341341
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -437,6 +437,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV
437437
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
438438
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
439439
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
440+
github.com/k8stopologyawareschedwg/noderesourcetopology-api v0.0.8 h1:couInomNumuAT43qsHT1qHkdTApfYw+tVrx5v8EO+8o=
441+
github.com/k8stopologyawareschedwg/noderesourcetopology-api v0.0.8/go.mod h1:zRoCNg6LjSQewUwnpORw1VT9mP0rGNQlYy4WYaGWvHo=
440442
github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34=
441443
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
442444
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
@@ -1087,53 +1089,53 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
10871089
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
10881090
honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
10891091
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
1090-
k8s.io/api v0.19.8 h1:U50vBUCb5kc2J483mnITLKfdyoITaC7PnaOJwT7oRRM=
1091-
k8s.io/api v0.19.8/go.mod h1:9TMGoKoidvicOK0LSqj+Mj98pugQycbViPKyZHqutBc=
1092-
k8s.io/apiextensions-apiserver v0.19.8 h1:3Vb4N/QUoUmD5l+qB/N4rS1q+miNBOyFGf2U1iNuas0=
1093-
k8s.io/apiextensions-apiserver v0.19.8/go.mod h1:NX3bMN7hJgtV2ViTgEySaZElHdrqyF9vw8EpkQTmqD0=
1094-
k8s.io/apimachinery v0.19.8 h1:MaehcNcx8brsgvMsqspcI0bi22E1np/DACnjf2mhJ5A=
1095-
k8s.io/apimachinery v0.19.8/go.mod h1:6sRbGRAVY5DOCuZwB5XkqguBqpqLU6q/kOaOdk29z6Q=
1096-
k8s.io/apiserver v0.19.8 h1:otz7fC3AUcQiXjSyjjnaJw+v53iJUYlgA56m7NgM06s=
1097-
k8s.io/apiserver v0.19.8/go.mod h1:+OJE9rJCT99Qr9DYITQDCKDLxFLVi5zA8nI9KqjGshk=
1098-
k8s.io/cli-runtime v0.19.8/go.mod h1:6EzBytEa7v/Y8mzWBN3l/RbXAOYjp8RSDypWPTwrR+U=
1099-
k8s.io/client-go v0.19.8 h1:rcb2BrXb1HUBiBCoP3m/9Q2VZIMWhZUAmH49EmAyRUA=
1100-
k8s.io/client-go v0.19.8/go.mod h1:5Op2bSbK+COBz8mwH62rrRgqhA9wOcORkWZ03+GL0Ow=
1101-
k8s.io/cloud-provider v0.19.8 h1:xrVJrjqjIApSIBqVim629dAhrS8aXxEdMqKmlnAmIoA=
1102-
k8s.io/cloud-provider v0.19.8/go.mod h1:yv5SSo+sVG8ZSZtKRl+H96fXCSH4Tk6MTPQi3D4F5QA=
1103-
k8s.io/cluster-bootstrap v0.19.8 h1:ptk1ccfqgDgiiPFct6qKeBEZR0CrgzYBQH8aq9X7VxE=
1104-
k8s.io/cluster-bootstrap v0.19.8/go.mod h1:L0ZIRyH1YC+qcS6QuZTkM7MFpNUswvrfOhEpZj6lmL0=
1105-
k8s.io/code-generator v0.19.8 h1:uxctqO1/3jnMDWB4imT8unRvgCXVPX2NTm/cMFCyigY=
1106-
k8s.io/code-generator v0.19.8/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0=
1107-
k8s.io/component-base v0.19.8 h1:z5NvhzEjdjTwXWF2qMdozKXbUCEm9HXGGNp51buf4HA=
1108-
k8s.io/component-base v0.19.8/go.mod h1:cvHAT4oGxKsfcnnm0hMp3JkEMxAt5s6le943V796FXM=
1109-
k8s.io/cri-api v0.19.8/go.mod h1:PE0eMB8nJJvRigJuZEyqgYvRqL8mBowlvw0g8F/L1LY=
1110-
k8s.io/csi-translation-lib v0.19.8 h1:Ys3HH5pNoy+BffhczIrQm4IcQyNBEFk5OA9g2UnjTaM=
1111-
k8s.io/csi-translation-lib v0.19.8/go.mod h1:eaCx9SdRwTjVETWjlVCoDMli5wek46THyy7rMgSa/Ng=
1092+
k8s.io/api v0.19.9 h1:Bs6ihik0V+4WDO9eFWrCNwhSUg7dW/Y+HflDCpOfNGk=
1093+
k8s.io/api v0.19.9/go.mod h1:RcFj+riKQ1fAITdmtA6InI3LVEeKi+9LuvU7GVMeXJI=
1094+
k8s.io/apiextensions-apiserver v0.19.9 h1:0y++UDtHnHYI+mcE1pa283mRM8wjimwp7qidhz4W/Yw=
1095+
k8s.io/apiextensions-apiserver v0.19.9/go.mod h1:guuV2OxCNFYOFWW4087BTGOzwuoy3TnvhicJb7DJE5U=
1096+
k8s.io/apimachinery v0.19.9 h1:ToBt9RaKt5BYD2uHNgom2O0MqvfXnEYimcxqCzZIkXA=
1097+
k8s.io/apimachinery v0.19.9/go.mod h1:6sRbGRAVY5DOCuZwB5XkqguBqpqLU6q/kOaOdk29z6Q=
1098+
k8s.io/apiserver v0.19.9 h1:OhY9DtSdeZocqOcJ4q3SmReal7ZWcLZGjmejWn0Vvug=
1099+
k8s.io/apiserver v0.19.9/go.mod h1:g6zpD+kcZFlO73pktPWRvL0tUGqj7/KaOowmRk8EpGg=
1100+
k8s.io/cli-runtime v0.19.9/go.mod h1:07LOB3fgVkeTNkfvVjQcpi7scFpRLrnJ2Gxdcm8yECQ=
1101+
k8s.io/client-go v0.19.9 h1:Bs0ZnQOWnRYvOlAsT7tDro1j1B6ZaVX/O3C/k6EoaGE=
1102+
k8s.io/client-go v0.19.9/go.mod h1:8GArfSmN7MwTidMGcLGM3QTYa7uekI/B6IOrM0s1XPs=
1103+
k8s.io/cloud-provider v0.19.9 h1:5rBLgFE5vFL0BtHHIqUo/fO9TAR118+uR9DsXrBpig8=
1104+
k8s.io/cloud-provider v0.19.9/go.mod h1:pqrCcex7oV1JMiX/agLD6hnSwb6S5PiMnNnp7ibpfCw=
1105+
k8s.io/cluster-bootstrap v0.19.9 h1:SPqDne92zArbUjAw5fEmCpQaZGpFtpvaoeKvn0LEPw8=
1106+
k8s.io/cluster-bootstrap v0.19.9/go.mod h1:JWNQvbF/QL3xMcUQEfrP/gHgmZ4ht+t06EIIfdiUlGQ=
1107+
k8s.io/code-generator v0.19.9 h1:nj1gVb/4P4C53hnBtdTaxZDlJ1jEkrQnAy+n4BYGVHs=
1108+
k8s.io/code-generator v0.19.9/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0=
1109+
k8s.io/component-base v0.19.9 h1:GOjvFCDgTRfLz6v3xshO0QbqWJN5nAkJzypc2BIfxOw=
1110+
k8s.io/component-base v0.19.9/go.mod h1:x9UmpImvXgVry1s9/hINgLz6iGBYUGvy3Xm7KZh1nnI=
1111+
k8s.io/cri-api v0.19.9/go.mod h1:PE0eMB8nJJvRigJuZEyqgYvRqL8mBowlvw0g8F/L1LY=
1112+
k8s.io/csi-translation-lib v0.19.9 h1:seNG7UUFlE+F8CeZthQbOzL62+IfOVRjxZ5K1woZe60=
1113+
k8s.io/csi-translation-lib v0.19.9/go.mod h1:0/r8tlgREii0RYyF9rXCOPdoWYbv7HP8MRajib73zks=
11121114
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
11131115
k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14 h1:t4L10Qfx/p7ASH3gXCdIUtPbbIuegCoUJf3TMSFekjw=
11141116
k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
11151117
k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949KozGrM=
11161118
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
11171119
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
11181120
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
1119-
k8s.io/kube-aggregator v0.19.8 h1:baFlZWZIK1LHI2yyz/nec/umrUp4a4vTDVaoWxxRQLw=
1120-
k8s.io/kube-aggregator v0.19.8/go.mod h1:OB0LNZHEkyxtfqnUD1CNwdXWoxnFK1SPRNfsuZK5rrM=
1121-
k8s.io/kube-controller-manager v0.19.8/go.mod h1:1MIpEJvnqruutQJryTtwGbSbCLyGpQHJEjjv7TfZjuw=
1121+
k8s.io/kube-aggregator v0.19.9 h1:f6iSxF5mXPYnaHTGrXVfhAVHM01b/c8lCUu79Ew9k0w=
1122+
k8s.io/kube-aggregator v0.19.9/go.mod h1:gkzzTwkaUVeTgtOpa3rv07FY+P9gL05+oj/9/JWRYB4=
1123+
k8s.io/kube-controller-manager v0.19.9/go.mod h1:4l0JFNcaYiQhQvUsqH9HxzmQwAUTUE0nKHRKcqH+Mvg=
11221124
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ=
11231125
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
1124-
k8s.io/kube-proxy v0.19.8/go.mod h1:x6nlHp/eCML9ikhuBNA8hLQVKxjj7i3QgFO+6TRdDEM=
1125-
k8s.io/kube-scheduler v0.19.8 h1:x7T1JD99VliZAfamg8czAiiN8Shq4vfbOk6UUlVCNDM=
1126-
k8s.io/kube-scheduler v0.19.8/go.mod h1:u851EkWByPQltqa0II+YC04C2VlWMxUPb+pE6TR8YZ4=
1127-
k8s.io/kubectl v0.19.8 h1:mN2nePnFGFrT4Tr/rDnG0gWCM1eVyYVCmzonKjyCt7w=
1128-
k8s.io/kubectl v0.19.8/go.mod h1:RQHMLHBnSksyWZ4VOgRbfXFO9aY8sDm0lbzT9z61FsU=
1129-
k8s.io/kubelet v0.19.8/go.mod h1:gpKSJ4oQtolPf+bQ2qIAqc0DExqqBiq+hNNoN/X+9Ik=
1130-
k8s.io/kubernetes v1.19.8 h1:tE/DyH5Dtn3RDfKAgvyTypIbInWFLeWET4yQdS85+tI=
1131-
k8s.io/kubernetes v1.19.8/go.mod h1:6R5K7prywmLDOVGBGd50Ig6lKkgGYaiUT7/r3GZXhsM=
1132-
k8s.io/legacy-cloud-providers v0.19.8 h1:FJ+Yy+AoK8c7n5TqK8W2ic9H1/v3ph9yYqSBo6PZoTU=
1133-
k8s.io/legacy-cloud-providers v0.19.8/go.mod h1:H0Ektscfn89IxWfFgtG5ZP9SPLMPd3RMSJVGK1ZzLXU=
1134-
k8s.io/metrics v0.19.8 h1:xvXqL3DDlXKkYy1m78ENVfYBCMX/KmnqcIhUL35fW8E=
1135-
k8s.io/metrics v0.19.8/go.mod h1:fCUndpkzeiquAa4FCZd5ir2UBqs0sHEljVc+3Gmc0BQ=
1136-
k8s.io/sample-apiserver v0.19.8/go.mod h1:1dK09G4B9HELehE1/vj+xnxj4YZVdxYoSKHz0db9vZs=
1126+
k8s.io/kube-proxy v0.19.9/go.mod h1:2t1Cmkz+hGC9e2Z1vugNN98h/x3SVd000Gr5JnQH8tw=
1127+
k8s.io/kube-scheduler v0.19.9 h1:3X9Lq3Sx/oEOPzD+lhqq78nN44Oc/3oOjn9S5gf/Pz0=
1128+
k8s.io/kube-scheduler v0.19.9/go.mod h1:e704tQ5x6FeGkJWoBDibyq87adlWxFZSCBOjhodrS08=
1129+
k8s.io/kubectl v0.19.9 h1:EMZBy+JrY40dq/4RBR0KN2VZ/akRwvF4UNdkgzFVVVE=
1130+
k8s.io/kubectl v0.19.9/go.mod h1:0wmGV957E0Ql2D9AH+3GzuPwsPz9rS8qFVs/mYxLnw8=
1131+
k8s.io/kubelet v0.19.9/go.mod h1:5zNe1cRdshzpKmg8Ig4CAcqcQMvKCuzZxe5voQM1i4w=
1132+
k8s.io/kubernetes v1.19.9 h1:P+54dH6wdW6axpc2fC3s9MZmX11SO3/hEvQP0rNA6Os=
1133+
k8s.io/kubernetes v1.19.9/go.mod h1:rb3bmBEps/XmoUkNbE3H5vsMihMy+Rt5IA1K9KLK4DM=
1134+
k8s.io/legacy-cloud-providers v0.19.9 h1:A41oKjQkLF+ua8ru9WNMv4NhYTn6GzewbK0ZlhXJTaE=
1135+
k8s.io/legacy-cloud-providers v0.19.9/go.mod h1:ze8lk2d21ZBzNQiKVajiSLyP4praAaFDTuH3oiclwwU=
1136+
k8s.io/metrics v0.19.9 h1:RZepXOnj4gYC8DGoxt1tqNJz9E02x+GVrp00+veA/So=
1137+
k8s.io/metrics v0.19.9/go.mod h1:xhSkzVBl7kxiHnIyhi7yuxX22+hYsPV2e50ZM3N5dW0=
1138+
k8s.io/sample-apiserver v0.19.9/go.mod h1:HvifKA/cRE85AyPH5jtbrFzRchXqy3HYdxegTDD4Cls=
11371139
k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q=
11381140
k8s.io/utils v0.0.0-20200414100711-2df71ebbae66/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
11391141
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=
@@ -1145,8 +1147,8 @@ modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs
11451147
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
11461148
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
11471149
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
1148-
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9 h1:rusRLrDhjBp6aYtl9sGEvQJr6faoHoDLd0YcUBTZguI=
1149-
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.9/go.mod h1:dzAXnQbTRyDlZPJX2SUPEqvnB+j7AJjtlox7PEwigU0=
1150+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY=
1151+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
11501152
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
11511153
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 h1:YXTMot5Qz/X1iBRJhAt+vI+HVttY0WkSqqhKxQ0xVbA=
11521154
sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=

manifests/coscheduling/crd.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,16 @@ spec:
4343
type: string
4444
scheduled:
4545
type: integer
46+
default: 0
4647
running:
4748
type: integer
49+
default: 0
4850
succeeded:
4951
type: integer
52+
default: 0
5053
failed:
5154
type: integer
55+
default: 0
5256
scheduleStartTime:
5357
type: string
5458
format: date-time
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: topo-aware-scheduler
5+
namespace: kube-system
6+
---
7+
apiVersion: rbac.authorization.k8s.io/v1
8+
kind: ClusterRole
9+
metadata:
10+
name: noderesourcetoplogy-handler
11+
rules:
12+
- apiGroups: ["topology.node.k8s.io"]
13+
resources: ["noderesourcetopologies"]
14+
verbs: ["*"]
15+
- apiGroups: [""]
16+
resources: ["nodes"]
17+
verbs: ["get", "list", "patch"]
18+
- apiGroups: [""]
19+
resources: ["pods"]
20+
verbs: ["get","list","watch","update"]
21+
- apiGroups: ["rbac.authorization.k8s.io"]
22+
resources: ["*"]
23+
verbs: ["*"]
24+
---
25+
apiVersion: rbac.authorization.k8s.io/v1
26+
kind: ClusterRoleBinding
27+
metadata:
28+
name: topo-aware-scheduler-as-kube-scheduler
29+
subjects:
30+
- kind: ServiceAccount
31+
name: topo-aware-scheduler
32+
namespace: kube-system
33+
roleRef:
34+
kind: ClusterRole
35+
name: noderesourcetoplogy-handler
36+
apiGroup: rbac.authorization.k8s.io
37+
---
38+
apiVersion: rbac.authorization.k8s.io/v1
39+
kind: ClusterRoleBinding
40+
metadata:
41+
name: my-scheduler-as-volume-scheduler
42+
subjects:
43+
- kind: ServiceAccount
44+
name: my-scheduler
45+
namespace: kube-system
46+
roleRef:
47+
kind: ClusterRole
48+
name: system:volume-scheduler
49+
apiGroup: rbac.authorization.k8s.io
50+
---
51+
apiVersion: rbac.authorization.k8s.io/v1
52+
kind: RoleBinding
53+
metadata:
54+
name: topo-aware-scheduler-as-kube-scheduler
55+
namespace: kube-system
56+
subjects:
57+
- kind: ServiceAccount
58+
name: topo-aware-scheduler
59+
namespace: kube-system
60+
roleRef:
61+
kind: Role
62+
name: extension-apiserver-authentication-reader
63+
apiGroup: rbac.authorization.k8s.io
64+
---
65+
apiVersion: rbac.authorization.k8s.io/v1
66+
kind: ClusterRoleBinding
67+
metadata:
68+
name: noderesourcetoplogy
69+
namespace: kube-system
70+
subjects:
71+
- kind: User
72+
name: system:kube-scheduler
73+
namespace: kube-system
74+
apiGroup: rbac.authorization.k8s.io
75+
roleRef:
76+
kind: ClusterRole
77+
name: noderesourcetoplogy-handler
78+
apiGroup: rbac.authorization.k8s.io

0 commit comments

Comments
 (0)