diff --git a/pkg/controller/daemon/daemoncontroller.go b/pkg/controller/daemon/daemoncontroller.go index 548a40e5446..b762d8d3d03 100644 --- a/pkg/controller/daemon/daemoncontroller.go +++ b/pkg/controller/daemon/daemoncontroller.go @@ -563,9 +563,9 @@ func (dsc *DaemonSetsController) manage(ds *extensions.DaemonSet) error { for err := range errCh { errors = append(errors, err) } + // Throw an error when the daemon pods fail, to use ratelimiter to prevent kill-recreate hot loop if failedPodsObserved > 0 { - // Throw an error when the daemon pods fail to prevent kill-recreate hot loop - errors = append(errors, fmt.Errorf("Deleted %d failed pods", failedPodsObserved)) + errors = append(errors, fmt.Errorf("deleted %d failed pods of DaemonSet %s/%s", failedPodsObserved, ds.Namespace, ds.Name)) } return utilerrors.NewAggregate(errors) } diff --git a/pkg/controller/daemon/daemoncontroller_test.go b/pkg/controller/daemon/daemoncontroller_test.go index 3cff2c047a9..737326bc82e 100644 --- a/pkg/controller/daemon/daemoncontroller_test.go +++ b/pkg/controller/daemon/daemoncontroller_test.go @@ -661,7 +661,7 @@ func TestObservedGeneration(t *testing.T) { } } -// DaemonSet controller should kill all failed pods and recreate at most 1 failed pod. +// DaemonSet controller should kill all failed pods and create at most 1 pod on every node. func TestDaemonKillFailedPods(t *testing.T) { tests := []struct { numFailedPods, numNormalPods, expectedCreates, expectedDeletes int