diff --git a/cmd/kured/main.go b/cmd/kured/main.go index 6adcbd5..c1b4d96 100644 --- a/cmd/kured/main.go +++ b/cmd/kured/main.go @@ -173,6 +173,13 @@ func release(lock *daemonsetlock.DaemonSetLock) { func drain(nodeID string) { log.Infof("Draining node %s", nodeID) + + if slackHookURL != "" { + if err := slack.NotifyDrain(slackHookURL, slackUsername, nodeID); err != nil { + log.Warnf("Error notifying slack: %v", err) + } + } + drainCmd := newCommand("/usr/bin/kubectl", "drain", "--ignore-daemonsets", "--delete-local-data", "--force", nodeID) diff --git a/pkg/notifications/slack/slack.go b/pkg/notifications/slack/slack.go index e01ffc1..9af0b11 100644 --- a/pkg/notifications/slack/slack.go +++ b/pkg/notifications/slack/slack.go @@ -17,9 +17,9 @@ type body struct { Username string `json:"username,omitempty"` } -func NotifyReboot(hookURL, username, nodeID string) error { +func notify(hookURL, username, message string) error { msg := body{ - Text: fmt.Sprintf("Rebooting node %s", nodeID), + Text: message, Username: username, } @@ -40,3 +40,11 @@ func NotifyReboot(hookURL, username, nodeID string) error { return nil } + +func NotifyDrain(hookURL, username, nodeID string) error { + return notify(hookURL, username, fmt.Sprintf("Draining node %s", nodeID)) +} + +func NotifyReboot(hookURL, username, nodeID string) error { + return notify(hookURL, username, fmt.Sprintf("Rebooting node %s", nodeID)) +}