mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
remove default priority cache in Priority admission controller
This commit is contained in:
parent
f351d8cddb
commit
97e5c0a3e4
@ -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
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user