remove default priority cache in Priority admission controller

This commit is contained in:
wackxu 2018-02-11 11:15:31 +08:00
parent f351d8cddb
commit 97e5c0a3e4

View File

@ -52,8 +52,6 @@ type priorityPlugin struct {
*admission.Handler *admission.Handler
client internalclientset.Interface client internalclientset.Interface
lister schedulinglisters.PriorityClassLister lister schedulinglisters.PriorityClassLister
// globalDefaultPriority caches the value of global default priority class.
globalDefaultPriority *int32
} }
var _ admission.MutationInterface = &priorityPlugin{} var _ admission.MutationInterface = &priorityPlugin{}
@ -130,10 +128,6 @@ func (p *priorityPlugin) Validate(a admission.Attributes) error {
if operation == admission.Create || operation == admission.Update { if operation == admission.Create || operation == admission.Update {
return p.validatePriorityClass(a) return p.validatePriorityClass(a)
} }
if operation == admission.Delete {
p.invalidateCachedDefaultPriority()
return nil
}
return nil return nil
default: default:
@ -217,8 +211,6 @@ func (p *priorityPlugin) validatePriorityClass(a admission.Attributes) error {
} }
} }
} }
// We conservatively invalidate our cache of global default priority upon any changes to any of the existing classes or creation of a new class.
p.invalidateCachedDefaultPriority()
return nil return nil
} }
@ -241,24 +233,12 @@ func (p *priorityPlugin) getDefaultPriorityClass() (*scheduling.PriorityClass, e
} }
func (p *priorityPlugin) getDefaultPriority() (int32, error) { func (p *priorityPlugin) getDefaultPriority() (int32, error) {
// If global default priority is cached, return it.
if p.globalDefaultPriority != nil {
return *p.globalDefaultPriority, nil
}
dpc, err := p.getDefaultPriorityClass() dpc, err := p.getDefaultPriorityClass()
if err != nil { if err != nil {
return 0, err return 0, err
} }
priority := int32(scheduling.DefaultPriorityWhenNoDefaultClassExists)
if dpc != nil { if dpc != nil {
priority = dpc.Value return dpc.Value, nil
} }
// Cache the value. return int32(scheduling.DefaultPriorityWhenNoDefaultClassExists), nil
p.globalDefaultPriority = &priority
return priority, nil
}
// invalidateCachedDefaultPriority sets global default priority to nil to indicate that it should be looked up again.
func (p *priorityPlugin) invalidateCachedDefaultPriority() {
p.globalDefaultPriority = nil
} }