Skip to content

Commit

Permalink
runtimehook reconcile support priorityFilter
Browse files Browse the repository at this point in the history
Signed-off-by: j4ckstraw <j4ckstraw@foxmail.com>
  • Loading branch information
j4ckstraw committed Apr 3, 2024
1 parent a735ac1 commit ee2cd2e
Showing 1 changed file with 29 additions and 2 deletions.
31 changes: 29 additions & 2 deletions pkg/koordlet/runtimehooks/reconciler/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,32 @@ func PodQOSFilter() Filter {
return singletonPodQOSFilter
}

type podPriorityFilter struct{}

const (
PodPriorityFilterName = "podPriority"
)

func (p *podPriorityFilter) Name() string {
return PodPriorityFilterName
}

func (p *podPriorityFilter) Filter(podMeta *statesinformer.PodMeta) string {
priority := apiext.GetPodPriorityClassRaw(podMeta.Pod)

return string(priority)
}

var singletonPodPriorityFilter *podPriorityFilter

// PodPriorityFilter returns a Filter which filters pod priority name
func PodPriorityFilter() *podPriorityFilter {
if singletonPodPriorityFilter == nil {
singletonPodPriorityFilter = &podPriorityFilter{}
}
return singletonPodPriorityFilter
}

type reconcileFunc func(protocol.HooksProtocol) error

// RegisterCgroupReconciler registers a cgroup reconciler according to the cgroup file, reconcile function and filter
Expand All @@ -153,12 +179,13 @@ func RegisterCgroupReconciler(level ReconcilerLevel, cgroupFile system.Resource,
continue
}

// if reconciler exist
if r.filter.Name() != filter.Name() {
klog.Fatalf("%v of level %v is already registered with filter %v by %v, cannot change to %v by %v",
// change fatal to warning
klog.Warningf("%v of level %v is already registered with filter %v by [%v], and now add new filter %v by [%v]",
cgroupFile.ResourceType(), level, r.filter.Name(), r.description, filter.Name(), description)
}

// NOTE: different filter should have different condition, so no conflict here if many filter registered
for _, condition := range conditions {
if _, ok := r.fn[condition]; ok {
klog.Fatalf("%v of level %v is already registered with condition %v by %v, cannot change by %v",
Expand Down

0 comments on commit ee2cd2e

Please sign in to comment.