diff --git a/hack/e2e.go b/hack/e2e.go index 65a974f523..4c909a12dd 100644 --- a/hack/e2e.go +++ b/hack/e2e.go @@ -25,6 +25,7 @@ import ( "log" "os" "os/exec" + "os/signal" "os/user" "path/filepath" "strconv" @@ -159,6 +160,21 @@ func main() { log.Fatalf("Error creating deployer: %v", err) } + if *down { + // listen for signals such as ^C and gracefully attempt to clean up + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt) + go func() { + for range c { + log.Print("Captured ^C, gracefully attempting to cleanup resources..") + if err := deploy.Down(); err != nil { + log.Printf("Tearing down deployment failed: %v", err) + os.Exit(1) + } + } + }() + } + if err := run(deploy); err != nil { log.Fatalf("Something went wrong: %s", err) }