var updateTaintBackoff … // AddOrUpdateTaintOnNode add taints to the node. If taint was added into node, it'll issue API calls // to update nodes; otherwise, no API calls. Return error if any. func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taints ...*v1.Taint) error { … } // PatchNodeTaints patches node's taints. func PatchNodeTaints(c clientset.Interface, nodeName string, oldNode *v1.Node, newNode *v1.Node) error { … } // addOrUpdateTaint tries to add a taint to annotations list. Returns a new copy of updated Node and true if something was updated // false otherwise. func addOrUpdateTaint(node *v1.Node, taint *v1.Taint) (*v1.Node, bool, error) { … } // RemoveTaintOffNode is for cleaning up taints temporarily added to node, // won't fail if target taint doesn't exist or has been removed. // If passed a node it'll check if there's anything to be done, if taint is not present it won't issue // any API calls. func RemoveTaintOffNode(c clientset.Interface, nodeName string, node *v1.Node, taints ...*v1.Taint) error { … } // taintExists checks if the given taint exists in list of taints. Returns true if exists false otherwise. func taintExists(taints []v1.Taint, taintToFind *v1.Taint) bool { … } // removeTaint tries to remove a taint from annotations list. Returns a new copy of updated Node and true if something was updated // false otherwise. func removeTaint(node *v1.Node, taint *v1.Taint) (*v1.Node, bool, error) { … } // deleteTaint removes all the taints that have the same key and effect to given taintToDelete. func deleteTaint(taints []v1.Taint, taintToDelete *v1.Taint) ([]v1.Taint, bool) { … }