This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push: new 3068da6d8 fix: Use SIGTERM and SIGINT aware context for bootstrap operations 3068da6d8 is described below commit 3068da6d8c66d572b1d85d043fe217c355b18b77 Author: Antonin Stefanutti <anto...@stefanutti.fr> AuthorDate: Thu Sep 29 09:44:59 2022 +0200 fix: Use SIGTERM and SIGINT aware context for bootstrap operations --- pkg/cmd/operator/operator.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/cmd/operator/operator.go b/pkg/cmd/operator/operator.go index c1e57ada2..71817cf8c 100644 --- a/pkg/cmd/operator/operator.go +++ b/pkg/cmd/operator/operator.go @@ -134,6 +134,8 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID watchNamespace, err := getWatchNamespace() exitOnError(err, "failed to get watch namespace") + ctx := signals.SetupSignalHandler() + cfg, err := config.GetConfig() exitOnError(err, "cannot get client config") // Increase maximum burst that is used by client-side throttling, @@ -151,7 +153,7 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID broadcaster := record.NewBroadcaster() defer broadcaster.Shutdown() - if ok, err := kubernetes.CheckPermission(context.TODO(), bootstrapClient, corev1.GroupName, "events", watchNamespace, "", "create"); err != nil || !ok { + if ok, err := kubernetes.CheckPermission(ctx, bootstrapClient, corev1.GroupName, "events", watchNamespace, "", "create"); err != nil || !ok { // Do not sink Events to the server as they'll be rejected broadcaster = event.NewSinkLessBroadcaster(broadcaster) exitOnError(err, "cannot check permissions for creating Events") @@ -171,10 +173,10 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID } // Set the operator container image if it runs in-container - platform.OperatorImage, err = getOperatorImage(context.TODO(), bootstrapClient) + platform.OperatorImage, err = getOperatorImage(ctx, bootstrapClient) exitOnError(err, "cannot get operator container image") - if ok, err := kubernetes.CheckPermission(context.TODO(), bootstrapClient, coordination.GroupName, "leases", operatorNamespace, "", "create"); err != nil || !ok { + if ok, err := kubernetes.CheckPermission(ctx, bootstrapClient, coordination.GroupName, "leases", operatorNamespace, "", "create"); err != nil || !ok { leaderElection = false exitOnError(err, "cannot check permissions for creating Leases") log.Info("The operator is not granted permissions to create Leases") @@ -223,7 +225,7 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID exitOnError(err, "") exitOnError( - mgr.GetFieldIndexer().IndexField(context.Background(), &corev1.Pod{}, "status.phase", + mgr.GetFieldIndexer().IndexField(ctx, &corev1.Pod{}, "status.phase", func(obj ctrl.Object) []string { pod, _ := obj.(*corev1.Pod) return []string{string(pod.Status.Phase)} @@ -239,13 +241,13 @@ func Run(healthPort, monitoringPort int32, leaderElection bool, leaderElectionID exitOnError(controller.AddToManager(mgr, ctrlClient), "") log.Info("Installing operator resources") - installCtx, installCancel := context.WithTimeout(context.Background(), 1*time.Minute) + installCtx, installCancel := context.WithTimeout(ctx, 1*time.Minute) defer installCancel() install.OperatorStartupOptionalTools(installCtx, bootstrapClient, watchNamespace, operatorNamespace, log) exitOnError(findOrCreateIntegrationPlatform(installCtx, bootstrapClient, operatorNamespace), "failed to create integration platform") log.Info("Starting the manager") - exitOnError(mgr.Start(signals.SetupSignalHandler()), "manager exited non-zero") + exitOnError(mgr.Start(ctx), "manager exited non-zero") } // findOrCreateIntegrationPlatform create default integration platform in operator namespace if not already exists.