const NodeUpdateChannelSize …
const UpdateWorkerSize …
const podUpdateChannelSize …
const retries …
type nodeUpdateItem …
type podUpdateItem …
func hash(val string, max int) int { … }
type GetPodsByNodeNameFunc …
type Controller …
func deletePodHandler(c clientset.Interface, emitEventFunc func(types.NamespacedName), controllerName string) func(ctx context.Context, fireAt time.Time, args *WorkArgs) error { … }
func addConditionAndDeletePod(ctx context.Context, c clientset.Interface, name, ns string) (err error) { … }
func getNoExecuteTaints(taints []v1.Taint) []v1.Taint { … }
func getMinTolerationTime(tolerations []v1.Toleration) time.Duration { … }
func New(ctx context.Context, c clientset.Interface, podInformer corev1informers.PodInformer, nodeInformer corev1informers.NodeInformer, controllerName string) (*Controller, error) { … }
func (tc *Controller) Run(ctx context.Context) { … }
func (tc *Controller) worker(ctx context.Context, worker int, done func(), stopCh <-chan struct{ … }
func (tc *Controller) PodUpdated(oldPod *v1.Pod, newPod *v1.Pod) { … }
func (tc *Controller) NodeUpdated(oldNode *v1.Node, newNode *v1.Node) { … }
func (tc *Controller) cancelWorkWithEvent(logger klog.Logger, nsName types.NamespacedName) { … }
func (tc *Controller) processPodOnNode(
ctx context.Context,
podNamespacedName types.NamespacedName,
nodeName string,
tolerations []v1.Toleration,
taints []v1.Taint,
now time.Time,
) { … }
func (tc *Controller) handlePodUpdate(ctx context.Context, podUpdate podUpdateItem) { … }
func (tc *Controller) handleNodeUpdate(ctx context.Context, nodeUpdate nodeUpdateItem) { … }
func (tc *Controller) emitPodDeletionEvent(nsName types.NamespacedName) { … }
func (tc *Controller) emitCancelPodDeletionEvent(nsName types.NamespacedName) { … }