mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 12:18:16 +00:00 
			
		
		
		
	daemonset controller should respect taints
This commit is contained in:
		@@ -713,6 +713,16 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *api.Node, ds *exte
 | 
				
			|||||||
	for _, r := range reasons {
 | 
						for _, r := range reasons {
 | 
				
			||||||
		glog.V(2).Infof("GeneralPredicates failed on pod %s for reason: %v", newPod.Name, r.GetReason())
 | 
							glog.V(2).Infof("GeneralPredicates failed on pod %s for reason: %v", newPod.Name, r.GetReason())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if !fit {
 | 
				
			||||||
 | 
							return false
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fit, reasons, err = predicates.PodToleratesNodeTaints(newPod, predicates.PredicateMetadata(newPod, nil), nodeInfo)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							glog.Warningf("PodToleratesNodeTaints failed on pod %s due to unexpected error: %v", newPod.Name, err)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for _, r := range reasons {
 | 
				
			||||||
 | 
							glog.V(2).Infof("PodToleratesNodeTaints failed on pod %s for reason: %v", newPod.Name, r.GetReason())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return fit
 | 
						return fit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -583,3 +583,31 @@ func TestNodeAffinityDaemonLaunchesPods(t *testing.T) {
 | 
				
			|||||||
	manager.dsStore.Add(daemon)
 | 
						manager.dsStore.Add(daemon)
 | 
				
			||||||
	syncAndValidateDaemonSets(t, manager, daemon, podControl, 3, 0)
 | 
						syncAndValidateDaemonSets(t, manager, daemon, podControl, 3, 0)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestNodeTaintDaemonDoesntLaunchIntolerantPods(t *testing.T) {
 | 
				
			||||||
 | 
						manager, podControl := newTestController()
 | 
				
			||||||
 | 
						node := newNode("", nil)
 | 
				
			||||||
 | 
						node.ObjectMeta.Annotations = map[string]string{
 | 
				
			||||||
 | 
							api.TaintsAnnotationKey: `[{"key":"dedictated","value":"master","effect":"NoSchedule"}]`,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						manager.nodeStore.Store.Add(node)
 | 
				
			||||||
 | 
						daemon := newDaemonSet("foo")
 | 
				
			||||||
 | 
						manager.dsStore.Add(daemon)
 | 
				
			||||||
 | 
						syncAndValidateDaemonSets(t, manager, daemon, podControl, 0, 0)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestNodeTaintDaemonLaunchesTolerantPods(t *testing.T) {
 | 
				
			||||||
 | 
						manager, podControl := newTestController()
 | 
				
			||||||
 | 
						node := newNode("", nil)
 | 
				
			||||||
 | 
						node.ObjectMeta.Annotations = map[string]string{
 | 
				
			||||||
 | 
							api.TaintsAnnotationKey: `[{"key":"dedictated","value":"master","effect":"NoSchedule"}]`,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						manager.nodeStore.Store.Add(node)
 | 
				
			||||||
 | 
						daemon := newDaemonSet("foo")
 | 
				
			||||||
 | 
						daemon.Spec.Template.ObjectMeta.Annotations = map[string]string{
 | 
				
			||||||
 | 
							api.TolerationsAnnotationKey: `[{"key":"dedictated","operator":"Equal","value":"master"}]`,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						manager.dsStore.Add(daemon)
 | 
				
			||||||
 | 
						syncAndValidateDaemonSets(t, manager, daemon, podControl, 1, 0)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user