mirror of
https://github.com/ysoftdevs/imagepullsecret-injector.git
synced 2026-03-21 16:49:54 +01:00
Fix the server shutdown procedure
This commit is contained in:
26
cmd/main.go
26
cmd/main.go
@@ -62,19 +62,31 @@ func main() {
|
|||||||
mux.HandleFunc("/mutate", whsvr.serve)
|
mux.HandleFunc("/mutate", whsvr.serve)
|
||||||
whsvr.server.Handler = mux
|
whsvr.server.Handler = mux
|
||||||
|
|
||||||
// start webhook server in new rountine
|
// define the channel for shutting down the main process
|
||||||
|
endSignal := make(chan bool, 1)
|
||||||
|
|
||||||
|
// wait for the system interrupts in a separate routine
|
||||||
|
go func() {
|
||||||
|
signalChan := make(chan os.Signal, 1)
|
||||||
|
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
|
||||||
|
sig := <-signalChan
|
||||||
|
|
||||||
|
logger.Infof(fmt.Sprintf("Got OS signal \"%+v\", shutting down webhook server gracefully...", sig))
|
||||||
|
|
||||||
|
endSignal <- true
|
||||||
|
}()
|
||||||
|
|
||||||
|
// start the webhook server in a separate routine
|
||||||
go func() {
|
go func() {
|
||||||
if err := whsvr.server.ListenAndServeTLS(parameters.certFile, parameters.keyFile); err != nil {
|
if err := whsvr.server.ListenAndServeTLS(parameters.certFile, parameters.keyFile); err != nil {
|
||||||
logger.Errorf("Failed to listen and serve webhook server: %v", err)
|
logger.Errorf("Failed to listen and serve webhook server: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
endSignal <- true
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// listening OS shutdown singal
|
<-endSignal
|
||||||
signalChan := make(chan os.Signal, 1)
|
logger.Infof("Received the end signal, stopping the main process")
|
||||||
signal.Notify(signalChan, syscall.SIGINT, syscall.SIGTERM)
|
|
||||||
<-signalChan
|
|
||||||
|
|
||||||
logger.Infof("Got OS shutdown signal, shutting down webhook server gracefully...")
|
|
||||||
if err := whsvr.Shutdown(); err != nil {
|
if err := whsvr.Shutdown(); err != nil {
|
||||||
logger.Errorf("Error while shutting down: %v", err)
|
logger.Errorf("Error while shutting down: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user