mirror of https://github.com/k3s-io/k3s
daemonset controller should respect taints
parent
ea805efa4f
commit
00f05b441e
|
@ -713,6 +713,16 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *api.Node, ds *exte
|
|||
for _, r := range reasons {
|
||||
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
|
||||
}
|
||||
|
||||
|
|
|
@ -583,3 +583,31 @@ func TestNodeAffinityDaemonLaunchesPods(t *testing.T) {
|
|||
manager.dsStore.Add(daemon)
|
||||
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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue