mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 18:28:13 +00:00 
			
		
		
		
	Merge pull request #40743 from jayunit100/schedulercore
Automatic merge from submit-queue (batch tested with PRs 41378, 41413, 40743, 41155, 41385) 'core' package to prevent dependency creep and isolate core functiona… **What this PR does / why we need it**: Solves these two problems: - Top level Scheduler root directory has several files in it that are needed really by the factory and algorithm implementations. Thus they should be subpackages of scheduler. - In addition scheduler.go and generic_scheduler.go don't naturally differentiate themselves when they are in the same package. scheduler.go is eseentially the daemon entry point and so it should be isolated from the core *No release note needed*
This commit is contained in:
		| @@ -8,66 +8,24 @@ load( | ||||
|     "go_test", | ||||
| ) | ||||
|  | ||||
| go_library( | ||||
|     name = "go_default_library", | ||||
|     srcs = [ | ||||
|         "equivalence_cache.go", | ||||
|         "extender.go", | ||||
|         "generic_scheduler.go", | ||||
|         "scheduler.go", | ||||
|     ], | ||||
|     tags = ["automanaged"], | ||||
|     deps = [ | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||
|         "//pkg/util/hash:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/metrics:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//plugin/pkg/scheduler/util:go_default_library", | ||||
|         "//vendor:github.com/golang/glog", | ||||
|         "//vendor:github.com/golang/groupcache/lru", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/errors", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/net", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||
|         "//vendor:k8s.io/apiserver/pkg/util/trace", | ||||
|         "//vendor:k8s.io/client-go/rest", | ||||
|         "//vendor:k8s.io/client-go/tools/cache", | ||||
|         "//vendor:k8s.io/client-go/tools/record", | ||||
|         "//vendor:k8s.io/client-go/util/workqueue", | ||||
|     ], | ||||
| ) | ||||
|  | ||||
| go_test( | ||||
|     name = "go_default_test", | ||||
|     srcs = [ | ||||
|         "extender_test.go", | ||||
|         "generic_scheduler_test.go", | ||||
|         "scheduler_test.go", | ||||
|     ], | ||||
|     srcs = ["scheduler_test.go"], | ||||
|     library = ":go_default_library", | ||||
|     tags = ["automanaged"], | ||||
|     deps = [ | ||||
|         "//pkg/api:go_default_library", | ||||
|         "//pkg/api/testapi:go_default_library", | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/core:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//plugin/pkg/scheduler/testing:go_default_library", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/api/resource", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/labels", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/diff", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||
|         "//vendor:k8s.io/client-go/pkg/api/v1", | ||||
|         "//vendor:k8s.io/client-go/tools/cache", | ||||
| @@ -75,6 +33,27 @@ go_test( | ||||
|     ], | ||||
| ) | ||||
|  | ||||
| go_library( | ||||
|     name = "go_default_library", | ||||
|     srcs = ["scheduler.go"], | ||||
|     tags = ["automanaged"], | ||||
|     deps = [ | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/client/clientset_generated/clientset:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/metrics:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//plugin/pkg/scheduler/util:go_default_library", | ||||
|         "//vendor:github.com/golang/glog", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||
|         "//vendor:k8s.io/client-go/tools/cache", | ||||
|         "//vendor:k8s.io/client-go/tools/record", | ||||
|     ], | ||||
| ) | ||||
|  | ||||
| filegroup( | ||||
|     name = "package-srcs", | ||||
|     srcs = glob(["**"]), | ||||
| @@ -89,6 +68,7 @@ filegroup( | ||||
|         "//plugin/pkg/scheduler/algorithm:all-srcs", | ||||
|         "//plugin/pkg/scheduler/algorithmprovider:all-srcs", | ||||
|         "//plugin/pkg/scheduler/api:all-srcs", | ||||
|         "//plugin/pkg/scheduler/core:all-srcs", | ||||
|         "//plugin/pkg/scheduler/factory:all-srcs", | ||||
|         "//plugin/pkg/scheduler/metrics:all-srcs", | ||||
|         "//plugin/pkg/scheduler/schedulercache:all-srcs", | ||||
|   | ||||
| @@ -15,10 +15,10 @@ go_library( | ||||
|     deps = [ | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/cloudprovider/providers/aws:go_default_library", | ||||
|         "//plugin/pkg/scheduler:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", | ||||
|         "//plugin/pkg/scheduler/core:go_default_library", | ||||
|         "//plugin/pkg/scheduler/factory:go_default_library", | ||||
|         "//vendor:github.com/golang/glog", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|   | ||||
| @@ -25,10 +25,10 @@ import ( | ||||
| 	"k8s.io/apimachinery/pkg/util/sets" | ||||
| 	"k8s.io/kubernetes/pkg/api/v1" | ||||
| 	"k8s.io/kubernetes/pkg/cloudprovider/providers/aws" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/factory" | ||||
|  | ||||
| 	"github.com/golang/glog" | ||||
| @@ -100,7 +100,7 @@ func init() { | ||||
| 	// EqualPriority is a prioritizer function that gives an equal weight of one to all nodes | ||||
| 	// Register the priority function so that its available | ||||
| 	// but do not include it as part of the default priorities | ||||
| 	factory.RegisterPriorityFunction2("EqualPriority", scheduler.EqualPriorityMap, nil, 1) | ||||
| 	factory.RegisterPriorityFunction2("EqualPriority", core.EqualPriorityMap, nil, 1) | ||||
| 	// ImageLocalityPriority prioritizes nodes based on locality of images requested by a pod. Nodes with larger size | ||||
| 	// of already-installed packages required by the pod will be preferred over nodes with no already-installed | ||||
| 	// packages required by the pod or a small total size of already-installed packages required by the pod. | ||||
|   | ||||
							
								
								
									
										71
									
								
								plugin/pkg/scheduler/core/BUILD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								plugin/pkg/scheduler/core/BUILD
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | ||||
| package(default_visibility = ["//visibility:public"]) | ||||
|  | ||||
| licenses(["notice"]) | ||||
|  | ||||
| load( | ||||
|     "@io_bazel_rules_go//go:def.bzl", | ||||
|     "go_library", | ||||
|     "go_test", | ||||
| ) | ||||
|  | ||||
| go_test( | ||||
|     name = "go_default_test", | ||||
|     srcs = [ | ||||
|         "extender_test.go", | ||||
|         "generic_scheduler_test.go", | ||||
|     ], | ||||
|     library = ":go_default_library", | ||||
|     tags = ["automanaged"], | ||||
|     deps = [ | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/apis/extensions/v1beta1:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/api/resource", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||
|     ], | ||||
| ) | ||||
|  | ||||
| go_library( | ||||
|     name = "go_default_library", | ||||
|     srcs = [ | ||||
|         "equivalence_cache.go", | ||||
|         "extender.go", | ||||
|         "generic_scheduler.go", | ||||
|     ], | ||||
|     tags = ["automanaged"], | ||||
|     deps = [ | ||||
|         "//pkg/api/v1:go_default_library", | ||||
|         "//pkg/util/hash:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm:go_default_library", | ||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//vendor:github.com/golang/glog", | ||||
|         "//vendor:github.com/golang/groupcache/lru", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/errors", | ||||
|         "//vendor:k8s.io/apimachinery/pkg/util/net", | ||||
|         "//vendor:k8s.io/apiserver/pkg/util/trace", | ||||
|         "//vendor:k8s.io/client-go/rest", | ||||
|         "//vendor:k8s.io/client-go/util/workqueue", | ||||
|     ], | ||||
| ) | ||||
|  | ||||
| filegroup( | ||||
|     name = "package-srcs", | ||||
|     srcs = glob(["**"]), | ||||
|     tags = ["automanaged"], | ||||
|     visibility = ["//visibility:private"], | ||||
| ) | ||||
|  | ||||
| filegroup( | ||||
|     name = "all-srcs", | ||||
|     srcs = [":package-srcs"], | ||||
|     tags = ["automanaged"], | ||||
| ) | ||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| package scheduler | ||||
| package core | ||||
| 
 | ||||
| import ( | ||||
| 	"hash/adler32" | ||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| package scheduler | ||||
| package core | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| package scheduler | ||||
| package core | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| package scheduler | ||||
| package core | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| */ | ||||
| 
 | ||||
| package scheduler | ||||
| package core | ||||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| @@ -27,6 +27,7 @@ go_library( | ||||
|         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api:go_default_library", | ||||
|         "//plugin/pkg/scheduler/api/validation:go_default_library", | ||||
|         "//plugin/pkg/scheduler/core:go_default_library", | ||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||
|         "//plugin/pkg/scheduler/util:go_default_library", | ||||
|         "//vendor:github.com/golang/glog", | ||||
|   | ||||
| @@ -23,6 +23,7 @@ import ( | ||||
| 	"strings" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/golang/glog" | ||||
| 	"k8s.io/apimachinery/pkg/api/errors" | ||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
| 	"k8s.io/apimachinery/pkg/fields" | ||||
| @@ -33,6 +34,7 @@ import ( | ||||
| 	genericapirequest "k8s.io/apiserver/pkg/endpoints/request" | ||||
| 	"k8s.io/client-go/tools/cache" | ||||
| 	"k8s.io/kubernetes/pkg/api/v1" | ||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||
| 	"k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||
| 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | ||||
| @@ -41,9 +43,7 @@ import ( | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||
| 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/api/validation" | ||||
|  | ||||
| 	"github.com/golang/glog" | ||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | ||||
| ) | ||||
| @@ -102,7 +102,7 @@ type ConfigFactory struct { | ||||
| 	failureDomains []string | ||||
|  | ||||
| 	// Equivalence class cache | ||||
| 	equivalencePodCache *scheduler.EquivalenceCache | ||||
| 	equivalencePodCache *core.EquivalenceCache | ||||
| } | ||||
|  | ||||
| // NewConfigFactory initializes the default implementation of a Configurator To encourage eventual privatization of the struct type, we only | ||||
| @@ -360,7 +360,7 @@ func (f *ConfigFactory) CreateFromConfig(policy schedulerapi.Policy) (*scheduler | ||||
| 	if len(policy.ExtenderConfigs) != 0 { | ||||
| 		for ii := range policy.ExtenderConfigs { | ||||
| 			glog.V(2).Infof("Creating extender with config %+v", policy.ExtenderConfigs[ii]) | ||||
| 			if extender, err := scheduler.NewHTTPExtender(&policy.ExtenderConfigs[ii], policy.APIVersion); err != nil { | ||||
| 			if extender, err := core.NewHTTPExtender(&policy.ExtenderConfigs[ii], policy.APIVersion); err != nil { | ||||
| 				return nil, err | ||||
| 			} else { | ||||
| 				extenders = append(extenders, extender) | ||||
| @@ -399,7 +399,7 @@ func (f *ConfigFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, | ||||
| 	} | ||||
|  | ||||
| 	f.Run() | ||||
| 	algo := scheduler.NewGenericScheduler(f.schedulerCache, predicateFuncs, predicateMetaProducer, priorityConfigs, priorityMetaProducer, extenders) | ||||
| 	algo := core.NewGenericScheduler(f.schedulerCache, predicateFuncs, predicateMetaProducer, priorityConfigs, priorityMetaProducer, extenders) | ||||
| 	podBackoff := util.CreateDefaultPodBackoff() | ||||
| 	return &scheduler.Config{ | ||||
| 		SchedulerCache: f.schedulerCache, | ||||
| @@ -594,7 +594,7 @@ func (factory *ConfigFactory) createReplicaSetLW() *cache.ListWatch { | ||||
|  | ||||
| func (factory *ConfigFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue *cache.FIFO) func(pod *v1.Pod, err error) { | ||||
| 	return func(pod *v1.Pod, err error) { | ||||
| 		if err == scheduler.ErrNoNodesAvailable { | ||||
| 		if err == core.ErrNoNodesAvailable { | ||||
| 			glog.V(4).Infof("Unable to schedule %v %v: no nodes are registered to the cluster; waiting", pod.Namespace, pod.Name) | ||||
| 		} else { | ||||
| 			glog.Errorf("Error scheduling %v %v: %v; retrying", pod.Namespace, pod.Name, err) | ||||
|   | ||||
| @@ -23,14 +23,13 @@ import ( | ||||
| 	"k8s.io/apimachinery/pkg/util/wait" | ||||
| 	"k8s.io/client-go/tools/record" | ||||
| 	"k8s.io/kubernetes/pkg/api/v1" | ||||
| 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||
| 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/metrics" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | ||||
|  | ||||
| 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||
|  | ||||
| 	"github.com/golang/glog" | ||||
| 	"k8s.io/apimachinery/pkg/util/sets" | ||||
| 	"k8s.io/client-go/tools/cache" | ||||
|   | ||||
| @@ -36,6 +36,7 @@ import ( | ||||
| 	"k8s.io/kubernetes/pkg/api/v1" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||
| 	schedulertesting "k8s.io/kubernetes/plugin/pkg/scheduler/testing" | ||||
| ) | ||||
| @@ -275,9 +276,9 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) { | ||||
| 	scheduler.scheduleOne() | ||||
| 	select { | ||||
| 	case err := <-errChan: | ||||
| 		expectErr := &FitError{ | ||||
| 		expectErr := &core.FitError{ | ||||
| 			Pod:              secondPod, | ||||
| 			FailedPredicates: FailedPredicateMap{node.Name: []algorithm.PredicateFailureReason{predicates.ErrPodNotFitsHostPorts}}, | ||||
| 			FailedPredicates: core.FailedPredicateMap{node.Name: []algorithm.PredicateFailureReason{predicates.ErrPodNotFitsHostPorts}}, | ||||
| 		} | ||||
| 		if !reflect.DeepEqual(expectErr, err) { | ||||
| 			t.Errorf("err want=%v, get=%v", expectErr, err) | ||||
| @@ -446,7 +447,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { | ||||
| 	} | ||||
|  | ||||
| 	// Create expected failure reasons for all the nodes.  Hopefully they will get rolled up into a non-spammy summary. | ||||
| 	failedPredicatesMap := FailedPredicateMap{} | ||||
| 	failedPredicatesMap := core.FailedPredicateMap{} | ||||
| 	for _, node := range nodes { | ||||
| 		failedPredicatesMap[node.Name] = []algorithm.PredicateFailureReason{ | ||||
| 			predicates.NewInsufficientResourceError(v1.ResourceCPU, 4000, 0, 2000), | ||||
| @@ -459,7 +460,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { | ||||
| 	scheduler.scheduleOne() | ||||
| 	select { | ||||
| 	case err := <-errChan: | ||||
| 		expectErr := &FitError{ | ||||
| 		expectErr := &core.FitError{ | ||||
| 			Pod:              podWithTooBigResourceRequests, | ||||
| 			FailedPredicates: failedPredicatesMap, | ||||
| 		} | ||||
| @@ -477,7 +478,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { | ||||
| // queuedPodStore: pods queued before processing. | ||||
| // scache: scheduler cache that might contain assumed pods. | ||||
| func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache schedulercache.Cache, nodeLister algorithm.FakeNodeLister, predicateMap map[string]algorithm.FitPredicate) (*Scheduler, chan *v1.Binding, chan error) { | ||||
| 	algo := NewGenericScheduler( | ||||
| 	algo := core.NewGenericScheduler( | ||||
| 		scache, | ||||
| 		predicateMap, | ||||
| 		algorithm.EmptyMetadataProducer, | ||||
| @@ -507,7 +508,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache schedulercache. | ||||
| } | ||||
|  | ||||
| func setupTestSchedulerLongBindingWithRetry(queuedPodStore *clientcache.FIFO, scache schedulercache.Cache, nodeLister algorithm.FakeNodeLister, predicateMap map[string]algorithm.FitPredicate, stop chan struct{}, bindingTime time.Duration) (*Scheduler, chan *v1.Binding) { | ||||
| 	algo := NewGenericScheduler( | ||||
| 	algo := core.NewGenericScheduler( | ||||
| 		scache, | ||||
| 		predicateMap, | ||||
| 		algorithm.EmptyMetadataProducer, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue