diff --git a/cloudevent-broker/cmd/ingress/main.go b/cloudevent-broker/cmd/ingress/main.go index 40912fdb..0a42ebc3 100644 --- a/cloudevent-broker/cmd/ingress/main.go +++ b/cloudevent-broker/cmd/ingress/main.go @@ -8,6 +8,8 @@ package main import ( "context" "log" + "os" + "os/signal" "time" "cloud.google.com/go/compute/metadata" @@ -16,7 +18,6 @@ import ( "github.com/kelseyhightower/envconfig" "golang.org/x/oauth2/google" "google.golang.org/api/option" - "knative.dev/pkg/signals" cgpubsub "github.com/chainguard-dev/terraform-cloudrun-glue/pkg/pubsub" ) @@ -32,25 +33,26 @@ type envConfig struct { } func main() { - ctx := signals.NewContext() + ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt) + defer cancel() var env envConfig if err := envconfig.Process("", &env); err != nil { - log.Fatalf("failed to process env var: %s", err) + log.Panicf("failed to process env var: %s", err) } c, err := cloudevents.NewClientHTTP(cloudevents.WithPort(env.Port)) if err != nil { - log.Fatalf("failed to create CE client, %v", err) + log.Panicf("failed to create CE client, %v", err) } projectID, err := metadata.ProjectID() if err != nil { - log.Fatalf("failed to get project ID, %v", err) + log.Panicf("failed to get project ID, %v", err) } psc, err := pubsub.NewClient(ctx, projectID, option.WithTokenSource(google.ComputeTokenSource(""))) if err != nil { - log.Fatalf("failed to create pubsub client, %v", err) + log.Panicf("failed to create pubsub client, %v", err) } topic := psc.Topic(env.Topic) @@ -62,6 +64,6 @@ func main() { log.Printf("failed to forward event: %v\n%v", err, event) } }); err != nil { - log.Panic(err) + log.Panicf("failed to start receiver, %v", err) } } diff --git a/cloudevent-recorder/cmd/logrotate/main.go b/cloudevent-recorder/cmd/logrotate/main.go index 5771052a..80b473e7 100644 --- a/cloudevent-recorder/cmd/logrotate/main.go +++ b/cloudevent-recorder/cmd/logrotate/main.go @@ -6,12 +6,14 @@ SPDX-License-Identifier: Apache-2.0 package main import ( + "context" "log" + "os" + "os/signal" "time" "github.com/chainguard-dev/terraform-cloudrun-glue/pkg/rotate" "github.com/kelseyhightower/envconfig" - "knative.dev/pkg/signals" ) type rotateConfig struct { @@ -23,12 +25,14 @@ type rotateConfig struct { func main() { var rc rotateConfig if err := envconfig.Process("", &rc); err != nil { - log.Fatalf("Error processing environment: %v", err) + log.Panicf("Error processing environment: %v", err) } uploader := rotate.NewUploader(rc.LogPath, rc.Bucket, rc.FlushInterval) - if err := uploader.Run(signals.NewContext()); err != nil { - log.Fatalf("Failed to run the uploader: %v", err) + ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt) + defer cancel() + if err := uploader.Run(ctx); err != nil { + log.Panicf("Failed to run the uploader: %v", err) } } diff --git a/cloudevent-recorder/cmd/recorder/main.go b/cloudevent-recorder/cmd/recorder/main.go index d801afd3..bd166e4d 100644 --- a/cloudevent-recorder/cmd/recorder/main.go +++ b/cloudevent-recorder/cmd/recorder/main.go @@ -9,11 +9,11 @@ import ( "context" "log" "os" + "os/signal" "path/filepath" cloudevents "github.com/cloudevents/sdk-go/v2" "github.com/kelseyhightower/envconfig" - "knative.dev/pkg/signals" ) type envConfig struct { @@ -26,7 +26,8 @@ func main() { if err := envconfig.Process("", &env); err != nil { log.Panicf("failed to process env var: %s", err) } - ctx := signals.NewContext() + ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt) + defer cancel() c, err := cloudevents.NewClientHTTP(cloudevents.WithPort(env.Port)) if err != nil { @@ -41,6 +42,6 @@ func main() { filename := filepath.Join(dir, event.ID()) return os.WriteFile(filename, event.Data(), 0600) }); err != nil { - log.Panic(err) + log.Panicf("failed to start event receiver, %v", err) } } diff --git a/go.mod b/go.mod index cd658009..508c3938 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/chainguard-dev/terraform-cloudrun-glue go 1.21.1 require ( + cloud.google.com/go/compute/metadata v0.2.3 cloud.google.com/go/pubsub v1.33.0 github.com/cloudevents/sdk-go/v2 v2.14.0 github.com/google/go-cmp v0.6.0 @@ -11,13 +12,11 @@ require ( golang.org/x/exp v0.0.0-20231206192017-f3f8817b8deb golang.org/x/oauth2 v0.15.0 google.golang.org/api v0.154.0 - knative.dev/pkg v0.0.0-20231204120332-9386ad6703ee ) require ( cloud.google.com/go v0.110.10 // indirect cloud.google.com/go/compute v1.23.3 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.5 // indirect cloud.google.com/go/storage v1.35.1 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect @@ -39,6 +38,7 @@ require ( go.opentelemetry.io/otel v1.21.0 // indirect go.opentelemetry.io/otel/metric v1.21.0 // indirect go.opentelemetry.io/otel/trace v1.21.0 // indirect + go.uber.org/goleak v1.2.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/crypto v0.17.0 // indirect diff --git a/go.sum b/go.sum index 47c91805..a85e7938 100644 --- a/go.sum +++ b/go.sum @@ -274,5 +274,3 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -knative.dev/pkg v0.0.0-20231204120332-9386ad6703ee h1:O1bJlEC4pzAEyTt8+f0Qe50QqS2JJxhK269CAGZ68vg= -knative.dev/pkg v0.0.0-20231204120332-9386ad6703ee/go.mod h1:aJX49KSaKufMCwJgrCbHxXLTQ/j6LGspSZxn9VIv51w=