Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple RP with scheduler backporting from 1.18.5 #1097

Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
b610806
Remove arktos cmd/kube-scheduler, pkg/scheduler, staging/src/k8s.io/k…
Sindica May 4, 2021
5686745
Copy 1.18.5 cmd/kube-scheduler, pkg/scheduler, staging/src/k8s.io/kub…
Sindica May 4, 2021
5171693
Add file modified comment for copyright header correctness
Sindica May 4, 2021
1201a8f
Fix copyright header for backported 1.18.5 scheduler code
Sindica May 4, 2021
5ff6f90
run ./hack/update-bazel.sh
Sindica May 4, 2021
b74a29e
Use arktos pkg/version/verflag
Sindica May 4, 2021
253361a
Copy 1.18 staging/src/k8s.io/component-base/metrics/prometheus folder…
Sindica May 4, 2021
0039ddb
Copy 1.18.5 staging/src/k8s.io/apimachinery/pkg/runtime/serializer/
Sindica May 4, 2021
8f85418
Copy 1.18.5 staging/src/k8s.io/csi-translation-lib folder
Sindica May 4, 2021
6f640d6
K8s PR 81946 - add cache-control headers to kube-apiserver
Sindica May 4, 2021
cf3d8cd
update-bazel & copyright header
Sindica May 5, 2021
c47fb1d
K8s PR 80681 - add options for name and namespace of leaderelection o…
Sindica May 5, 2021
ae7b0b9
K8s PR 84129 - add lenient decoding path for v1aplpha kube-scheduler …
Sindica May 5, 2021
f9b3ea2
K8s 1.18 PR 77595 Volume Scheduling Limits
Sindica May 5, 2021
754ff9d
K8s 1.18 PR 88401: refactor volume binder
Sindica May 5, 2021
b4d4505
K8s 1.18 PR 84274: feature-gate PDB informer starts
Sindica May 5, 2021
e745616
Skip PR 83394 as Arktos does not support CSINodes
Sindica May 5, 2021
0c1b1d0
K8s 1.18 PR 82465 - Move getPodPriority from /scheduler/util to /api/pod
Sindica May 5, 2021
30dd573
Code change to skip PR 85863 - renaming, no performance impact
Sindica May 6, 2021
e9805bd
Code change to skip PR 81754 - Big change not performance related.
Sindica May 6, 2021
fc6d0d0
K8s PR 83578: scheduler policy API refactoring
Sindica May 6, 2021
5d349d8
K8s 1.18 PR 86229 - remove ds controller dependency on scheduler meta…
Sindica May 6, 2021
2ddb10c
K8s 1.18 PR 84323-feat: remove suspendedDaemonPods from daemon contro…
Sindica May 6, 2021
558cf71
K8s 1.18 PR 86730: Break DS controller dependency on scheduler predic…
Sindica May 6, 2021
1ab1d4c
K8s 1.18 PR 84746 - move out const strings in pkg/scheduler/api/well_…
Sindica May 6, 2021
48663bd
K8s 1.18 PR 88435 - move well known cloud provider taints to k8s.io/c…
Sindica May 6, 2021
28d03ed
K8s 1.18 PR 87342 - move generalpredicates logic to kubelet
Sindica May 6, 2021
65744f1
K8s PR 87788 - reduce overhead of error message formatting and alloca…
Sindica May 6, 2021
f7cfeb2
K8s 1.18 PR 84294 - remove predicates.NodeInfo dependency from kubelet
Sindica May 6, 2021
8892abe
K8s 1.18 PR 82255 - volume scheduling: move metrics to a separate pac…
Sindica May 6, 2021
0dae368
K8s 1.18 PR 76968 - add Overhead to PodSpec and RuntimeClass
Sindica May 6, 2021
64b907f
update-bazel&copyright
Sindica May 6, 2021
9eeb2e6
Manual fix api-rules/violation_exceptions.list for make update
Sindica May 7, 2021
fb15fb0
K8s PR 80933 partial - make Overhead validation unconditional
Sindica May 7, 2021
1ec1a36
K8s 1.18 PR 88338 - upgrade PodOverhead to beta
Sindica May 7, 2021
63fad5f
K8s 1.19 PR 77327 - Even Pods Spread API changes
Sindica May 7, 2021
7fc8b35
K8s 1.18 PR 83474 - CSI Topology GA
Sindica May 7, 2021
411feca
K8s 1.18 PR 82329 - init check for cloud node controller
Sindica May 7, 2021
a062cdd
K8s 1.18 PR 82848 - Break out of loop when NodeHostName is found
Sindica May 7, 2021
532fe56
K8s 1.18 PR 84469 - improve error handling in cloud node controller
Sindica May 7, 2021
0c63c07
K8s 1.18 RR 81431 - promote node zone/region topology labels to GA
Sindica May 7, 2021
9d5b84a
K8s 1.18 PR 82049 - promote node instance type label to GA
Sindica May 7, 2021
894471f
K8s 1.18 PR 88230 - volume binder: simplify API
Sindica May 7, 2021
b042066
K8s 1.18 PR 79971 - add check to reduce orphaned volume
Sindica May 7, 2021
ffe5c55
K8s 1.18 PR 79696 - fix pv-controller sync check node affinity for sc…
Sindica May 7, 2021
cca6a02
K8s 1.18 PR 82683 - Refactor CSI Translation Library into a struct th…
Sindica May 7, 2021
2cc5b9a
K8s 1.18 PR 87250 - adding taint toleration error reasons
Sindica May 7, 2021
3200771
K8s 1.18 PR 80284 - fix a racing issue in client-go UpdateTransportCo…
Sindica May 7, 2021
bd18632
make update
Sindica May 7, 2021
5b55873
Pick k8s PR 79879 - [e2e] Refactor andMove node related methods to fr…
Sindica Apr 22, 2021
1312266
Pick k8s PR 81043 - Add new flag for whitelisting node taints
Sindica Apr 22, 2021
53f5322
Pick k8s PR 86983 - Remove test/e2e dependency on scheduler/predicate…
Sindica Apr 23, 2021
5cce70e
Remove scheduler/algorithm/priorities/util package
Sindica Apr 23, 2021
9b545c3
Adopting e2e to Arktos
Sindica Apr 23, 2021
22b20f6
PR 80200 - Tolerate the case if related event cannot be found
Sindica Apr 27, 2021
7272037
Code fix for Arktos customization
Sindica May 7, 2021
78c3f08
make update
Sindica May 7, 2021
cebf8d4
Temp disable certain restclient metrics for backporting difficulty
Sindica Apr 16, 2021
aeba8f6
Arktos change: set hashkey for ObjectMeta during workload generation
Sindica Apr 18, 2021
58a08da
Apply Akrtos multi-tenancy changes to backported scheduler
Sindica May 7, 2021
058aa76
Arktos changes: Partial runtime readiness support at node agent (#339…
Sindica Apr 20, 2021
630e625
Remove tenant from PodMatchesTermsNamespaceAndSelector as it is missi…
Sindica Apr 20, 2021
f2093fe
Arktos change - bug fix: scheduler node runtime readiness predicate s…
Sindica Apr 20, 2021
cf091da
Arktos changes - log QPS
Sindica May 7, 2021
cbc197f
Arktos POC changes in PR 991
Sindica Apr 20, 2021
93f0a82
Arktos POC: script change to start scale out cluster in local
Sindica Apr 20, 2021
a060901
Arktos POC: KCM/Scheduler/Kubelet code changes for scale out 2RPs
Sindica May 7, 2021
e654b3a
make update
Sindica May 8, 2021
a85de9d
Disable feature CSINodeInfo as it is introduced by 1.18.5 scheduler b…
Sindica Apr 22, 2021
aeaa5be
Manual for local scale out cluster setup.
Sindica May 8, 2021
820b498
Kubeup & Kubemark changes for multiple RPs.
Sindica May 8, 2021
971f798
Perf test changes for multiple RPs.
Sindica May 8, 2021
5942a09
make update
Sindica May 8, 2021
35c2bff
Force setting nodes to be evaluated as 500. (#1072)
Sindica Apr 22, 2021
fa52ae4
Fix perf-test clusterloader metrics - add back DeprecatedSchedulingLa…
Sindica Apr 23, 2021
0220a65
fix error: User "system:kube-scheduler" cannot create resource "events"
sonyafenge Apr 26, 2021
c9cdea8
fix scheduler error: event_recorder.go:55] Could not construct refere…
sonyafenge Apr 27, 2021
bfcf055
using gcr.io as docker registry for flannel ds
May 8, 2021
8e41552
VM start and stop with resource deallocation and unbinding from assig…
pdgetrf Nov 12, 2019
9920251
(back-port to scheduler 530) added a noschedule pod phase and removed…
pdgetrf Nov 19, 2019
bfdabed
(back-port to scheduler 530) vmPodShouldSleep change of 04013de096 (a…
May 13, 2021
7ddab19
(back-port to scheduler 530) Scheduler changes to use CommonInfo
Aug 11, 2019
96ed776
(back-port to scheduler 530) scheduler production part of commit 23cb…
May 14, 2021
446067a
Fix unit tests for scheduler common info
Aug 12, 2019
1f0d70a
Remove debug imports
Aug 12, 2019
a7c9b7f
Controller changes to use CommonInfo
Aug 20, 2019
6e5ce7f
K8s 1.18 RP 79837 - add fakes for events package, add startEventWatch…
Sindica May 11, 2021
7851f29
Copy K8s 1.18 staging/src/k8s.io/client-go/tools/leaderelection folde…
Sindica May 12, 2021
c87899a
K8s PR 80681 - add options for name and namespace of leaderelection o…
Sindica May 13, 2021
efdc05a
Multiple RP support - bug fix - clone nodeInfo with rpId
Sindica May 13, 2021
7401590
Bug fix: add missing plugin code for partial runtime readiness suppor…
Sindica May 14, 2021
f9057e0
Fix UT pkg/master/TestStorageVersionHashes - comment out csinodes in …
Sindica May 19, 2021
c6bc346
Daemonset UT fix: copied daemon_controller_test from 1.18.5. Applied …
Sindica May 19, 2021
a3ec0a5
Align arktos scheduler multi-tenancy UTs with 1.18
Sindica May 19, 2021
b7873ab
Fix UTs for multiple RP support & scheduler back porting
Sindica May 19, 2021
e82b1b4
Bugfix for backporting In-place Pod Vertical Scaling for container po…
Sindica May 20, 2021
80b8ef4
Add back mistakenly removed updatePod code during cherry-pick from ar…
Sindica May 20, 2021
57a6516
Fix arktos-up.sh
Sindica May 20, 2021
1c23149
using commonInfo in scheduler resource predicate and priority plugin
May 21, 2021
8c5b59e
add back vertical scheduling feature in scheduler code
May 21, 2021
e9c6289
fix a couple UT for vertical scheduling
May 21, 2021
3276f71
add noderuntime readiness as default filters
May 21, 2021
66b6c68
Remove outdated OWNERS
Sindica May 21, 2021
e8eee27
Pick up scheduler changes caused daemonset integraion test changes
Sindica May 26, 2021
3555873
K8s PR 82795 - graduate ScheduleDaemonSetPods to GA
Sindica May 28, 2021
125bbd6
integration test: scheduler: refactor with scheduler back-ported
May 28, 2021
50bdcee
format or build change by make update
May 28, 2021
65d1590
integration test: volume: minor refactor with RP/TP scale out feature
May 28, 2021
98dc4f9
bug fix: not to start node informaer twice for tp/rp solo(combined) c…
May 28, 2021
493a8d8
scheduler perf tests and test framework changes
May 29, 2021
2c4f073
provided test utility code of waitCachedPodsStable
May 29, 2021
f6b5ed0
integration test: scheduler: minor - import orderings and commented c…
Jun 2, 2021
3a78d24
Address CR comment: sort import, rewrite comment, go-fmt, string fmt.
Sindica Jun 2, 2021
dfeaf70
Return error when node list fail - PR comment
Sindica Jun 2, 2021
247762f
make update + copyrights correction
Sindica Jun 3, 2021
077a7b4
CR feedback changes: comment, remove obsoleted commented code.
Sindica Jun 3, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 15 additions & 3 deletions api/api-rules/violation_exceptions.list
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,9 @@ API rule violation: list_type_missing,k8s.io/api/settings/v1alpha1,PodPresetSpec
API rule violation: list_type_missing,k8s.io/api/settings/v1alpha1,PodPresetSpec,EnvFrom
API rule violation: list_type_missing,k8s.io/api/settings/v1alpha1,PodPresetSpec,VolumeMounts
API rule violation: list_type_missing,k8s.io/api/settings/v1alpha1,PodPresetSpec,Volumes
API rule violation: list_type_missing,k8s.io/api/storage/v1,CSINodeDriver,TopologyKeys
API rule violation: list_type_missing,k8s.io/api/storage/v1,CSINodeList,Items
API rule violation: list_type_missing,k8s.io/api/storage/v1,CSINodeSpec,Drivers
API rule violation: list_type_missing,k8s.io/api/storage/v1,StorageClass,AllowedTopologies
API rule violation: list_type_missing,k8s.io/api/storage/v1,StorageClass,MountOptions
API rule violation: list_type_missing,k8s.io/api/storage/v1,StorageClassList,Items
Expand Down Expand Up @@ -481,9 +484,17 @@ API rule violation: list_type_missing,k8s.io/kube-controller-manager/config/v1al
API rule violation: list_type_missing,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,TenantPartitionKubeConfigs
API rule violation: list_type_missing,k8s.io/kube-proxy/config/v1alpha1,KubeProxyConfiguration,NodePortAddresses
API rule violation: list_type_missing,k8s.io/kube-proxy/config/v1alpha1,KubeProxyIPVSConfiguration,ExcludeCIDRs
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1alpha1,KubeSchedulerConfiguration,PluginConfig
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1alpha1,PluginSet,Disabled
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1alpha1,PluginSet,Enabled
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,Extender,ManagedResources
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,ExtenderTLSConfig,CAData
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,ExtenderTLSConfig,CertData
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,ExtenderTLSConfig,KeyData
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,LabelsPresence,Labels
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,Policy,Extenders
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,Policy,Predicates
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,Policy,Priorities
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,RequestedToCapacityRatioArguments,Resources
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,RequestedToCapacityRatioArguments,Shape
API rule violation: list_type_missing,k8s.io/kube-scheduler/config/v1,ServiceAffinity,Labels
API rule violation: list_type_missing,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,ClusterDNS
API rule violation: list_type_missing,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,EnforceNodeAllocatable
API rule violation: list_type_missing,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,TLSCipherSuites
Expand Down Expand Up @@ -681,6 +692,7 @@ API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,V
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,FlexVolumePluginDir
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,PersistentVolumeRecyclerConfiguration
API rule violation: names_match,k8s.io/kube-proxy/config/v1alpha1,KubeProxyConfiguration,IPTables
API rule violation: names_match,k8s.io/kube-scheduler/config/v1,Extender,EnableHTTPS
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesDropBit
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesMasqueradeBit
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,ResolverConfig
Expand Down
4 changes: 4 additions & 0 deletions build/kazel_generated.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ tags_values_pkgs = {"openapi-gen": {
"staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1",
"staging/src/k8s.io/kube-controller-manager/config/v1alpha1",
"staging/src/k8s.io/kube-proxy/config/v1alpha1",
"staging/src/k8s.io/kube-scheduler/config/v1",
"staging/src/k8s.io/kube-scheduler/config/v1alpha1",
"staging/src/k8s.io/kube-scheduler/config/v1alpha2",
"staging/src/k8s.io/kubelet/config/v1beta1",
"staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1",
"staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2",
Expand Down Expand Up @@ -181,7 +183,9 @@ tags_pkgs_values = {"openapi-gen": {
"staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1": ["true"],
"staging/src/k8s.io/kube-controller-manager/config/v1alpha1": ["true"],
"staging/src/k8s.io/kube-proxy/config/v1alpha1": ["true"],
"staging/src/k8s.io/kube-scheduler/config/v1": ["true"],
"staging/src/k8s.io/kube-scheduler/config/v1alpha1": ["true"],
"staging/src/k8s.io/kube-scheduler/config/v1alpha2": ["true"],
"staging/src/k8s.io/kubelet/config/v1beta1": ["true"],
"staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1": ["true"],
"staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2": ["true"],
Expand Down
9 changes: 7 additions & 2 deletions cmd/cloud-controller-manager/app/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,17 @@ import (

func startCloudNodeController(ctx *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface, stopCh <-chan struct{}) (http.Handler, bool, error) {
// Start the CloudNodeController
nodeController := cloudcontrollers.NewCloudNodeController(
nodeController, err := cloudcontrollers.NewCloudNodeController(
ctx.SharedInformers.Core().V1().Nodes(),
// cloud node controller uses existing cluster role from node-controller
ctx.ClientBuilder.ClientOrDie("node-controller"),
cloud,
ctx.ComponentConfig.NodeStatusUpdateFrequency.Duration)
ctx.ComponentConfig.NodeStatusUpdateFrequency.Duration,
)
if err != nil {
klog.Warningf("failed to start cloud node controller: %s", err)
return nil, false, nil
}

go nodeController.Run(stopCh)

Expand Down
5 changes: 4 additions & 1 deletion cmd/controller-manager/app/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

// File modified by cherrypick from kubernetes on 05/06/2021
package app

import (
"github.com/prometheus/client_golang/prometheus"
"net/http"
goruntime "runtime"

"github.com/prometheus/client_golang/prometheus"

genericapifilters "k8s.io/apiserver/pkg/endpoints/filters"
apirequest "k8s.io/apiserver/pkg/endpoints/request"
apiserver "k8s.io/apiserver/pkg/server"
Expand All @@ -46,6 +48,7 @@ func BuildHandlerChain(apiHandler http.Handler, authorizationInfo *apiserver.Aut
handler = genericapifilters.WithAuthentication(handler, authenticationInfo.Authenticator, failedHandler, nil)
}
handler = genericapifilters.WithRequestInfo(handler, requestInfoResolver)
handler = genericapifilters.WithCacheControl(handler)
handler = genericfilters.WithPanicRecovery(handler)

return handler
Expand Down
1 change: 1 addition & 0 deletions cmd/kube-controller-manager/app/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ go_library(
"//staging/src/k8s.io/cloud-provider:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/component-base/cli/globalflag:go_default_library",
"//staging/src/k8s.io/csi-translation-lib:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/clientset/versioned/typed/metrics/v1beta1:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/external_metrics:go_default_library",
Expand Down
4 changes: 3 additions & 1 deletion cmd/kube-controller-manager/app/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ package app

import (
"fmt"
csitrans "k8s.io/csi-translation-lib"
"net"
"net/http"
"strings"
Expand Down Expand Up @@ -270,7 +271,8 @@ func startVolumeExpandController(ctx ControllerContext) (http.Handler, bool, err
ctx.InformerFactory.Core().V1().PersistentVolumes(),
ctx.InformerFactory.Storage().V1().StorageClasses(),
ctx.Cloud,
ProbeExpandableVolumePlugins(ctx.ComponentConfig.PersistentVolumeBinderController.VolumeConfiguration))
ProbeExpandableVolumePlugins(ctx.ComponentConfig.PersistentVolumeBinderController.VolumeConfiguration),
csitrans.New())

if expandControllerErr != nil {
return nil, true, fmt.Errorf("failed to start volume expand controller : %v", expandControllerErr)
Expand Down
15 changes: 11 additions & 4 deletions cmd/kube-controller-manager/app/policy.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/*
Copyright 2016 The Kubernetes Authors.
Copyright 2020 Authors of Arktos - file modified.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand All @@ -21,14 +22,16 @@ limitations under the License.
package app

import (
"net/http"

"k8s.io/klog"

"k8s.io/apimachinery/pkg/runtime/schema"
utilfeature "k8s.io/apiserver/pkg/util/feature"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/scale"
"k8s.io/kubernetes/pkg/controller/disruption"

"net/http"

"k8s.io/klog"
kubefeatures "k8s.io/kubernetes/pkg/features"
)

func startDisruptionController(ctx ControllerContext) (http.Handler, bool, error) {
Expand All @@ -42,6 +45,10 @@ func startDisruptionController(ctx ControllerContext) (http.Handler, bool, error
resource, group+"/"+version)
return nil, false, nil
}
if !utilfeature.DefaultFeatureGate.Enabled(kubefeatures.PodDisruptionBudget) {
klog.Infof("Refusing to start disruption because the PodDisruptionBudget feature is disabled")
return nil, false, nil
}

client := ctx.ClientBuilder.ClientOrDie("disruption-controller")
config := ctx.ClientBuilder.ConfigOrDie("disruption-controller")
Expand Down
5 changes: 2 additions & 3 deletions cmd/kube-scheduler/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ load(
"go_binary",
"go_library",
)
load("//pkg/version:def.bzl", "version_x_defs")
load("//staging/src/k8s.io/component-base/version:def.bzl", "version_x_defs")

go_binary(
name = "kube-scheduler",
Expand All @@ -20,10 +20,9 @@ go_library(
importpath = "k8s.io/kubernetes/cmd/kube-scheduler",
deps = [
"//cmd/kube-scheduler/app:go_default_library",
"//pkg/util/prometheusclientgo:go_default_library",
"//pkg/version/prometheus:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/component-base/logs:go_default_library",
"//staging/src/k8s.io/component-base/metrics/prometheus/clientgo:go_default_library",
"//vendor/github.com/spf13/pflag:go_default_library",
],
)
Expand Down
8 changes: 8 additions & 0 deletions cmd/kube-scheduler/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# See the OWNERS docs at https://go.k8s.io/owners

approvers:
- sig-scheduling-maintainers
reviewers:
- sig-scheduling
labels:
- sig/scheduling
15 changes: 9 additions & 6 deletions cmd/kube-scheduler/app/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,16 @@ go_library(
"//cmd/kube-scheduler/app/options:go_default_library",
"//pkg/api/legacyscheme:go_default_library",
"//pkg/scheduler:go_default_library",
"//pkg/scheduler/algorithmprovider:go_default_library",
"//pkg/scheduler/apis/config:go_default_library",
"//pkg/scheduler/framework/v1alpha1:go_default_library",
"//pkg/scheduler/metrics:go_default_library",
"//pkg/scheduler/profile:go_default_library",
"//pkg/util/configz:go_default_library",
"//pkg/util/flag:go_default_library",
"//pkg/version:go_default_library",
"//pkg/version/verflag:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/events/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/endpoints/filters:go_default_library",
Expand All @@ -34,12 +33,16 @@ go_library(
"//staging/src/k8s.io/apiserver/pkg/server/mux:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/server/routes:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/term:go_default_library",
"//staging/src/k8s.io/client-go/datapartition:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/tools/events:go_default_library",
"//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
"//staging/src/k8s.io/component-base/cli/globalflag:go_default_library",
"//vendor/github.com/prometheus/client_golang/prometheus:go_default_library",
"//staging/src/k8s.io/component-base/logs:go_default_library",
"//staging/src/k8s.io/component-base/metrics/legacyregistry:go_default_library",
"//staging/src/k8s.io/component-base/version:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
],
Expand Down
14 changes: 13 additions & 1 deletion cmd/kube-scheduler/app/config/BUILD
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
name = "go_default_library",
Expand All @@ -12,7 +12,9 @@ go_library(
"//staging/src/k8s.io/client-go/informers/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/typed/events/v1beta1:go_default_library",
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/tools/events:go_default_library",
"//staging/src/k8s.io/client-go/tools/leaderelection:go_default_library",
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
],
Expand All @@ -31,3 +33,13 @@ filegroup(
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

go_test(
name = "go_default_test",
srcs = ["config_test.go"],
embed = [":go_default_library"],
deps = [
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
],
)
19 changes: 11 additions & 8 deletions cmd/kube-scheduler/app/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

// File modified by backporting scheduler 1.18.5 from kubernetes on 05/04/2021
package config

import (
Expand All @@ -23,15 +24,17 @@ import (
coreinformers "k8s.io/client-go/informers/core/v1"
clientset "k8s.io/client-go/kubernetes"
v1core "k8s.io/client-go/kubernetes/typed/core/v1"
"k8s.io/client-go/kubernetes/typed/events/v1beta1"
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/events"
"k8s.io/client-go/tools/leaderelection"
"k8s.io/client-go/tools/record"
kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
)

// Config has all the context to run a Scheduler
type Config struct {
// config is the scheduler server's configuration object.
// ComponentConfig is the scheduler server's configuration object.
ComponentConfig kubeschedulerconfig.KubeSchedulerConfiguration

// LoopbackClientConfig is a config for a privileged loopback connection
Expand All @@ -43,16 +46,16 @@ type Config struct {
Authorization apiserver.AuthorizationInfo
SecureServing *apiserver.SecureServingInfo

// explictly define node informer from the resource provider client
ResourceProviderClient clientset.Interface
ResourceInformer coreinformers.NodeInformer

Client clientset.Interface
InformerFactory informers.SharedInformerFactory
PodInformer coreinformers.PodInformer
EventClient v1core.EventsGetter
Recorder record.EventRecorder
Broadcaster record.EventBroadcaster

// TODO: Remove the following after fully migrating to the new events api.
CoreEventClient v1core.EventsGetter
CoreBroadcaster record.EventBroadcaster

EventClient v1beta1.EventsGetter
Broadcaster events.EventBroadcaster

// LeaderElection is optional.
LeaderElection *leaderelection.LeaderElectionConfig
Expand Down
69 changes: 69 additions & 0 deletions cmd/kube-scheduler/app/config/config_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
Copyright 2018 The Kubernetes Authors.
Copyright 2020 Authors of Arktos - file modified.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// File modified by backporting scheduler 1.18.5 from kubernetes on 05/04/2021
package config

import (
"testing"

"github.com/google/go-cmp/cmp"
apiserver "k8s.io/apiserver/pkg/server"
)

func TestConfigComplete(t *testing.T) {
scenarios := []struct {
name string
want *Config
config *Config
}{
{
name: "SetInsecureServingName",
want: &Config{
InsecureServing: &apiserver.DeprecatedInsecureServingInfo{
Name: "healthz",
},
},
config: &Config{
InsecureServing: &apiserver.DeprecatedInsecureServingInfo{},
},
},
{
name: "SetMetricsInsecureServingName",
want: &Config{
InsecureMetricsServing: &apiserver.DeprecatedInsecureServingInfo{
Name: "metrics",
},
},
config: &Config{
InsecureMetricsServing: &apiserver.DeprecatedInsecureServingInfo{},
},
},
}

for _, scenario := range scenarios {
t.Run(scenario.name, func(t *testing.T) {
cc := scenario.config.Complete()

returnValue := cc.completedConfig.Config

if diff := cmp.Diff(scenario.want, returnValue); diff != "" {
t.Errorf("Complete(): Unexpected return value (-want, +got): %s", diff)
}
})
}
}
Loading