diff --git a/pkg/scheduler/core/generic_scheduler.go b/pkg/scheduler/core/generic_scheduler.go index 2e075a1ac93..b266e8a1ceb 100644 --- a/pkg/scheduler/core/generic_scheduler.go +++ b/pkg/scheduler/core/generic_scheduler.go @@ -131,6 +131,10 @@ type ScheduleAlgorithm interface { // Extenders returns a slice of extender config. This is exposed for // testing. Extenders() []algorithm.SchedulerExtender + // GetPredicateMetadataProducer returns the predicate metadata producer. This is needed + // for cluster autoscaler integration. + // TODO(ahg-g): remove this once CA migrates to creating a Framework instead of a full scheduler. + PredicateMetadataProducer() predicates.PredicateMetadataProducer } // ScheduleResult represents the result of one pod scheduled. It will contain @@ -171,6 +175,13 @@ func (g *genericScheduler) snapshot() error { return g.cache.UpdateNodeInfoSnapshot(g.nodeInfoSnapshot) } +// GetPredicateMetadataProducer returns the predicate metadata producer. This is needed +// for cluster autoscaler integration. +func (g *genericScheduler) PredicateMetadataProducer() predicates.PredicateMetadataProducer { + return g.predicateMetaProducer + +} + // Schedule tries to schedule the given pod to one of the nodes in the node list. // If it succeeds, it will return the name of the node. // If it fails, it will return a FitError error with reasons. diff --git a/pkg/scheduler/scheduler_test.go b/pkg/scheduler/scheduler_test.go index f511b373567..9525dd0a701 100644 --- a/pkg/scheduler/scheduler_test.go +++ b/pkg/scheduler/scheduler_test.go @@ -152,6 +152,11 @@ type mockScheduler struct { err error } +func (es mockScheduler) PredicateMetadataProducer() predicates.PredicateMetadataProducer { + return nil + +} + func (es mockScheduler) Schedule(ctx context.Context, state *framework.CycleState, pod *v1.Pod) (core.ScheduleResult, error) { return es.result, es.err }