Commit 4d1d98c4 authored by Dr. Stefan Schimanski's avatar Dr. Stefan Schimanski Committed by Dr. Stefan Schimanski

Remove namespace controller pod precedence

parent a8ebc131
......@@ -18,7 +18,6 @@ package namespace
import (
"fmt"
"sort"
"sync"
"time"
......@@ -350,9 +349,6 @@ func deleteAllContent(
) (int64, error) {
estimate := int64(0)
glog.V(4).Infof("namespace controller - deleteAllContent - namespace: %s, gvrs: %v", namespace, groupVersionResources)
// iterate over each group version, and attempt to delete all of its resources
// we sort resources to delete in a priority order that deletes pods LAST
sort.Sort(sortableGroupVersionResources(groupVersionResources))
for _, gvr := range groupVersionResources {
gvrEstimate, err := deleteAllContentForGroupVersionResource(kubeClient, clientPool, opCache, gvr, namespace, namespaceDeletedAt)
if err != nil {
......@@ -502,20 +498,3 @@ func estimateGracefulTerminationForPods(kubeClient clientset.Interface, ns strin
}
return estimate, nil
}
// sortableGroupVersionResources sorts the input set of resources for deletion, and orders pods to always be last.
// the idea is that the namespace controller will delete all things that spawn pods first in order to reduce the time
// those controllers spend creating pods only to be told NO in admission and potentially overwhelming cluster especially if they lack rate limiting.
type sortableGroupVersionResources []schema.GroupVersionResource
func (list sortableGroupVersionResources) Len() int {
return len(list)
}
func (list sortableGroupVersionResources) Swap(i, j int) {
list[i], list[j] = list[j], list[i]
}
func (list sortableGroupVersionResources) Less(i, j int) bool {
return list[j].Group == "" && list[j].Resource == "pods"
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment