// MatchToleration checks if the toleration matches tolerationToMatch. Tolerations are unique by <key,effect,operator,value>, // if the two tolerations have same <key,effect,operator,value> combination, regard as they match. // TODO: uniqueness check for tolerations in api validations. func (t *Toleration) MatchToleration(tolerationToMatch *Toleration) bool { … } // ToleratesTaint checks if the toleration tolerates the taint. // The matching follows the rules below: // // 1. Empty toleration.effect means to match all taint effects, // otherwise taint effect must equal to toleration.effect. // 2. If toleration.operator is 'Exists', it means to match all taint values. // 3. Empty toleration.key means to match all taint keys. // If toleration.key is empty, toleration.operator must be 'Exists'; // this combination means to match all taint values and all taint keys. func (t *Toleration) ToleratesTaint(taint *Taint) bool { … }