# Functions

ConvertAnnotations converts annotations to ClustersNodeSelection.
CreateJSONPatch return patch generated from original and new interfaces.
CreateMergePatch return patch generated from original and new interfaces.
GetClusterID return the cluster in node label.
GetRequestFromPod get resources required by pod.
GetUpdatedPod allows user to update image, label, annotations for tolerations, we can only add some more.
IsVirtualNode defines if a node is virtual node.
IsVirtualPod defines if a pod is virtual pod.
NewClient returns a new client for k8s.
NewMetricClient returns a new client for k8s.
NewUnschedulableCache init a new Unschedulable.
RecoverLabels recover some label that have been removed.
ReplacePodNodeNameNodeAffinity replaces the RequiredDuringSchedulingIgnoredDuringExecution NodeAffinity of the given affinity with a new NodeAffinity that selects the given nodeName.
SetupSignalHandler registered for SIGTERM and SIGINT.
TrimObjectMeta removes some fields of ObjectMeta.
TrimPod filter some fields that should not be contained when created in subClusters for example: ownerReference, serviceLink and Uid we should also add some fields back for scheduling.
UpdateConfigMap updates the configMap data.
UpdateSecret updates the secret data.

# Constants

BatchPodLabel is the label of batch pod.
BetaHostNameKey is the label of HostNameKey.
ClusterID marks the id of a cluster.
CreatedbyDescheduler is used to mark if a pod is re-created by descheduler.
DescheduleCount is used for recording deschedule count.
GlobalLabel make object global.
HostNameKey is the label of HostNameKey.
LabelOSBeta is the label of os.
NodeType is define the node type key.
SelectedNodeKey is the node selected by a scheduler.
SelectorKey is the key of ClusterSelector.
TaintNodeNotReady will be added when node is not ready and feature-gate for TaintBasedEvictions flag is enabled, and removed when node becomes ready.
TaintNodeUnreachable will be added when node becomes unreachable (corresponding to NodeReady status ConditionUnknown) and feature-gate for TaintBasedEvictions flag is enabled, and removed when node becomes reachable (NodeReady status ConditionTrue).
TrippedLabels is the label of tripped labels.
VirtualKubeletLabel is the label of virtual kubelet.
VirtualPodLabel is the label of virtual pod.

# Structs

ClustersNodeSelection is a struct including some scheduling parameters.
UnschedulableCache contaiens cache ownerid/node/freezeTime.

# Type aliases

CheckValidFunc defines the check func.
Opts define the ops parameter functions.