mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Surface kube config in scheduler framework handle
This commit is contained in:
		@@ -41,6 +41,7 @@ type Config struct {
 | 
				
			|||||||
	SecureServing          *apiserver.SecureServingInfo
 | 
						SecureServing          *apiserver.SecureServingInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Client          clientset.Interface
 | 
						Client          clientset.Interface
 | 
				
			||||||
 | 
						KubeConfig      *restclient.Config
 | 
				
			||||||
	InformerFactory informers.SharedInformerFactory
 | 
						InformerFactory informers.SharedInformerFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	//lint:ignore SA1019 this deprecated field still needs to be used for now. It will be removed once the migration is done.
 | 
						//lint:ignore SA1019 this deprecated field still needs to be used for now. It will be removed once the migration is done.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -289,6 +289,7 @@ func (o *Options) Config() (*schedulerappconfig.Config, error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	c.Client = client
 | 
						c.Client = client
 | 
				
			||||||
 | 
						c.KubeConfig = kubeConfig
 | 
				
			||||||
	c.InformerFactory = scheduler.NewInformerFactory(client, 0)
 | 
						c.InformerFactory = scheduler.NewInformerFactory(client, 0)
 | 
				
			||||||
	c.LeaderElection = leaderElectionConfig
 | 
						c.LeaderElection = leaderElectionConfig
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -323,6 +323,7 @@ func Setup(ctx context.Context, opts *options.Options, outOfTreeRegistryOptions
 | 
				
			|||||||
		cc.InformerFactory,
 | 
							cc.InformerFactory,
 | 
				
			||||||
		recorderFactory,
 | 
							recorderFactory,
 | 
				
			||||||
		ctx.Done(),
 | 
							ctx.Done(),
 | 
				
			||||||
 | 
							scheduler.WithKubeConfig(cc.KubeConfig),
 | 
				
			||||||
		scheduler.WithProfiles(cc.ComponentConfig.Profiles...),
 | 
							scheduler.WithProfiles(cc.ComponentConfig.Profiles...),
 | 
				
			||||||
		scheduler.WithAlgorithmSource(cc.ComponentConfig.AlgorithmSource),
 | 
							scheduler.WithAlgorithmSource(cc.ComponentConfig.AlgorithmSource),
 | 
				
			||||||
		scheduler.WithPercentageOfNodesToScore(cc.ComponentConfig.PercentageOfNodesToScore),
 | 
							scheduler.WithPercentageOfNodesToScore(cc.ComponentConfig.PercentageOfNodesToScore),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,6 +31,7 @@ import (
 | 
				
			|||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
	corelisters "k8s.io/client-go/listers/core/v1"
 | 
						corelisters "k8s.io/client-go/listers/core/v1"
 | 
				
			||||||
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
	"k8s.io/klog/v2"
 | 
						"k8s.io/klog/v2"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
 | 
						"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
 | 
				
			||||||
	schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
						schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
				
			||||||
@@ -58,6 +59,7 @@ type Binder interface {
 | 
				
			|||||||
// construct a new scheduler.
 | 
					// construct a new scheduler.
 | 
				
			||||||
type Configurator struct {
 | 
					type Configurator struct {
 | 
				
			||||||
	client     clientset.Interface
 | 
						client     clientset.Interface
 | 
				
			||||||
 | 
						kubeConfig *restclient.Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	recorderFactory profile.RecorderFactory
 | 
						recorderFactory profile.RecorderFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -137,6 +139,7 @@ func (c *Configurator) create() (*Scheduler, error) {
 | 
				
			|||||||
	clusterEventMap := make(map[framework.ClusterEvent]sets.String)
 | 
						clusterEventMap := make(map[framework.ClusterEvent]sets.String)
 | 
				
			||||||
	profiles, err := profile.NewMap(c.profiles, c.registry, c.recorderFactory,
 | 
						profiles, err := profile.NewMap(c.profiles, c.registry, c.recorderFactory,
 | 
				
			||||||
		frameworkruntime.WithClientSet(c.client),
 | 
							frameworkruntime.WithClientSet(c.client),
 | 
				
			||||||
 | 
							frameworkruntime.WithKubeConfig(c.kubeConfig),
 | 
				
			||||||
		frameworkruntime.WithInformerFactory(c.informerFactory),
 | 
							frameworkruntime.WithInformerFactory(c.informerFactory),
 | 
				
			||||||
		frameworkruntime.WithSnapshotSharedLister(c.nodeInfoSnapshot),
 | 
							frameworkruntime.WithSnapshotSharedLister(c.nodeInfoSnapshot),
 | 
				
			||||||
		frameworkruntime.WithRunAllFilters(c.alwaysCheckAllPredicates),
 | 
							frameworkruntime.WithRunAllFilters(c.alwaysCheckAllPredicates),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,6 +31,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
	"k8s.io/client-go/tools/events"
 | 
						"k8s.io/client-go/tools/events"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
						"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/internal/parallelize"
 | 
						"k8s.io/kubernetes/pkg/scheduler/internal/parallelize"
 | 
				
			||||||
@@ -588,6 +589,9 @@ type Handle interface {
 | 
				
			|||||||
	// ClientSet returns a kubernetes clientSet.
 | 
						// ClientSet returns a kubernetes clientSet.
 | 
				
			||||||
	ClientSet() clientset.Interface
 | 
						ClientSet() clientset.Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// KubeConfig returns the raw kube config.
 | 
				
			||||||
 | 
						KubeConfig() *restclient.Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// EventRecorder returns an event recorder.
 | 
						// EventRecorder returns an event recorder.
 | 
				
			||||||
	EventRecorder() events.EventRecorder
 | 
						EventRecorder() events.EventRecorder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
	"k8s.io/client-go/tools/events"
 | 
						"k8s.io/client-go/tools/events"
 | 
				
			||||||
	"k8s.io/component-helpers/scheduling/corev1"
 | 
						"k8s.io/component-helpers/scheduling/corev1"
 | 
				
			||||||
	"k8s.io/klog/v2"
 | 
						"k8s.io/klog/v2"
 | 
				
			||||||
@@ -92,6 +93,7 @@ type frameworkImpl struct {
 | 
				
			|||||||
	permitPlugins         []framework.PermitPlugin
 | 
						permitPlugins         []framework.PermitPlugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	clientSet       clientset.Interface
 | 
						clientSet       clientset.Interface
 | 
				
			||||||
 | 
						kubeConfig      *restclient.Config
 | 
				
			||||||
	eventRecorder   events.EventRecorder
 | 
						eventRecorder   events.EventRecorder
 | 
				
			||||||
	informerFactory informers.SharedInformerFactory
 | 
						informerFactory informers.SharedInformerFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -142,6 +144,7 @@ func (f *frameworkImpl) Extenders() []framework.Extender {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type frameworkOptions struct {
 | 
					type frameworkOptions struct {
 | 
				
			||||||
	clientSet            clientset.Interface
 | 
						clientSet            clientset.Interface
 | 
				
			||||||
 | 
						kubeConfig           *restclient.Config
 | 
				
			||||||
	eventRecorder        events.EventRecorder
 | 
						eventRecorder        events.EventRecorder
 | 
				
			||||||
	informerFactory      informers.SharedInformerFactory
 | 
						informerFactory      informers.SharedInformerFactory
 | 
				
			||||||
	snapshotSharedLister framework.SharedLister
 | 
						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.
 | 
					// WithEventRecorder sets clientSet for the scheduling frameworkImpl.
 | 
				
			||||||
func WithEventRecorder(recorder events.EventRecorder) Option {
 | 
					func WithEventRecorder(recorder events.EventRecorder) Option {
 | 
				
			||||||
	return func(o *frameworkOptions) {
 | 
						return func(o *frameworkOptions) {
 | 
				
			||||||
@@ -254,6 +264,7 @@ func NewFramework(r Registry, profile *config.KubeSchedulerProfile, opts ...Opti
 | 
				
			|||||||
		pluginNameToWeightMap: make(map[string]int),
 | 
							pluginNameToWeightMap: make(map[string]int),
 | 
				
			||||||
		waitingPods:           newWaitingPodsMap(),
 | 
							waitingPods:           newWaitingPodsMap(),
 | 
				
			||||||
		clientSet:             options.clientSet,
 | 
							clientSet:             options.clientSet,
 | 
				
			||||||
 | 
							kubeConfig:            options.kubeConfig,
 | 
				
			||||||
		eventRecorder:         options.eventRecorder,
 | 
							eventRecorder:         options.eventRecorder,
 | 
				
			||||||
		informerFactory:       options.informerFactory,
 | 
							informerFactory:       options.informerFactory,
 | 
				
			||||||
		metricsRecorder:       options.metricsRecorder,
 | 
							metricsRecorder:       options.metricsRecorder,
 | 
				
			||||||
@@ -1149,6 +1160,11 @@ func (f *frameworkImpl) ClientSet() clientset.Interface {
 | 
				
			|||||||
	return f.clientSet
 | 
						return f.clientSet
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// KubeConfig returns a kubernetes config.
 | 
				
			||||||
 | 
					func (f *frameworkImpl) KubeConfig() *restclient.Config {
 | 
				
			||||||
 | 
						return f.kubeConfig
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// EventRecorder returns an event recorder.
 | 
					// EventRecorder returns an event recorder.
 | 
				
			||||||
func (f *frameworkImpl) EventRecorder() events.EventRecorder {
 | 
					func (f *frameworkImpl) EventRecorder() events.EventRecorder {
 | 
				
			||||||
	return f.eventRecorder
 | 
						return f.eventRecorder
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,7 @@ import (
 | 
				
			|||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	coreinformers "k8s.io/client-go/informers/core/v1"
 | 
						coreinformers "k8s.io/client-go/informers/core/v1"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
 | 
						restclient "k8s.io/client-go/rest"
 | 
				
			||||||
	"k8s.io/client-go/tools/cache"
 | 
						"k8s.io/client-go/tools/cache"
 | 
				
			||||||
	"k8s.io/klog/v2"
 | 
						"k8s.io/klog/v2"
 | 
				
			||||||
	podutil "k8s.io/kubernetes/pkg/api/v1/pod"
 | 
						podutil "k8s.io/kubernetes/pkg/api/v1/pod"
 | 
				
			||||||
@@ -89,6 +90,7 @@ type Scheduler struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type schedulerOptions struct {
 | 
					type schedulerOptions struct {
 | 
				
			||||||
 | 
						kubeConfig               *restclient.Config
 | 
				
			||||||
	schedulerAlgorithmSource schedulerapi.SchedulerAlgorithmSource
 | 
						schedulerAlgorithmSource schedulerapi.SchedulerAlgorithmSource
 | 
				
			||||||
	percentageOfNodesToScore int32
 | 
						percentageOfNodesToScore int32
 | 
				
			||||||
	podInitialBackoffSeconds int64
 | 
						podInitialBackoffSeconds int64
 | 
				
			||||||
@@ -104,6 +106,13 @@ type schedulerOptions struct {
 | 
				
			|||||||
// Option configures a Scheduler
 | 
					// Option configures a Scheduler
 | 
				
			||||||
type Option func(*schedulerOptions)
 | 
					type Option func(*schedulerOptions)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WithKubeConfig sets the kube config for Scheduler.
 | 
				
			||||||
 | 
					func WithKubeConfig(cfg *restclient.Config) Option {
 | 
				
			||||||
 | 
						return func(o *schedulerOptions) {
 | 
				
			||||||
 | 
							o.kubeConfig = cfg
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WithProfiles sets profiles for Scheduler. By default, there is one profile
 | 
					// WithProfiles sets profiles for Scheduler. By default, there is one profile
 | 
				
			||||||
// with the name "default-scheduler".
 | 
					// with the name "default-scheduler".
 | 
				
			||||||
func WithProfiles(p ...schedulerapi.KubeSchedulerProfile) Option {
 | 
					func WithProfiles(p ...schedulerapi.KubeSchedulerProfile) Option {
 | 
				
			||||||
@@ -214,6 +223,7 @@ func New(client clientset.Interface,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	configurator := &Configurator{
 | 
						configurator := &Configurator{
 | 
				
			||||||
		client:                   client,
 | 
							client:                   client,
 | 
				
			||||||
 | 
							kubeConfig:               options.kubeConfig,
 | 
				
			||||||
		recorderFactory:          recorderFactory,
 | 
							recorderFactory:          recorderFactory,
 | 
				
			||||||
		informerFactory:          informerFactory,
 | 
							informerFactory:          informerFactory,
 | 
				
			||||||
		schedulerCache:           schedulerCache,
 | 
							schedulerCache:           schedulerCache,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -176,7 +176,8 @@ func TestSchedulerCreation(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			stopCh := make(chan struct{})
 | 
								stopCh := make(chan struct{})
 | 
				
			||||||
			defer close(stopCh)
 | 
								defer close(stopCh)
 | 
				
			||||||
			s, err := New(client,
 | 
								s, err := New(
 | 
				
			||||||
 | 
									client,
 | 
				
			||||||
				informerFactory,
 | 
									informerFactory,
 | 
				
			||||||
				profile.NewRecorderFactory(eventBroadcaster),
 | 
									profile.NewRecorderFactory(eventBroadcaster),
 | 
				
			||||||
				stopCh,
 | 
									stopCh,
 | 
				
			||||||
@@ -456,7 +457,8 @@ func TestSchedulerMultipleProfilesScheduling(t *testing.T) {
 | 
				
			|||||||
	defer cancel()
 | 
						defer cancel()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	informerFactory := informers.NewSharedInformerFactory(client, 0)
 | 
						informerFactory := informers.NewSharedInformerFactory(client, 0)
 | 
				
			||||||
	sched, err := New(client,
 | 
						sched, err := New(
 | 
				
			||||||
 | 
							client,
 | 
				
			||||||
		informerFactory,
 | 
							informerFactory,
 | 
				
			||||||
		profile.NewRecorderFactory(broadcaster),
 | 
							profile.NewRecorderFactory(broadcaster),
 | 
				
			||||||
		ctx.Done(),
 | 
							ctx.Done(),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,7 +92,7 @@ type BindPlugin struct {
 | 
				
			|||||||
	numBindCalled         int
 | 
						numBindCalled         int
 | 
				
			||||||
	PluginName            string
 | 
						PluginName            string
 | 
				
			||||||
	bindStatus            *framework.Status
 | 
						bindStatus            *framework.Status
 | 
				
			||||||
	client                *clientset.Clientset
 | 
						client                clientset.Interface
 | 
				
			||||||
	pluginInvokeEventChan chan pluginInvokeEvent
 | 
						pluginInvokeEventChan chan pluginInvokeEvent
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -99,7 +99,7 @@ func mustSetupScheduler(config *config.KubeSchedulerConfiguration) (util.Shutdow
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Not all config options will be effective but only those mostly related with scheduler performance will
 | 
						// Not all config options will be effective but only those mostly related with scheduler performance will
 | 
				
			||||||
	// be applied to start a scheduler, most of them are defined in `scheduler.schedulerOptions`.
 | 
						// be applied to start a scheduler, most of them are defined in `scheduler.schedulerOptions`.
 | 
				
			||||||
	_, podInformer, schedulerShutdown := util.StartScheduler(client, config)
 | 
						_, podInformer, schedulerShutdown := util.StartScheduler(client, cfg, config)
 | 
				
			||||||
	fakePVControllerShutdown := util.StartFakePVController(client)
 | 
						fakePVControllerShutdown := util.StartFakePVController(client)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	shutdownFunc := func() {
 | 
						shutdownFunc := func() {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,7 +75,7 @@ func StartApiserver() (string, ShutdownFunc) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// StartScheduler configures and starts a scheduler given a handle to the clientSet interface
 | 
					// StartScheduler configures and starts a scheduler given a handle to the clientSet interface
 | 
				
			||||||
// and event broadcaster. It returns the running scheduler, podInformer and the shutdown function to stop it.
 | 
					// and event broadcaster. It returns the running scheduler, podInformer and the shutdown function to stop it.
 | 
				
			||||||
func StartScheduler(clientSet clientset.Interface, cfg *kubeschedulerconfig.KubeSchedulerConfiguration) (*scheduler.Scheduler, coreinformers.PodInformer, ShutdownFunc) {
 | 
					func StartScheduler(clientSet clientset.Interface, kubeConfig *restclient.Config, cfg *kubeschedulerconfig.KubeSchedulerConfiguration) (*scheduler.Scheduler, coreinformers.PodInformer, ShutdownFunc) {
 | 
				
			||||||
	ctx, cancel := context.WithCancel(context.Background())
 | 
						ctx, cancel := context.WithCancel(context.Background())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	informerFactory := scheduler.NewInformerFactory(clientSet, 0)
 | 
						informerFactory := scheduler.NewInformerFactory(clientSet, 0)
 | 
				
			||||||
@@ -89,6 +89,7 @@ func StartScheduler(clientSet clientset.Interface, cfg *kubeschedulerconfig.Kube
 | 
				
			|||||||
		informerFactory,
 | 
							informerFactory,
 | 
				
			||||||
		profile.NewRecorderFactory(evtBroadcaster),
 | 
							profile.NewRecorderFactory(evtBroadcaster),
 | 
				
			||||||
		ctx.Done(),
 | 
							ctx.Done(),
 | 
				
			||||||
 | 
							scheduler.WithKubeConfig(kubeConfig),
 | 
				
			||||||
		scheduler.WithProfiles(cfg.Profiles...),
 | 
							scheduler.WithProfiles(cfg.Profiles...),
 | 
				
			||||||
		scheduler.WithAlgorithmSource(cfg.AlgorithmSource),
 | 
							scheduler.WithAlgorithmSource(cfg.AlgorithmSource),
 | 
				
			||||||
		scheduler.WithPercentageOfNodesToScore(cfg.PercentageOfNodesToScore),
 | 
							scheduler.WithPercentageOfNodesToScore(cfg.PercentageOfNodesToScore),
 | 
				
			||||||
@@ -159,7 +160,8 @@ type TestContext struct {
 | 
				
			|||||||
	CloseFn         framework.CloseFunc
 | 
						CloseFn         framework.CloseFunc
 | 
				
			||||||
	HTTPServer      *httptest.Server
 | 
						HTTPServer      *httptest.Server
 | 
				
			||||||
	NS              *v1.Namespace
 | 
						NS              *v1.Namespace
 | 
				
			||||||
	ClientSet       *clientset.Clientset
 | 
						ClientSet       clientset.Interface
 | 
				
			||||||
 | 
						KubeConfig      *restclient.Config
 | 
				
			||||||
	InformerFactory informers.SharedInformerFactory
 | 
						InformerFactory informers.SharedInformerFactory
 | 
				
			||||||
	Scheduler       *scheduler.Scheduler
 | 
						Scheduler       *scheduler.Scheduler
 | 
				
			||||||
	Ctx             context.Context
 | 
						Ctx             context.Context
 | 
				
			||||||
@@ -349,14 +351,14 @@ func InitTestMaster(t *testing.T, nsPrefix string, admission admission.Interface
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 2. Create kubeclient
 | 
						// 2. Create kubeclient
 | 
				
			||||||
	testCtx.ClientSet = clientset.NewForConfigOrDie(
 | 
						kubeConfig := &restclient.Config{
 | 
				
			||||||
		&restclient.Config{
 | 
					 | 
				
			||||||
		QPS: -1, Host: s.URL,
 | 
							QPS: -1, Host: s.URL,
 | 
				
			||||||
		ContentConfig: restclient.ContentConfig{
 | 
							ContentConfig: restclient.ContentConfig{
 | 
				
			||||||
			GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"},
 | 
								GroupVersion: &schema.GroupVersion{Group: "", Version: "v1"},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		},
 | 
						}
 | 
				
			||||||
	)
 | 
						testCtx.KubeConfig = kubeConfig
 | 
				
			||||||
 | 
						testCtx.ClientSet = clientset.NewForConfigOrDie(kubeConfig)
 | 
				
			||||||
	return &testCtx
 | 
						return &testCtx
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -403,6 +405,7 @@ func InitTestSchedulerWithOptions(
 | 
				
			|||||||
	if policy != nil {
 | 
						if policy != nil {
 | 
				
			||||||
		opts = append(opts, scheduler.WithAlgorithmSource(CreateAlgorithmSourceFromPolicy(policy, testCtx.ClientSet)))
 | 
							opts = append(opts, scheduler.WithAlgorithmSource(CreateAlgorithmSourceFromPolicy(policy, testCtx.ClientSet)))
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						opts = append(opts, scheduler.WithKubeConfig(testCtx.KubeConfig))
 | 
				
			||||||
	testCtx.Scheduler, err = scheduler.New(
 | 
						testCtx.Scheduler, err = scheduler.New(
 | 
				
			||||||
		testCtx.ClientSet,
 | 
							testCtx.ClientSet,
 | 
				
			||||||
		testCtx.InformerFactory,
 | 
							testCtx.InformerFactory,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user