From 098ebbee09775432c5c7c57376433105304408de Mon Sep 17 00:00:00 2001 From: Maciej Pytel Date: Fri, 22 Sep 2017 17:47:54 +0200 Subject: [PATCH] Log event when removing unregistered node --- cluster-autoscaler/core/static_autoscaler.go | 2 +- cluster-autoscaler/core/utils.go | 5 ++++- cluster-autoscaler/core/utils_test.go | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cluster-autoscaler/core/static_autoscaler.go b/cluster-autoscaler/core/static_autoscaler.go index 5c5cba3c47..8f4fbc4334 100644 --- a/cluster-autoscaler/core/static_autoscaler.go +++ b/cluster-autoscaler/core/static_autoscaler.go @@ -147,7 +147,7 @@ func (a *StaticAutoscaler) RunOnce(currentTime time.Time) errors.AutoscalerError unregisteredNodes := a.ClusterStateRegistry.GetUnregisteredNodes() if len(unregisteredNodes) > 0 { glog.V(1).Infof("%d unregistered nodes present", len(unregisteredNodes)) - removedAny, err := removeOldUnregisteredNodes(unregisteredNodes, autoscalingContext, currentTime) + removedAny, err := removeOldUnregisteredNodes(unregisteredNodes, autoscalingContext, currentTime, autoscalingContext.LogRecorder) // There was a problem with removing unregistered nodes. Retry in the next loop. if err != nil { if removedAny { diff --git a/cluster-autoscaler/core/utils.go b/cluster-autoscaler/core/utils.go index fe22c27494..d40c6ece33 100644 --- a/cluster-autoscaler/core/utils.go +++ b/cluster-autoscaler/core/utils.go @@ -25,6 +25,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/clusterstate" + "k8s.io/autoscaler/cluster-autoscaler/clusterstate/utils" "k8s.io/autoscaler/cluster-autoscaler/metrics" "k8s.io/autoscaler/cluster-autoscaler/simulator" "k8s.io/autoscaler/cluster-autoscaler/utils/daemonset" @@ -313,7 +314,7 @@ func sanitizeTemplateNode(node *apiv1.Node, nodeGroup string) (*apiv1.Node, erro // Removes unregistered nodes if needed. Returns true if anything was removed and error if such occurred. func removeOldUnregisteredNodes(unregisteredNodes []clusterstate.UnregisteredNode, context *AutoscalingContext, - currentTime time.Time) (bool, error) { + currentTime time.Time, logRecorder *utils.LogEventRecorder) (bool, error) { removedAny := false for _, unregisteredNode := range unregisteredNodes { if unregisteredNode.UnregisteredSince.Add(context.UnregisteredNodeRemovalTime).Before(currentTime) { @@ -327,6 +328,8 @@ func removeOldUnregisteredNodes(unregisteredNodes []clusterstate.UnregisteredNod glog.Warningf("No node group for node %s, skipping", unregisteredNode.Node.Name) continue } + logRecorder.Eventf(apiv1.EventTypeNormal, "DeleteUnregistered", + "Removing unregistered node %v", unregisteredNode.Node.Name) err = nodeGroup.DeleteNodes([]*apiv1.Node{unregisteredNode.Node}) if err != nil { glog.Warningf("Failed to remove node %s: %v", unregisteredNode.Node.Name, err) diff --git a/cluster-autoscaler/core/utils_test.go b/cluster-autoscaler/core/utils_test.go index f27069781f..3d5ab40069 100644 --- a/cluster-autoscaler/core/utils_test.go +++ b/cluster-autoscaler/core/utils_test.go @@ -273,12 +273,12 @@ func TestRemoveOldUnregisteredNodes(t *testing.T) { assert.Equal(t, 1, len(unregisteredNodes)) // Nothing should be removed. The unregistered node is not old enough. - removed, err := removeOldUnregisteredNodes(unregisteredNodes, context, now.Add(-50*time.Minute)) + removed, err := removeOldUnregisteredNodes(unregisteredNodes, context, now.Add(-50*time.Minute), fakeLogRecorder) assert.NoError(t, err) assert.False(t, removed) // ng1_2 should be removed. - removed, err = removeOldUnregisteredNodes(unregisteredNodes, context, now) + removed, err = removeOldUnregisteredNodes(unregisteredNodes, context, now, fakeLogRecorder) assert.NoError(t, err) assert.True(t, removed) deletedNode := getStringFromChan(deletedNodes)