From 0b18d3608f4a6a75f7308761a7afa557ffddef12 Mon Sep 17 00:00:00 2001 From: s-z-z Date: Thu, 28 Aug 2025 17:08:39 +0800 Subject: [PATCH] cleanup: replace custom signal handling with Kubernetes apiserver.SetupSignalContext as they are identical. Signed-off-by: s-z-z --- pkg/manager/signals/signal.go | 26 ++------------------------ pkg/manager/signals/signal_posix.go | 27 --------------------------- pkg/manager/signals/signal_windows.go | 23 ----------------------- 3 files changed, 2 insertions(+), 74 deletions(-) delete mode 100644 pkg/manager/signals/signal_posix.go delete mode 100644 pkg/manager/signals/signal_windows.go diff --git a/pkg/manager/signals/signal.go b/pkg/manager/signals/signal.go index a79cfb42df..76ef17a8e0 100644 --- a/pkg/manager/signals/signal.go +++ b/pkg/manager/signals/signal.go @@ -17,29 +17,7 @@ limitations under the License. package signals import ( - "context" - "os" - "os/signal" + apiserver "k8s.io/apiserver/pkg/server" ) -var onlyOneSignalHandler = make(chan struct{}) - -// SetupSignalHandler registers for SIGTERM and SIGINT. A context is returned -// which is canceled on one of these signals. If a second signal is caught, the program -// is terminated with exit code 1. -func SetupSignalHandler() context.Context { - close(onlyOneSignalHandler) // panics when called twice - - ctx, cancel := context.WithCancel(context.Background()) - - c := make(chan os.Signal, 2) - signal.Notify(c, shutdownSignals...) - go func() { - <-c - cancel() - <-c - os.Exit(1) // second signal. Exit directly. - }() - - return ctx -} +var SetupSignalHandler = apiserver.SetupSignalContext diff --git a/pkg/manager/signals/signal_posix.go b/pkg/manager/signals/signal_posix.go deleted file mode 100644 index a0f00a7321..0000000000 --- a/pkg/manager/signals/signal_posix.go +++ /dev/null @@ -1,27 +0,0 @@ -//go:build !windows -// +build !windows - -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package signals - -import ( - "os" - "syscall" -) - -var shutdownSignals = []os.Signal{os.Interrupt, syscall.SIGTERM} diff --git a/pkg/manager/signals/signal_windows.go b/pkg/manager/signals/signal_windows.go deleted file mode 100644 index 4907d573fe..0000000000 --- a/pkg/manager/signals/signal_windows.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package signals - -import ( - "os" -) - -var shutdownSignals = []os.Signal{os.Interrupt}