mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Remove unnecessary factory layer
This commit is contained in:
		@@ -29,7 +29,6 @@ import (
 | 
			
		||||
	"k8s.io/apimachinery/pkg/labels"
 | 
			
		||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
			
		||||
	"k8s.io/client-go/util/workqueue"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/scheduler/algorithm"
 | 
			
		||||
	priorityutil "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities/util"
 | 
			
		||||
	schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
 | 
			
		||||
	schedutil "k8s.io/kubernetes/pkg/scheduler/util"
 | 
			
		||||
@@ -45,11 +44,6 @@ type PredicateMetadata interface {
 | 
			
		||||
// PredicateMetadataProducer is a function that computes predicate metadata for a given pod.
 | 
			
		||||
type PredicateMetadataProducer func(pod *v1.Pod, nodeNameToInfo map[string]*schedulernodeinfo.NodeInfo) PredicateMetadata
 | 
			
		||||
 | 
			
		||||
// PredicateMetadataFactory defines a factory of predicate metadata.
 | 
			
		||||
type PredicateMetadataFactory struct {
 | 
			
		||||
	podLister algorithm.PodLister
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AntiAffinityTerm's topology key value used in predicate metadata
 | 
			
		||||
type topologyPair struct {
 | 
			
		||||
	key   string
 | 
			
		||||
@@ -190,16 +184,8 @@ func RegisterPredicateMetadataProducerWithExtendedResourceOptions(ignoredExtende
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewPredicateMetadataFactory creates a PredicateMetadataFactory.
 | 
			
		||||
func NewPredicateMetadataFactory(podLister algorithm.PodLister) PredicateMetadataProducer {
 | 
			
		||||
	factory := &PredicateMetadataFactory{
 | 
			
		||||
		podLister,
 | 
			
		||||
	}
 | 
			
		||||
	return factory.GetMetadata
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetMetadata returns the predicateMetadata used which will be used by various predicates.
 | 
			
		||||
func (pfactory *PredicateMetadataFactory) GetMetadata(pod *v1.Pod, nodeNameToInfoMap map[string]*schedulernodeinfo.NodeInfo) PredicateMetadata {
 | 
			
		||||
// GetPredicateMetadata returns the predicateMetadata which will be used by various predicates.
 | 
			
		||||
func GetPredicateMetadata(pod *v1.Pod, nodeNameToInfoMap map[string]*schedulernodeinfo.NodeInfo) PredicateMetadata {
 | 
			
		||||
	// If we cannot compute metadata, just return nil
 | 
			
		||||
	if pod == nil {
 | 
			
		||||
		return nil
 | 
			
		||||
 
 | 
			
		||||
@@ -364,8 +364,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
 | 
			
		||||
				}
 | 
			
		||||
				_, precompute := NewServiceAffinityPredicate(lister, st.FakeServiceLister(test.services), FakeNodeListInfo(nodeList), nil)
 | 
			
		||||
				RegisterPredicateMetadataProducer("ServiceAffinityMetaProducer", precompute)
 | 
			
		||||
				pmf := PredicateMetadataFactory{lister}
 | 
			
		||||
				meta := pmf.GetMetadata(test.pendingPod, nodeInfoMap)
 | 
			
		||||
				meta := GetPredicateMetadata(test.pendingPod, nodeInfoMap)
 | 
			
		||||
				return meta.(*predicateMetadata), nodeInfoMap
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -93,12 +93,6 @@ func newResourceOverheadPod(pod *v1.Pod, overhead v1.ResourceList) *v1.Pod {
 | 
			
		||||
	pod.Spec.Overhead = overhead
 | 
			
		||||
	return pod
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetPredicateMetadata(p *v1.Pod, nodeInfo map[string]*schedulernodeinfo.NodeInfo) PredicateMetadata {
 | 
			
		||||
	pm := PredicateMetadataFactory{st.FakePodLister{p}}
 | 
			
		||||
	return pm.GetMetadata(p, nodeInfo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestPodFitsResources(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
	defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.PodOverhead, true)()
 | 
			
		||||
 
 | 
			
		||||
@@ -23,10 +23,7 @@ import (
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	// Register functions that extract metadata used by predicates computations.
 | 
			
		||||
	factory.RegisterPredicateMetadataProducerFactory(
 | 
			
		||||
		func(args factory.PluginFactoryArgs) predicates.PredicateMetadataProducer {
 | 
			
		||||
			return predicates.NewPredicateMetadataFactory(args.PodLister)
 | 
			
		||||
		})
 | 
			
		||||
	factory.RegisterPredicateMetadataProducer(predicates.GetPredicateMetadata)
 | 
			
		||||
 | 
			
		||||
	// IMPORTANT NOTES for predicate developers:
 | 
			
		||||
	// Registers predicates and priorities that are not enabled by default, but user can pick when creating their
 | 
			
		||||
 
 | 
			
		||||
@@ -634,7 +634,7 @@ func TestGenericScheduler(t *testing.T) {
 | 
			
		||||
 | 
			
		||||
			predMetaProducer := algorithmpredicates.EmptyPredicateMetadataProducer
 | 
			
		||||
			if test.buildPredMeta {
 | 
			
		||||
				predMetaProducer = algorithmpredicates.NewPredicateMetadataFactory(schedulertesting.FakePodLister(test.pods))
 | 
			
		||||
				predMetaProducer = algorithmpredicates.GetPredicateMetadata
 | 
			
		||||
			}
 | 
			
		||||
			scheduler := NewGenericScheduler(
 | 
			
		||||
				cache,
 | 
			
		||||
@@ -969,7 +969,7 @@ func (n FakeNodeInfo) GetNodeInfo(nodeName string) (*v1.Node, error) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func PredicateMetadata(p *v1.Pod, nodeInfo map[string]*schedulernodeinfo.NodeInfo) algorithmpredicates.PredicateMetadata {
 | 
			
		||||
	return algorithmpredicates.NewPredicateMetadataFactory(schedulertesting.FakePodLister{p})(p, nodeInfo)
 | 
			
		||||
	return algorithmpredicates.GetPredicateMetadata(p, nodeInfo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var smallContainers = []v1.Container{
 | 
			
		||||
@@ -1912,7 +1912,7 @@ func TestPreempt(t *testing.T) {
 | 
			
		||||
			}
 | 
			
		||||
			predMetaProducer := algorithmpredicates.EmptyPredicateMetadataProducer
 | 
			
		||||
			if test.buildPredMeta {
 | 
			
		||||
				predMetaProducer = algorithmpredicates.NewPredicateMetadataFactory(schedulertesting.FakePodLister(test.pods))
 | 
			
		||||
				predMetaProducer = algorithmpredicates.GetPredicateMetadata
 | 
			
		||||
			}
 | 
			
		||||
			scheduler := NewGenericScheduler(
 | 
			
		||||
				cache,
 | 
			
		||||
 
 | 
			
		||||
@@ -475,11 +475,7 @@ func (c *Configurator) getPriorityMetadataProducer() (priorities.PriorityMetadat
 | 
			
		||||
// GetPredicateMetadataProducer returns a function to build Predicate Metadata.
 | 
			
		||||
// It is used by the scheduler and other components, such as k8s.io/autoscaler/cluster-autoscaler.
 | 
			
		||||
func (c *Configurator) GetPredicateMetadataProducer() (predicates.PredicateMetadataProducer, error) {
 | 
			
		||||
	pluginArgs, err := c.getPluginArgs()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return getPredicateMetadataProducer(*pluginArgs)
 | 
			
		||||
	return getPredicateMetadataProducer()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetPredicates returns the predicate functions.
 | 
			
		||||
 
 | 
			
		||||
@@ -88,7 +88,7 @@ var (
 | 
			
		||||
 | 
			
		||||
	// Registered metadata producers
 | 
			
		||||
	priorityMetadataProducer  PriorityMetadataProducerFactory
 | 
			
		||||
	predicateMetadataProducer PredicateMetadataProducerFactory
 | 
			
		||||
	predicateMetadataProducer predicates.PredicateMetadataProducer
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
@@ -313,11 +313,11 @@ func RegisterPriorityMetadataProducerFactory(factory PriorityMetadataProducerFac
 | 
			
		||||
	priorityMetadataProducer = factory
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterPredicateMetadataProducerFactory registers a PredicateMetadataProducerFactory.
 | 
			
		||||
func RegisterPredicateMetadataProducerFactory(factory PredicateMetadataProducerFactory) {
 | 
			
		||||
// RegisterPredicateMetadataProducer registers a PredicateMetadataProducer.
 | 
			
		||||
func RegisterPredicateMetadataProducer(producer predicates.PredicateMetadataProducer) {
 | 
			
		||||
	schedulerFactoryMutex.Lock()
 | 
			
		||||
	defer schedulerFactoryMutex.Unlock()
 | 
			
		||||
	predicateMetadataProducer = factory
 | 
			
		||||
	predicateMetadataProducer = producer
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RegisterPriorityFunction registers a priority function with the algorithm registry. Returns the name,
 | 
			
		||||
@@ -494,14 +494,14 @@ func getPriorityMetadataProducer(args PluginFactoryArgs) (priorities.PriorityMet
 | 
			
		||||
	return priorityMetadataProducer(args), nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getPredicateMetadataProducer(args PluginFactoryArgs) (predicates.PredicateMetadataProducer, error) {
 | 
			
		||||
func getPredicateMetadataProducer() (predicates.PredicateMetadataProducer, error) {
 | 
			
		||||
	schedulerFactoryMutex.Lock()
 | 
			
		||||
	defer schedulerFactoryMutex.Unlock()
 | 
			
		||||
 | 
			
		||||
	if predicateMetadataProducer == nil {
 | 
			
		||||
		return predicates.EmptyPredicateMetadataProducer, nil
 | 
			
		||||
	}
 | 
			
		||||
	return predicateMetadataProducer(args), nil
 | 
			
		||||
	return predicateMetadataProducer, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getPriorityFunctionConfigs(names sets.String, args PluginFactoryArgs) ([]priorities.PriorityConfig, error) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user