Surface kube config in scheduler framework handle
This commit is contained in:
@@ -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"
|
||||
@@ -92,6 +93,7 @@ type frameworkImpl struct {
|
||||
permitPlugins []framework.PermitPlugin
|
||||
|
||||
clientSet clientset.Interface
|
||||
kubeConfig *restclient.Config
|
||||
eventRecorder events.EventRecorder
|
||||
informerFactory informers.SharedInformerFactory
|
||||
|
||||
@@ -142,6 +144,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
|
||||
@@ -164,6 +167,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) {
|
||||
@@ -254,6 +264,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,
|
||||
@@ -1149,6 +1160,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
|
||||
|
Reference in New Issue
Block a user