mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-10-31 02:08: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_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( | go_test( | ||||||
|     name = "go_default_test", |     name = "go_default_test", | ||||||
|     srcs = [ |     srcs = ["scheduler_test.go"], | ||||||
|         "extender_test.go", |  | ||||||
|         "generic_scheduler_test.go", |  | ||||||
|         "scheduler_test.go", |  | ||||||
|     ], |  | ||||||
|     library = ":go_default_library", |     library = ":go_default_library", | ||||||
|     tags = ["automanaged"], |     tags = ["automanaged"], | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api:go_default_library", |         "//pkg/api:go_default_library", | ||||||
|         "//pkg/api/testapi:go_default_library", |         "//pkg/api/testapi:go_default_library", | ||||||
|         "//pkg/api/v1: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:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/algorithm/predicates: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/algorithm/priorities/util:go_default_library", |  | ||||||
|         "//plugin/pkg/scheduler/api:go_default_library", |  | ||||||
|         "//plugin/pkg/scheduler/schedulercache:go_default_library", |         "//plugin/pkg/scheduler/schedulercache:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/testing:go_default_library", |         "//plugin/pkg/scheduler/testing:go_default_library", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/api/resource", |         "//vendor:k8s.io/apimachinery/pkg/api/resource", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/labels", |         "//vendor:k8s.io/apimachinery/pkg/labels", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/util/diff", |         "//vendor:k8s.io/apimachinery/pkg/util/diff", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/util/sets", |  | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/util/wait", |         "//vendor:k8s.io/apimachinery/pkg/util/wait", | ||||||
|         "//vendor:k8s.io/client-go/pkg/api/v1", |         "//vendor:k8s.io/client-go/pkg/api/v1", | ||||||
|         "//vendor:k8s.io/client-go/tools/cache", |         "//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( | filegroup( | ||||||
|     name = "package-srcs", |     name = "package-srcs", | ||||||
|     srcs = glob(["**"]), |     srcs = glob(["**"]), | ||||||
| @@ -89,6 +68,7 @@ filegroup( | |||||||
|         "//plugin/pkg/scheduler/algorithm:all-srcs", |         "//plugin/pkg/scheduler/algorithm:all-srcs", | ||||||
|         "//plugin/pkg/scheduler/algorithmprovider:all-srcs", |         "//plugin/pkg/scheduler/algorithmprovider:all-srcs", | ||||||
|         "//plugin/pkg/scheduler/api:all-srcs", |         "//plugin/pkg/scheduler/api:all-srcs", | ||||||
|  |         "//plugin/pkg/scheduler/core:all-srcs", | ||||||
|         "//plugin/pkg/scheduler/factory:all-srcs", |         "//plugin/pkg/scheduler/factory:all-srcs", | ||||||
|         "//plugin/pkg/scheduler/metrics:all-srcs", |         "//plugin/pkg/scheduler/metrics:all-srcs", | ||||||
|         "//plugin/pkg/scheduler/schedulercache:all-srcs", |         "//plugin/pkg/scheduler/schedulercache:all-srcs", | ||||||
|   | |||||||
| @@ -15,10 +15,10 @@ go_library( | |||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/api/v1:go_default_library", |         "//pkg/api/v1:go_default_library", | ||||||
|         "//pkg/cloudprovider/providers/aws: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:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", |         "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/algorithm/priorities: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", |         "//plugin/pkg/scheduler/factory:go_default_library", | ||||||
|         "//vendor:github.com/golang/glog", |         "//vendor:github.com/golang/glog", | ||||||
|         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", |         "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", | ||||||
|   | |||||||
| @@ -25,10 +25,10 @@ import ( | |||||||
| 	"k8s.io/apimachinery/pkg/util/sets" | 	"k8s.io/apimachinery/pkg/util/sets" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/pkg/cloudprovider/providers/aws" | 	"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" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/priorities" | ||||||
|  | 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/factory" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/factory" | ||||||
|  |  | ||||||
| 	"github.com/golang/glog" | 	"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 | 	// EqualPriority is a prioritizer function that gives an equal weight of one to all nodes | ||||||
| 	// Register the priority function so that its available | 	// Register the priority function so that its available | ||||||
| 	// but do not include it as part of the default priorities | 	// 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 | 	// 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 | 	// 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. | 	// 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. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package scheduler | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"hash/adler32" | 	"hash/adler32" | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package scheduler | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"bytes" | 	"bytes" | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package scheduler | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package scheduler | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and | |||||||
| limitations under the License. | limitations under the License. | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
| package scheduler | package core | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| @@ -27,6 +27,7 @@ go_library( | |||||||
|         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", |         "//plugin/pkg/scheduler/algorithm/priorities:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/api:go_default_library", |         "//plugin/pkg/scheduler/api:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/api/validation: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/schedulercache:go_default_library", | ||||||
|         "//plugin/pkg/scheduler/util:go_default_library", |         "//plugin/pkg/scheduler/util:go_default_library", | ||||||
|         "//vendor:github.com/golang/glog", |         "//vendor:github.com/golang/glog", | ||||||
|   | |||||||
| @@ -23,6 +23,7 @@ import ( | |||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/golang/glog" | ||||||
| 	"k8s.io/apimachinery/pkg/api/errors" | 	"k8s.io/apimachinery/pkg/api/errors" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/fields" | 	"k8s.io/apimachinery/pkg/fields" | ||||||
| @@ -33,6 +34,7 @@ import ( | |||||||
| 	genericapirequest "k8s.io/apiserver/pkg/endpoints/request" | 	genericapirequest "k8s.io/apiserver/pkg/endpoints/request" | ||||||
| 	"k8s.io/client-go/tools/cache" | 	"k8s.io/client-go/tools/cache" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"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/clientset_generated/clientset" | ||||||
| 	"k8s.io/kubernetes/pkg/client/legacylisters" | 	"k8s.io/kubernetes/pkg/client/legacylisters" | ||||||
| 	"k8s.io/kubernetes/pkg/controller/informers" | 	"k8s.io/kubernetes/pkg/controller/informers" | ||||||
| @@ -41,9 +43,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||||
| 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/api/validation" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/api/validation" | ||||||
|  | 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||||
| 	"github.com/golang/glog" |  | ||||||
| 	extensions "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" |  | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | ||||||
| ) | ) | ||||||
| @@ -102,7 +102,7 @@ type ConfigFactory struct { | |||||||
| 	failureDomains []string | 	failureDomains []string | ||||||
|  |  | ||||||
| 	// Equivalence class cache | 	// 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 | // 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 { | 	if len(policy.ExtenderConfigs) != 0 { | ||||||
| 		for ii := range policy.ExtenderConfigs { | 		for ii := range policy.ExtenderConfigs { | ||||||
| 			glog.V(2).Infof("Creating extender with config %+v", policy.ExtenderConfigs[ii]) | 			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 | 				return nil, err | ||||||
| 			} else { | 			} else { | ||||||
| 				extenders = append(extenders, extender) | 				extenders = append(extenders, extender) | ||||||
| @@ -399,7 +399,7 @@ func (f *ConfigFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	f.Run() | 	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() | 	podBackoff := util.CreateDefaultPodBackoff() | ||||||
| 	return &scheduler.Config{ | 	return &scheduler.Config{ | ||||||
| 		SchedulerCache: f.schedulerCache, | 		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) { | func (factory *ConfigFactory) MakeDefaultErrorFunc(backoff *util.PodBackoff, podQueue *cache.FIFO) func(pod *v1.Pod, err error) { | ||||||
| 	return 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) | 			glog.V(4).Infof("Unable to schedule %v %v: no nodes are registered to the cluster; waiting", pod.Namespace, pod.Name) | ||||||
| 		} else { | 		} else { | ||||||
| 			glog.Errorf("Error scheduling %v %v: %v; retrying", pod.Namespace, pod.Name, err) | 			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/apimachinery/pkg/util/wait" | ||||||
| 	"k8s.io/client-go/tools/record" | 	"k8s.io/client-go/tools/record" | ||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
|  | 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||||
| 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | 	schedulerapi "k8s.io/kubernetes/plugin/pkg/scheduler/api" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/metrics" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/metrics" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/util" | ||||||
|  |  | ||||||
| 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" |  | ||||||
|  |  | ||||||
| 	"github.com/golang/glog" | 	"github.com/golang/glog" | ||||||
| 	"k8s.io/apimachinery/pkg/util/sets" | 	"k8s.io/apimachinery/pkg/util/sets" | ||||||
| 	"k8s.io/client-go/tools/cache" | 	"k8s.io/client-go/tools/cache" | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/api/v1" | 	"k8s.io/kubernetes/pkg/api/v1" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/algorithm/predicates" | ||||||
|  | 	"k8s.io/kubernetes/plugin/pkg/scheduler/core" | ||||||
| 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | 	"k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" | ||||||
| 	schedulertesting "k8s.io/kubernetes/plugin/pkg/scheduler/testing" | 	schedulertesting "k8s.io/kubernetes/plugin/pkg/scheduler/testing" | ||||||
| ) | ) | ||||||
| @@ -275,9 +276,9 @@ func TestSchedulerNoPhantomPodAfterDelete(t *testing.T) { | |||||||
| 	scheduler.scheduleOne() | 	scheduler.scheduleOne() | ||||||
| 	select { | 	select { | ||||||
| 	case err := <-errChan: | 	case err := <-errChan: | ||||||
| 		expectErr := &FitError{ | 		expectErr := &core.FitError{ | ||||||
| 			Pod:              secondPod, | 			Pod:              secondPod, | ||||||
| 			FailedPredicates: FailedPredicateMap{node.Name: []algorithm.PredicateFailureReason{predicates.ErrPodNotFitsHostPorts}}, | 			FailedPredicates: core.FailedPredicateMap{node.Name: []algorithm.PredicateFailureReason{predicates.ErrPodNotFitsHostPorts}}, | ||||||
| 		} | 		} | ||||||
| 		if !reflect.DeepEqual(expectErr, err) { | 		if !reflect.DeepEqual(expectErr, err) { | ||||||
| 			t.Errorf("err want=%v, get=%v", 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. | 	// 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 { | 	for _, node := range nodes { | ||||||
| 		failedPredicatesMap[node.Name] = []algorithm.PredicateFailureReason{ | 		failedPredicatesMap[node.Name] = []algorithm.PredicateFailureReason{ | ||||||
| 			predicates.NewInsufficientResourceError(v1.ResourceCPU, 4000, 0, 2000), | 			predicates.NewInsufficientResourceError(v1.ResourceCPU, 4000, 0, 2000), | ||||||
| @@ -459,7 +460,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { | |||||||
| 	scheduler.scheduleOne() | 	scheduler.scheduleOne() | ||||||
| 	select { | 	select { | ||||||
| 	case err := <-errChan: | 	case err := <-errChan: | ||||||
| 		expectErr := &FitError{ | 		expectErr := &core.FitError{ | ||||||
| 			Pod:              podWithTooBigResourceRequests, | 			Pod:              podWithTooBigResourceRequests, | ||||||
| 			FailedPredicates: failedPredicatesMap, | 			FailedPredicates: failedPredicatesMap, | ||||||
| 		} | 		} | ||||||
| @@ -477,7 +478,7 @@ func TestSchedulerFailedSchedulingReasons(t *testing.T) { | |||||||
| // queuedPodStore: pods queued before processing. | // queuedPodStore: pods queued before processing. | ||||||
| // scache: scheduler cache that might contain assumed pods. | // 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) { | 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, | 		scache, | ||||||
| 		predicateMap, | 		predicateMap, | ||||||
| 		algorithm.EmptyMetadataProducer, | 		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) { | 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, | 		scache, | ||||||
| 		predicateMap, | 		predicateMap, | ||||||
| 		algorithm.EmptyMetadataProducer, | 		algorithm.EmptyMetadataProducer, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue