From 0d7371fdfe24d0440339ecb321e61714d74ceedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Ole=C5=9B?= Date: Mon, 24 Oct 2016 22:54:31 +0200 Subject: [PATCH] Emit event when scheduling daemon fails Restoring the code which was removed in 528bf7a. When there are no sufficient resources on node or there is a conflicting host port event is emited. It helps with debugging. Fixes #31369 --- pkg/controller/daemon/daemoncontroller.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/controller/daemon/daemoncontroller.go b/pkg/controller/daemon/daemoncontroller.go index 47bf7ab9b9a..d5e2f3d3f77 100644 --- a/pkg/controller/daemon/daemoncontroller.go +++ b/pkg/controller/daemon/daemoncontroller.go @@ -687,6 +687,14 @@ func (dsc *DaemonSetsController) nodeShouldRunDaemonPod(node *api.Node, ds *exte } for _, r := range reasons { glog.V(4).Infof("GeneralPredicates failed on ds '%s/%s' for reason: %v", ds.ObjectMeta.Namespace, ds.ObjectMeta.Name, r.GetReason()) + switch reason := r.(type) { + case *predicates.InsufficientResourceError: + dsc.eventRecorder.Eventf(ds, api.EventTypeNormal, "FailedPlacement", "failed to place pod on %q: %s", node.ObjectMeta.Name, reason.Error()) + case *predicates.PredicateFailureError: + if reason == predicates.ErrPodNotFitsHostPorts { + dsc.eventRecorder.Eventf(ds, api.EventTypeNormal, "FailedPlacement", "failed to place pod on %q: host port conflict", node.ObjectMeta.Name) + } + } } return fit }