Merge pull request #100644 from Huang-Wei/sched-fwk-config

Surface kube config in scheduler framework handle
This commit is contained in:
Kubernetes Prow Robot
2021-04-12 19:12:49 -07:00
committed by GitHub
11 changed files with 55 additions and 14 deletions

View File

@@ -29,6 +29,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/client-go/informers"
clientset "k8s.io/client-go/kubernetes"
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/events"
"k8s.io/component-helpers/scheduling/corev1"
"k8s.io/klog/v2"
@@ -91,6 +92,7 @@ type frameworkImpl struct {
permitPlugins []framework.PermitPlugin
clientSet clientset.Interface
kubeConfig *restclient.Config
eventRecorder events.EventRecorder
informerFactory informers.SharedInformerFactory
@@ -141,6 +143,7 @@ func (f *frameworkImpl) Extenders() []framework.Extender {
type frameworkOptions struct {
clientSet clientset.Interface
kubeConfig *restclient.Config
eventRecorder events.EventRecorder
informerFactory informers.SharedInformerFactory
snapshotSharedLister framework.SharedLister
@@ -163,6 +166,13 @@ func WithClientSet(clientSet clientset.Interface) Option {
}
}
// WithKubeConfig sets kubeConfig for the scheduling frameworkImpl.
func WithKubeConfig(kubeConfig *restclient.Config) Option {
return func(o *frameworkOptions) {
o.kubeConfig = kubeConfig
}
}
// WithEventRecorder sets clientSet for the scheduling frameworkImpl.
func WithEventRecorder(recorder events.EventRecorder) Option {
return func(o *frameworkOptions) {
@@ -253,6 +263,7 @@ func NewFramework(r Registry, profile *config.KubeSchedulerProfile, opts ...Opti
pluginNameToWeightMap: make(map[string]int),
waitingPods: newWaitingPodsMap(),
clientSet: options.clientSet,
kubeConfig: options.kubeConfig,
eventRecorder: options.eventRecorder,
informerFactory: options.informerFactory,
metricsRecorder: options.metricsRecorder,
@@ -1148,6 +1159,11 @@ func (f *frameworkImpl) ClientSet() clientset.Interface {
return f.clientSet
}
// KubeConfig returns a kubernetes config.
func (f *frameworkImpl) KubeConfig() *restclient.Config {
return f.kubeConfig
}
// EventRecorder returns an event recorder.
func (f *frameworkImpl) EventRecorder() events.EventRecorder {
return f.eventRecorder