Merge pull request #78259 from tedyu/non-ignorable-extenders

Put non-ignorable extenders ahead of ignorable extenders
This commit is contained in:
Kubernetes Prow Robot 2019-05-23 16:36:18 -07:00 committed by GitHub
commit 2daad0b535
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -387,19 +387,26 @@ func (c *configFactory) CreateFromConfig(policy schedulerapi.Policy) (*Config, e
var extenders []algorithm.SchedulerExtender var extenders []algorithm.SchedulerExtender
if len(policy.ExtenderConfigs) != 0 { if len(policy.ExtenderConfigs) != 0 {
ignoredExtendedResources := sets.NewString() ignoredExtendedResources := sets.NewString()
var ignorableExtenders []algorithm.SchedulerExtender
for ii := range policy.ExtenderConfigs { for ii := range policy.ExtenderConfigs {
klog.V(2).Infof("Creating extender with config %+v", policy.ExtenderConfigs[ii]) klog.V(2).Infof("Creating extender with config %+v", policy.ExtenderConfigs[ii])
extender, err := core.NewHTTPExtender(&policy.ExtenderConfigs[ii]) extender, err := core.NewHTTPExtender(&policy.ExtenderConfigs[ii])
if err != nil { if err != nil {
return nil, err return nil, err
} }
extenders = append(extenders, extender) if !extender.IsIgnorable() {
extenders = append(extenders, extender)
} else {
ignorableExtenders = append(ignorableExtenders, extender)
}
for _, r := range policy.ExtenderConfigs[ii].ManagedResources { for _, r := range policy.ExtenderConfigs[ii].ManagedResources {
if r.IgnoredByScheduler { if r.IgnoredByScheduler {
ignoredExtendedResources.Insert(string(r.Name)) ignoredExtendedResources.Insert(string(r.Name))
} }
} }
} }
// place ignorable extenders to the tail of extenders
extenders = append(extenders, ignorableExtenders...)
predicates.RegisterPredicateMetadataProducerWithExtendedResourceOptions(ignoredExtendedResources) predicates.RegisterPredicateMetadataProducerWithExtendedResourceOptions(ignoredExtendedResources)
} }
// Providing HardPodAffinitySymmetricWeight in the policy config is the new and preferred way of providing the value. // Providing HardPodAffinitySymmetricWeight in the policy config is the new and preferred way of providing the value.