// GetPodFullName returns a name that uniquely identifies a pod. func GetPodFullName(pod *v1.Pod) string { … } // GetPodStartTime returns start time of the given pod or current timestamp // if it hasn't started yet. func GetPodStartTime(pod *v1.Pod) *metav1.Time { … } // GetEarliestPodStartTime returns the earliest start time of all pods that // have the highest priority among all victims. func GetEarliestPodStartTime(victims *extenderv1.Victims) *metav1.Time { … } // MoreImportantPod return true when priority of the first pod is higher than // the second one. If two pods' priorities are equal, compare their StartTime. // It takes arguments of the type "interface{}" to be used with SortableList, // but expects those arguments to be *v1.Pod. func MoreImportantPod(pod1, pod2 *v1.Pod) bool { … } // Retriable defines the retriable errors during a scheduling cycle. func Retriable(err error) bool { … } // PatchPodStatus calculates the delta bytes change from <old.Status> to <newStatus>, // and then submit a request to API server to patch the pod changes. func PatchPodStatus(ctx context.Context, cs kubernetes.Interface, old *v1.Pod, newStatus *v1.PodStatus) error { … } // DeletePod deletes the given <pod> from API server func DeletePod(ctx context.Context, cs kubernetes.Interface, pod *v1.Pod) error { … } // ClearNominatedNodeName internally submit a patch request to API server // to set each pods[*].Status.NominatedNodeName> to "". func ClearNominatedNodeName(ctx context.Context, cs kubernetes.Interface, pods ...*v1.Pod) utilerrors.Aggregate { … } // IsScalarResourceName validates the resource for Extended, Hugepages, Native and AttachableVolume resources func IsScalarResourceName(name v1.ResourceName) bool { … } // As converts two objects to the given type. // Both objects must be of the same type. If not, an error is returned. // nil objects are allowed and will be converted to nil. // For oldObj, cache.DeletedFinalStateUnknown is handled and the // object stored in it will be converted instead. func As[T any](oldObj, newobj interface{ … }