mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	bugfix for PodToleratesNodeTaints
This commit is contained in:
		@@ -1180,11 +1180,6 @@ func tolerationsToleratesTaints(tolerations []v1.Toleration, taints []v1.Taint)
 | 
				
			|||||||
		return true
 | 
							return true
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// The taint list isn't nil/empty, a nil/empty toleration list can't tolerate them.
 | 
					 | 
				
			||||||
	if len(tolerations) == 0 {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i := range taints {
 | 
						for i := range taints {
 | 
				
			||||||
		taint := &taints[i]
 | 
							taint := &taints[i]
 | 
				
			||||||
		// skip taints that have effect PreferNoSchedule, since it is for priorities
 | 
							// skip taints that have effect PreferNoSchedule, since it is for priorities
 | 
				
			||||||
@@ -1192,7 +1187,7 @@ func tolerationsToleratesTaints(tolerations []v1.Toleration, taints []v1.Taint)
 | 
				
			|||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if !v1.TaintToleratedByTolerations(taint, tolerations) {
 | 
							if len(tolerations) == 0 || !v1.TaintToleratedByTolerations(taint, tolerations) {
 | 
				
			||||||
			return false
 | 
								return false
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3060,6 +3060,31 @@ func TestPodToleratesTaints(t *testing.T) {
 | 
				
			|||||||
			test: "The pod has a toleration that key and value don't match the taint on the node, " +
 | 
								test: "The pod has a toleration that key and value don't match the taint on the node, " +
 | 
				
			||||||
				"but the effect of taint on node is PreferNochedule. Pod can be scheduled onto the node",
 | 
									"but the effect of taint on node is PreferNochedule. Pod can be scheduled onto the node",
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								pod: &v1.Pod{
 | 
				
			||||||
 | 
									ObjectMeta: v1.ObjectMeta{
 | 
				
			||||||
 | 
										Name: "pod2",
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									Spec: v1.PodSpec{
 | 
				
			||||||
 | 
										Containers: []v1.Container{{Image: "pod2:V1"}},
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								node: v1.Node{
 | 
				
			||||||
 | 
									ObjectMeta: v1.ObjectMeta{
 | 
				
			||||||
 | 
										Annotations: map[string]string{
 | 
				
			||||||
 | 
											v1.TaintsAnnotationKey: `
 | 
				
			||||||
 | 
											[{
 | 
				
			||||||
 | 
												"key": "dedicated",
 | 
				
			||||||
 | 
												"value": "user1",
 | 
				
			||||||
 | 
												"effect": "PreferNoSchedule"
 | 
				
			||||||
 | 
											}]`,
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								fits: true,
 | 
				
			||||||
 | 
								test: "The pod has no toleration, " +
 | 
				
			||||||
 | 
									"but the effect of taint on node is PreferNochedule. Pod can be scheduled onto the node",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	expectedFailureReasons := []algorithm.PredicateFailureReason{ErrTaintsTolerationsNotMatch}
 | 
						expectedFailureReasons := []algorithm.PredicateFailureReason{ErrTaintsTolerationsNotMatch}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user