@@ -35,15 +35,15 @@ import (
35
35
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
36
36
)
37
37
38
- // PredicateMetadata interface represents anything that can access a predicate metadata.
39
- type PredicateMetadata interface {
40
- ShallowCopy () PredicateMetadata
38
+ // Metadata interface represents anything that can access a predicate metadata.
39
+ type Metadata interface {
40
+ ShallowCopy () Metadata
41
41
AddPod (addedPod * v1.Pod , node * v1.Node ) error
42
42
RemovePod (deletedPod * v1.Pod , node * v1.Node ) error
43
43
}
44
44
45
- // PredicateMetadataProducer is a function that computes predicate metadata for a given pod.
46
- type PredicateMetadataProducer func (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) PredicateMetadata
45
+ // MetadataProducer is a function that computes predicate metadata for a given pod.
46
+ type MetadataProducer func (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) Metadata
47
47
48
48
// AntiAffinityTerm's topology key value used in predicate metadata
49
49
type topologyPair struct {
@@ -300,27 +300,27 @@ type predicateMetadata struct {
300
300
podFitsHostPortsMetadata * podFitsHostPortsMetadata
301
301
}
302
302
303
- // Ensure that predicateMetadata implements algorithm.PredicateMetadata .
304
- var _ PredicateMetadata = & predicateMetadata {}
303
+ // Ensure that predicateMetadata implements algorithm.Metadata .
304
+ var _ Metadata = & predicateMetadata {}
305
305
306
306
// predicateMetadataProducer function produces predicate metadata. It is stored in a global variable below
307
- // and used to modify the return values of PredicateMetadataProducer
307
+ // and used to modify the return values of MetadataProducer
308
308
type predicateMetadataProducer func (pm * predicateMetadata )
309
309
310
310
var predicateMetadataProducers = make (map [string ]predicateMetadataProducer )
311
311
312
- // RegisterPredicateMetadataProducer registers a PredicateMetadataProducer .
312
+ // RegisterPredicateMetadataProducer registers a MetadataProducer .
313
313
func RegisterPredicateMetadataProducer (predicateName string , precomp predicateMetadataProducer ) {
314
314
predicateMetadataProducers [predicateName ] = precomp
315
315
}
316
316
317
- // EmptyPredicateMetadataProducer returns a no-op MetadataProducer type.
318
- func EmptyPredicateMetadataProducer (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) PredicateMetadata {
317
+ // EmptyMetadataProducer returns a no-op MetadataProducer type.
318
+ func EmptyMetadataProducer (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) Metadata {
319
319
return nil
320
320
}
321
321
322
322
// RegisterPredicateMetadataProducerWithExtendedResourceOptions registers a
323
- // PredicateMetadataProducer that creates predicate metadata with the provided
323
+ // MetadataProducer that creates predicate metadata with the provided
324
324
// options for extended resources.
325
325
//
326
326
// See the comments in "predicateMetadata" for the explanation of the options.
@@ -330,8 +330,11 @@ func RegisterPredicateMetadataProducerWithExtendedResourceOptions(ignoredExtende
330
330
})
331
331
}
332
332
333
+ // MetadataProducerFactory is a factory to produce Metadata.
334
+ type MetadataProducerFactory struct {}
335
+
333
336
// GetPredicateMetadata returns the predicateMetadata which will be used by various predicates.
334
- func GetPredicateMetadata (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) PredicateMetadata {
337
+ func ( f * MetadataProducerFactory ) GetPredicateMetadata (pod * v1.Pod , sharedLister schedulerlisters.SharedLister ) Metadata {
335
338
// If we cannot compute metadata, just return nil
336
339
if pod == nil {
337
340
return nil
@@ -675,7 +678,7 @@ func (meta *predicateMetadata) AddPod(addedPod *v1.Pod, node *v1.Node) error {
675
678
676
679
// ShallowCopy copies a metadata struct into a new struct and creates a copy of
677
680
// its maps and slices, but it does not copy the contents of pointer values.
678
- func (meta * predicateMetadata ) ShallowCopy () PredicateMetadata {
681
+ func (meta * predicateMetadata ) ShallowCopy () Metadata {
679
682
newPredMeta := & predicateMetadata {
680
683
pod : meta .pod ,
681
684
podBestEffort : meta .podBestEffort ,
@@ -685,7 +688,7 @@ func (meta *predicateMetadata) ShallowCopy() PredicateMetadata {
685
688
newPredMeta .evenPodsSpreadMetadata = meta .evenPodsSpreadMetadata .clone ()
686
689
newPredMeta .serviceAffinityMetadata = meta .serviceAffinityMetadata .clone ()
687
690
newPredMeta .podFitsResourcesMetadata = meta .podFitsResourcesMetadata .clone ()
688
- return (PredicateMetadata )(newPredMeta )
691
+ return (Metadata )(newPredMeta )
689
692
}
690
693
691
694
type affinityTermProperties struct {
0 commit comments