From ed87d23dfaf6b5dbcb683e4efc59ba417dea3c6c Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 30 Dec 2024 19:13:46 +0000 Subject: [PATCH 01/48] Create terraform tests that install the collector directly --- Dockerfile | 3 +- cloudbuild-collector.yaml | 35 +++ cmd/testmatrix/main.go | 6 +- e2etestrunner-collector/main_test.go | 86 ++++++ e2etestrunner-collector/setupgcecollector.go | 49 ++++ .../setupgcloudruncollector.go | 49 ++++ e2etestrunner-collector/setupgkecollector.go | 35 +++ .../setupgkeoperatorcollector.go | 35 +++ e2etestrunner-collector/smoke_test.go | 134 +++++++++ e2etestrunner/main_test.go | 13 +- e2etestrunner/setup_cloud_functions_gen2.go | 7 +- e2etestrunner/setup_cloud_run.go | 7 +- e2etestrunner/setupgae.go | 7 +- e2etestrunner/setupgaestandard.go | 7 +- e2etestrunner/setupgce.go | 7 +- e2etestrunner/setupgke.go | 7 +- e2etestrunner/setuplocal.go | 9 +- e2etestrunner/testclient/testclient.go | 2 +- e2etestrunner/trace_test.go | 3 +- go.mod | 52 ++-- go.sum | 116 ++++---- go.work | 6 - go.work.sum | 259 ------------------ quickstarttest/go.mod | 44 +-- quickstarttest/go.sum | 69 ++--- tf/cloud-run-collector/cloud-run-collector.tf | 58 ++++ tf/cloud-run-collector/main-common.tf | 1 + tf/common/main-common.tf | 4 +- tf/gce-collector/gce-collector.tf | 76 +++++ tf/gce-collector/main-common.tf | 1 + tf/gke-collector/gke-collector.tf | 90 ++++++ tf/gke-collector/main-common.tf | 1 + .../gke-operator-collector.tf | 95 +++++++ tf/gke-operator-collector/main-common.tf | 1 + tf/modules/otel-config/main.tf | 128 +++++++++ tf/persistent-collector/gke-cluster.tf | 15 + tf/persistent-collector/main-common.tf | 1 + {e2etestrunner => util}/art.go | 2 +- {e2etestrunner => util}/e2e_testing.go | 42 ++- {e2etestrunner => util}/setuptf/setuptf.go | 30 +- {e2etestrunner => util}/util.go | 6 +- 41 files changed, 1132 insertions(+), 466 deletions(-) create mode 100644 cloudbuild-collector.yaml create mode 100644 e2etestrunner-collector/main_test.go create mode 100644 e2etestrunner-collector/setupgcecollector.go create mode 100644 e2etestrunner-collector/setupgcloudruncollector.go create mode 100644 e2etestrunner-collector/setupgkecollector.go create mode 100644 e2etestrunner-collector/setupgkeoperatorcollector.go create mode 100644 e2etestrunner-collector/smoke_test.go delete mode 100644 go.work delete mode 100644 go.work.sum create mode 100644 tf/cloud-run-collector/cloud-run-collector.tf create mode 120000 tf/cloud-run-collector/main-common.tf create mode 100644 tf/gce-collector/gce-collector.tf create mode 120000 tf/gce-collector/main-common.tf create mode 100644 tf/gke-collector/gke-collector.tf create mode 120000 tf/gke-collector/main-common.tf create mode 100644 tf/gke-operator-collector/gke-operator-collector.tf create mode 120000 tf/gke-operator-collector/main-common.tf create mode 100644 tf/modules/otel-config/main.tf create mode 100644 tf/persistent-collector/gke-cluster.tf create mode 120000 tf/persistent-collector/main-common.tf rename {e2etestrunner => util}/art.go (99%) rename {e2etestrunner => util}/e2e_testing.go (68%) rename {e2etestrunner => util}/setuptf/setuptf.go (89%) rename {e2etestrunner => util}/util.go (90%) diff --git a/Dockerfile b/Dockerfile index fac641e..2834459 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,13 +14,14 @@ FROM golang:1.23 AS gobuild WORKDIR /src +ARG BUILD_TAGS # cache deps before copying source so that we don't re-download as much COPY go.mod go.sum ./ RUN go mod download COPY . . -RUN CGO_ENABLED=0 go test -tags=e2e -c ./e2etestrunner -o opentelemetry-operations-e2e-testing.test +RUN set -x; if [ "$BUILD_TAGS" = "e2ecollector" ]; then BUILD_DIRECTORY="e2etestrunner-collector"; else BUILD_TAGS="e2e"; BUILD_DIRECTORY="e2etestrunner"; fi; CGO_ENABLED=0 go test -timeout 3600s -tags=$BUILD_TAGS -c "./$BUILD_DIRECTORY" -o opentelemetry-operations-e2e-testing.test FROM hashicorp/terraform:light as tfbuild COPY tf /src/tf diff --git a/cloudbuild-collector.yaml b/cloudbuild-collector.yaml new file mode 100644 index 0000000..b61943a --- /dev/null +++ b/cloudbuild-collector.yaml @@ -0,0 +1,35 @@ +# Copyright 2021 Google LLC +# +# 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. + +# Builds a docker image, tagging it as _DOCKER_TAG (substitution must be +# provided) and latest. + +steps: +- name: docker + env: + - DOCKER_BUILDKIT=1 + args: + - build + - --tag=${_TEST_RUNNER_IMAGE_NAME}:${_DOCKER_TAG} + - --tag=${_TEST_RUNNER_IMAGE_NAME}:latest + - --build-arg=BUILDKIT_INLINE_CACHE=1 + - --build-arg=BUILD_TAGS=e2ecollector + - --cache-from=${_TEST_RUNNER_IMAGE_NAME}:latest + - . + +images: ["${_TEST_RUNNER_IMAGE_NAME}"] +options: + dynamic_substitutions: true +substitutions: + _TEST_RUNNER_IMAGE_NAME: us-central1-docker.pkg.dev/${PROJECT_ID}/e2e-testing/opentelemetry-operations-e2e-testing diff --git a/cmd/testmatrix/main.go b/cmd/testmatrix/main.go index 72ed9ea..578016e 100644 --- a/cmd/testmatrix/main.go +++ b/cmd/testmatrix/main.go @@ -25,6 +25,7 @@ import ( "bufio" "context" "fmt" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" "html/template" "log" "os" @@ -33,7 +34,6 @@ import ( "strings" "cloud.google.com/go/storage" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner" "github.com/alexflint/go-arg" "golang.org/x/sync/errgroup" "google.golang.org/api/cloudbuild/v1" @@ -88,7 +88,7 @@ This will fetch recent Cloud Build logs to automatically update the statuses in ) type Args struct { - e2etestrunner.CmdWithProjectId + util.CmdWithProjectId } type status string @@ -106,7 +106,7 @@ var ( ) func main() { - args := e2etestrunner.Args{} + args := util.Args{} arg.MustParse(&args) ctx := context.Background() diff --git a/e2etestrunner-collector/main_test.go b/e2etestrunner-collector/main_test.go new file mode 100644 index 0000000..576b49b --- /dev/null +++ b/e2etestrunner-collector/main_test.go @@ -0,0 +1,86 @@ +//go:build e2ecollector + +package e2etestrunner_collector + +import ( + "context" + "flag" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" + "math/rand" + "os" + "strings" + "testing" + "time" + + "github.com/alexflint/go-arg" +) + +var ( + args util.Args + resourceType string +) + +func TestMain(m *testing.M) { + rand.New(rand.NewSource(time.Now().UnixNano())) + p := arg.MustParse(&args) + if p.Subcommand() == nil { + p.Fail("missing command") + } + // Need a logger just for TestMain() before testing.T is available + logger := log.New(os.Stdout, "TestMain: ", log.LstdFlags|log.Lshortfile) + ctx := context.Background() + + // Handle special case of just creating persistent resources + if args.ApplyPersistent != nil { + err := setuptf.ApplyPersistentCollector(ctx, args.ProjectID, args.ApplyPersistent.AutoApprove, logger) + if err != nil { + logger.Panic(err) + } + return + } + + // hacky but works + os.Args = append([]string{os.Args[0]}, strings.Fields(args.GoTestFlags)...) + flag.Parse() + + // handle any complex defaults + if args.TestRunID == "" { + hex, err := util.RandomHex(6) + if err != nil { + logger.Fatalf("error generating random hex string: %v\n", err) + } + args.TestRunID = hex + } + + var setupFunc util.SetupCollectorFunc + switch { + case args.GceCollector != nil: + setupFunc = SetupGceCollector + resourceType = "gce_instance" + case args.GkeCollector != nil: + setupFunc = SetupGkeCollector + resourceType = "k8s_container" + case args.GkeOperatorCollector != nil: + setupFunc = SetupGkeOperatorCollector + resourceType = "k8s_container" + case args.CloudRunCollector != nil: + setupFunc = SetupCloudRunCollector + resourceType = "generic_task" + } + cleanup, err := setupFunc(ctx, &args, logger) + + defer cleanup() + if err != nil { + logger.Panic(err) + } + + // wait for instrumented test server to be healthy + logger.Printf("Waiting for health check on (will timeout after %v)\n", args.HealthCheckTimeout) + time.Sleep(args.HealthCheckTimeout) + // Run tests + logger.Print(util.BeginOutputArt) + m.Run() + logger.Print(util.EndOutputArt) +} diff --git a/e2etestrunner-collector/setupgcecollector.go b/e2etestrunner-collector/setupgcecollector.go new file mode 100644 index 0000000..9682387 --- /dev/null +++ b/e2etestrunner-collector/setupgcecollector.go @@ -0,0 +1,49 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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 e2etestrunner_collector + +import ( + "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" +) + +const gceCollectorTfDir string = "tf/gce-collector" + +// SetupGceCollector Set up the collector to run in GCE container. Creates a new +// GCE VM resources, and runs the specified container image. The +// returned cleanup function tears down the VM. +func SetupGceCollector( + ctx context.Context, + args *util.Args, + logger *log.Logger, +) (util.Cleanup, error) { + _, cleanupTf, err := setuptf.SetupTf( + ctx, + args.ProjectID, + args.TestRunID, + gceCollectorTfDir, + map[string]string{ + "image": args.GceCollector.Image, + }, + logger, + ) + if err != nil { + return cleanupTf, err + } + + return cleanupTf, err +} diff --git a/e2etestrunner-collector/setupgcloudruncollector.go b/e2etestrunner-collector/setupgcloudruncollector.go new file mode 100644 index 0000000..0e6b81e --- /dev/null +++ b/e2etestrunner-collector/setupgcloudruncollector.go @@ -0,0 +1,49 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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 e2etestrunner_collector + +import ( + "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" +) + +const cloudRunCollectorTfDir string = "tf/cloud-run-collector" + +// SetupCloudRunCollector sets up the collector to run in Cloud Run. +// Creates a new service and runs the specified container image as a revision. +// The returned cleanup function tears down everything. +func SetupCloudRunCollector( + ctx context.Context, + args *util.Args, + logger *log.Logger, +) (util.Cleanup, error) { + _, cleanupTf, err := setuptf.SetupTf( + ctx, + args.ProjectID, + args.TestRunID, + cloudRunCollectorTfDir, + map[string]string{ + "image": args.CloudRunCollector.Image, + }, + logger, + ) + if err != nil { + return cleanupTf, err + } + + return cleanupTf, err +} diff --git a/e2etestrunner-collector/setupgkecollector.go b/e2etestrunner-collector/setupgkecollector.go new file mode 100644 index 0000000..5e659d8 --- /dev/null +++ b/e2etestrunner-collector/setupgkecollector.go @@ -0,0 +1,35 @@ +package e2etestrunner_collector + +import ( + "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" +) + +const gkeCollectorTfDir string = "tf/gke-collector" + +// SetupGkeCollector Set up the collector to run in GKE. +// Creates a new pod and runs the specified container image in a pod. +// The returned cleanup function tears down the whole cluster. +func SetupGkeCollector( + ctx context.Context, + args *util.Args, + logger *log.Logger, +) (util.Cleanup, error) { + _, cleanupTf, err := setuptf.SetupTf( + ctx, + args.ProjectID, + args.TestRunID, + gkeCollectorTfDir, + map[string]string{ + "image": args.GkeCollector.Image, + }, + logger, + ) + if err != nil { + return cleanupTf, err + } + + return cleanupTf, err +} diff --git a/e2etestrunner-collector/setupgkeoperatorcollector.go b/e2etestrunner-collector/setupgkeoperatorcollector.go new file mode 100644 index 0000000..86fff65 --- /dev/null +++ b/e2etestrunner-collector/setupgkeoperatorcollector.go @@ -0,0 +1,35 @@ +package e2etestrunner_collector + +import ( + "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" +) + +const gkeOperatorCollectorTfDir string = "tf/gke-operator-collector" + +// SetupGkeOperatorCollector Set up the collector to run in GKE. +// Creates a new pod and runs the specified container image in a pod. +// The returned cleanup function tears down the whole cluster. +func SetupGkeOperatorCollector( + ctx context.Context, + args *util.Args, + logger *log.Logger, +) (util.Cleanup, error) { + _, cleanupTf, err := setuptf.SetupTf( + ctx, + args.ProjectID, + args.TestRunID, + gkeOperatorCollectorTfDir, + map[string]string{ + "image": args.GkeOperatorCollector.Image, + }, + logger, + ) + if err != nil { + return cleanupTf, err + } + + return cleanupTf, err +} diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go new file mode 100644 index 0000000..d0afa1e --- /dev/null +++ b/e2etestrunner-collector/smoke_test.go @@ -0,0 +1,134 @@ +//go:build e2ecollector + +package e2etestrunner_collector + +import ( + "cloud.google.com/go/logging" + "cloud.google.com/go/logging/logadmin" + monitoring "cloud.google.com/go/monitoring/apiv3/v2" + monitoringpb "cloud.google.com/go/monitoring/apiv3/v2/monitoringpb" + "context" + "errors" + "fmt" + "google.golang.org/api/cloudtrace/v1" + "google.golang.org/api/iterator" + "google.golang.org/protobuf/types/known/timestamppb" + "strings" + "testing" + "time" +) + +const ( + representativeMetric = "workload.googleapis.com/otelcol_exporter_sent_metric_points" + queryMaxAttempts = 3 + labelName = "otelcol_google_e2e" +) + +func TestMetrics(t *testing.T) { + ctx := context.Background() + c, err := monitoring.NewMetricClient(ctx) + if err != nil { + t.Fatal(err) + } + defer c.Close() + + tsList := make([]*monitoringpb.TimeSeries, 0) + for attempt := 1; attempt <= queryMaxAttempts; attempt++ { + window := 10 * time.Minute + now := time.Now() + start := timestamppb.New(now.Add(-window)) + end := timestamppb.New(now) + fmt.Println(fmt.Sprintf("resource.type = %q", resourceType)) + filters := []string{ + fmt.Sprintf("metric.type = %q", representativeMetric), + fmt.Sprintf("resource.type = %q", resourceType), + fmt.Sprintf("metric.labels.otelcol_google_e2e = %s", args.TestRunID), + } + + req := &monitoringpb.ListTimeSeriesRequest{ + Name: "projects/" + args.ProjectID, + Filter: strings.Join(filters, " AND "), + Interval: &monitoringpb.TimeInterval{ + EndTime: end, + StartTime: start, + }, + View: monitoringpb.ListTimeSeriesRequest_FULL, + } + + it := c.ListTimeSeries(ctx, req) + for { + series, err := it.Next() + if errors.Is(err, iterator.Done) { + break + } + if err != nil { + t.Fatal("Timeseries query failed with error:", err) + } + if len(series.Points) == 0 { + continue + } + tsList = append(tsList, series) + } + if len(tsList) == 0 { + continue + } + break + } + + if len(tsList) == 0 { + t.Fatal(fmt.Errorf("Could not find representative metric: %q", representativeMetric)) + } + + fmt.Printf("Found representative metric: %v\n", tsList[0].Metric) +} + +func TestLogging(t *testing.T) { + ctx := context.Background() + client, err := logadmin.NewClient(ctx, args.ProjectID) + if err != nil { + t.Fatal(err) + } + start := time.Now().Add(-time.Hour) + + window := start.Format(time.RFC3339) + filter := fmt.Sprintf(`resource.type="%s" AND labels.%s="%s" AND timestamp > "%s"`, resourceType, labelName, args.TestRunID, window) + + var entry *logging.Entry + for attempt := 1; attempt <= queryMaxAttempts; attempt++ { + entries := client.Entries(ctx, + logadmin.Filter(filter), + ) + + entry, err = entries.Next() + if err == nil { + // log found + break + } + time.Sleep(10 * time.Second) + } + + fmt.Println(fmt.Sprintf("Entry found: %v", entry)) + if err != nil { + t.Errorf(fmt.Sprintf("Could not any logs matching filter: %s", filter)) + } +} + +func TestTraces(t *testing.T) { + ctx := context.Background() + cloudService, err := cloudtrace.NewService(ctx) + if err != nil { + t.Fatal(err) + } + + req := cloudService.Projects.Traces.List(args.ProjectID) + req.Filter(fmt.Sprintf("otelcol_google_e2e:%s", args.TestRunID)) + resp, err := req.Do() + if err != nil { + t.Fatal(err) + } + tracesFound := len(resp.Traces) + if tracesFound == 0 { + t.Errorf(fmt.Sprintf("Could not find traces with resource attribute otelcol_google_e2e:%s", args.TestRunID)) + } + fmt.Println(fmt.Sprintf("Found traces with otelcol_google_e2e:%s", args.TestRunID)) +} diff --git a/e2etestrunner/main_test.go b/e2etestrunner/main_test.go index 007bd68..d71fdcd 100644 --- a/e2etestrunner/main_test.go +++ b/e2etestrunner/main_test.go @@ -20,6 +20,8 @@ package e2etestrunner import ( "context" "flag" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" "math/rand" "os" @@ -27,13 +29,12 @@ import ( "testing" "time" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" "github.com/alexflint/go-arg" ) var ( - args Args + args util.Args testServerClient *testclient.Client ) @@ -62,14 +63,14 @@ func TestMain(m *testing.M) { // handle any complex defaults if args.TestRunID == "" { - hex, err := randomHex(6) + hex, err := util.RandomHex(6) if err != nil { logger.Fatalf("error generating random hex string: %v\n", err) } args.TestRunID = hex } - var setupFunc SetupFunc + var setupFunc util.SetupFunc switch { case args.Local != nil: setupFunc = SetupLocal @@ -106,7 +107,7 @@ func TestMain(m *testing.M) { } // Run tests - logger.Print(BeginOutputArt) + logger.Print(util.BeginOutputArt) m.Run() - logger.Print(EndOutputArt) + logger.Print(util.EndOutputArt) } diff --git a/e2etestrunner/setup_cloud_functions_gen2.go b/e2etestrunner/setup_cloud_functions_gen2.go index 9488b59..74a16fe 100644 --- a/e2etestrunner/setup_cloud_functions_gen2.go +++ b/e2etestrunner/setup_cloud_functions_gen2.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -29,9 +30,9 @@ const cloudFunctionTfDir string = "tf/cloud-functions-gen2" // The returned cleanup function tears down everything. func SetupCloudFunctionsGen2( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setup_cloud_run.go b/e2etestrunner/setup_cloud_run.go index b1fd9a4..11379b4 100644 --- a/e2etestrunner/setup_cloud_run.go +++ b/e2etestrunner/setup_cloud_run.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -29,9 +30,9 @@ const cloudRunTfDir string = "tf/cloud-run" // The returned cleanup function tears down everything. func SetupCloudRun( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setupgae.go b/e2etestrunner/setupgae.go index 5fbdb90..1b0658c 100644 --- a/e2etestrunner/setupgae.go +++ b/e2etestrunner/setupgae.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -26,9 +27,9 @@ const gaeTfDir string = "tf/gae" func SetupGae( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setupgaestandard.go b/e2etestrunner/setupgaestandard.go index f35e03c..2da3cf0 100644 --- a/e2etestrunner/setupgaestandard.go +++ b/e2etestrunner/setupgaestandard.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -26,9 +27,9 @@ const gaeStandardTfDir string = "tf/gae-standard" func SetupGaeStandard( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setupgce.go b/e2etestrunner/setupgce.go index 6c44b2d..0335ea6 100644 --- a/e2etestrunner/setupgce.go +++ b/e2etestrunner/setupgce.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -29,9 +30,9 @@ const gceTfDir string = "tf/gce" // returned cleanup function tears down the VM. func SetupGce( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setupgke.go b/e2etestrunner/setupgke.go index e74c147..153e18e 100644 --- a/e2etestrunner/setupgke.go +++ b/e2etestrunner/setupgke.go @@ -16,9 +16,10 @@ package e2etestrunner import ( "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" ) @@ -29,9 +30,9 @@ const gkeTfDir string = "tf/gke" // function tears down the whole cluster. func SetupGke( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, diff --git a/e2etestrunner/setuplocal.go b/e2etestrunner/setuplocal.go index 62d3406..505b02e 100644 --- a/e2etestrunner/setuplocal.go +++ b/e2etestrunner/setuplocal.go @@ -17,10 +17,11 @@ package e2etestrunner import ( "context" "fmt" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" "os" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/testclient" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/mount" @@ -36,9 +37,9 @@ const localTfDir = "tf/local" // container on the local host func SetupLocal( ctx context.Context, - args *Args, + args *util.Args, logger *log.Logger, -) (*testclient.Client, Cleanup, error) { +) (*testclient.Client, util.Cleanup, error) { pubsubInfo, cleanupTf, err := setuptf.SetupTf( ctx, args.ProjectID, @@ -111,7 +112,7 @@ func SetupLocal( func createContainer( ctx context.Context, cli *client.Client, - args *Args, + args *util.Args, pubsubInfo *setuptf.PubsubInfo, logger *log.Logger, ) (container.CreateResponse, error) { diff --git a/e2etestrunner/testclient/testclient.go b/e2etestrunner/testclient/testclient.go index 29961b6..87e30db 100644 --- a/e2etestrunner/testclient/testclient.go +++ b/e2etestrunner/testclient/testclient.go @@ -17,11 +17,11 @@ package testclient import ( "context" "fmt" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" "log" "strconv" "cloud.google.com/go/pubsub" - "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/e2etestrunner/setuptf" "google.golang.org/genproto/googleapis/rpc/code" ) diff --git a/e2etestrunner/trace_test.go b/e2etestrunner/trace_test.go index 1653d65..ca23589 100644 --- a/e2etestrunner/trace_test.go +++ b/e2etestrunner/trace_test.go @@ -20,6 +20,7 @@ package e2etestrunner import ( "context" "fmt" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" "math/rand" "regexp" "strings" @@ -401,7 +402,7 @@ func TestBasicPropagator(t *testing.T) { testID := fmt.Sprint(rand.Uint64()) // Generate random trace and span IDs - traceIdHex, err := randomHex(16) + traceIdHex, err := util.RandomHex(16) require.NoErrorf(t, err, "test server failed for scenario %v: %v", scenario, err) parentSpanIdDec := rand.Uint64() xCloudTraceContext := fmt.Sprintf("%v/%v;o=1", traceIdHex, parentSpanIdDec) diff --git a/go.mod b/go.mod index e19995a..f4d8742 100644 --- a/go.mod +++ b/go.mod @@ -17,24 +17,28 @@ module github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing go 1.23 require ( - cloud.google.com/go/pubsub v1.42.0 + cloud.google.com/go/logging v1.11.0 + cloud.google.com/go/monitoring v1.21.1 + cloud.google.com/go/pubsub v1.44.0 cloud.google.com/go/storage v1.43.0 github.com/alexflint/go-arg v1.5.1 github.com/docker/docker v27.2.0+incompatible github.com/docker/go-connections v0.5.0 github.com/sethvargo/go-retry v0.1.0 github.com/stretchr/testify v1.9.0 - golang.org/x/sync v0.8.0 - google.golang.org/api v0.196.0 - google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 + golang.org/x/sync v0.10.0 + google.golang.org/api v0.203.0 + google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 + google.golang.org/protobuf v1.35.2 ) require ( - cloud.google.com/go v0.115.1 // indirect - cloud.google.com/go/auth v0.9.3 // indirect + cloud.google.com/go v0.116.0 // indirect + cloud.google.com/go/auth v0.9.9 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect - cloud.google.com/go/compute/metadata v0.5.0 // indirect - cloud.google.com/go/iam v1.2.0 // indirect + cloud.google.com/go/compute/metadata v0.5.2 // indirect + cloud.google.com/go/iam v1.2.1 // indirect + cloud.google.com/go/longrunning v0.6.2 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alexflint/go-scalar v1.2.0 // indirect github.com/containerd/log v0.1.0 // indirect @@ -48,8 +52,9 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/s2a-go v0.1.8 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.3.3 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/term v0.5.0 // indirect @@ -58,25 +63,24 @@ require ( github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect - go.opentelemetry.io/otel v1.29.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect - go.opentelemetry.io/otel/metric v1.29.0 // indirect - go.opentelemetry.io/otel/sdk v1.29.0 // indirect - go.opentelemetry.io/otel/trace v1.29.0 // indirect - golang.org/x/crypto v0.26.0 // indirect - golang.org/x/net v0.28.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/grpc v1.66.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/time v0.7.0 // indirect + google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/grpc v1.67.1 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.1 // indirect diff --git a/go.sum b/go.sum index d088706..2bcb640 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,24 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= -cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= -cloud.google.com/go/auth v0.9.3 h1:VOEUIAADkkLtyfr3BLa3R8Ed/j6w1jTBmARx+wb5w5U= -cloud.google.com/go/auth v0.9.3/go.mod h1:7z6VY+7h3KUdRov5F1i8NDP5ZzWKYmEPO842BgCsmTk= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/auth v0.9.9 h1:BmtbpNQozo8ZwW2t7QJjnrQtdganSdmqeIBxHxNkEZQ= +cloud.google.com/go/auth v0.9.9/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= -cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= -cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= -cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= -cloud.google.com/go/kms v1.19.0 h1:x0OVJDl6UH1BSX4THKlMfdcFWoE4ruh90ZHuilZekrU= -cloud.google.com/go/kms v1.19.0/go.mod h1:e4imokuPJUc17Trz2s6lEXFDt8bgDmvpVynH39bdrHM= -cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= -cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= -cloud.google.com/go/pubsub v1.42.0 h1:PVTbzorLryFL5ue8esTS2BfehUs0ahyNOY9qcd+HMOs= -cloud.google.com/go/pubsub v1.42.0/go.mod h1:KADJ6s4MbTwhXmse/50SebEhE4SmUwHi48z3/dHar1Y= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= +cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= +cloud.google.com/go/kms v1.20.0 h1:uKUvjGqbBlI96xGE669hcVnEMw1Px/Mvfa62dhM5UrY= +cloud.google.com/go/kms v1.20.0/go.mod h1:/dMbFF1tLLFnQV44AoI2GlotbjowyUfgVwezxW291fM= +cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs= +cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +cloud.google.com/go/monitoring v1.21.1 h1:zWtbIoBMnU5LP9A/fz8LmWMGHpk4skdfeiaa66QdFGc= +cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c= +cloud.google.com/go/pubsub v1.44.0 h1:pLaMJVDTlnUDIKT5L0k53YyLszfBbGoUBo/IqDK/fEI= +cloud.google.com/go/pubsub v1.44.0/go.mod h1:BD4a/kmE8OePyHoa1qAHEw1rMzXX+Pc8Se54T/8mc3I= cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs= cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -89,12 +93,12 @@ github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.3 h1:QRje2j5GZimBzlbhGA2V2QlGNgL8G6e+wGo/+/2bWI0= -github.com/googleapis/enterprise-certificate-proxy v0.3.3/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -121,8 +125,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sethvargo/go-retry v0.1.0 h1:8sPqlWannzcReEcYjHSNw9becsiYudcwTD7CasGjQaI= github.com/sethvargo/go-retry v0.1.0/go.mod h1:JzIOdZqQDNpPkQDmcqgtteAcxFLtYpNF/zJCM1ysDg8= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -138,33 +142,33 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.einride.tech/aip v0.67.1 h1:d/4TW92OxXBngkSOwWS2CH5rez869KpKMaN44mdxkFI= -go.einride.tech/aip v0.67.1/go.mod h1:ZGX4/zKw8dcgzdLsrvpOOGxfxI2QSk12SlP7d6c0/XI= +go.einride.tech/aip v0.68.0 h1:4seM66oLzTpz50u4K1zlJyOXQ3tCzcJN7I22tKkjipw= +go.einride.tech/aip v0.68.0/go.mod h1:7y9FF8VtPWqpxuAxl0KQWqaULxW4zFIesD6zF5RIHHg= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -180,8 +184,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -190,20 +194,20 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -216,26 +220,26 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.196.0 h1:k/RafYqebaIJBO3+SMnfEGtFVlvp5vSgqTUF54UN/zg= -google.golang.org/api v0.196.0/go.mod h1:g9IL21uGkYgvQ5BZg6BAtoGJQIm8r6EgaAbpNey5wBE= +google.golang.org/api v0.203.0 h1:SrEeuwU3S11Wlscsn+LA1kb/Y5xT8uggJSkIhD08NAU= +google.golang.org/api v0.203.0/go.mod h1:BuOVyCSYEPwJb3npWvDnNmFI92f3GeRnHNkETneT3SI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 h1:Df6WuGvthPzc+JiQ/G+m+sNX24kc0aTBqoDN/0yyykE= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53/go.mod h1:fheguH3Am2dGp1LfXkrvwqC/KlFq8F0nLq3LryOMrrE= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -245,8 +249,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/go.work b/go.work deleted file mode 100644 index 897162c..0000000 --- a/go.work +++ /dev/null @@ -1,6 +0,0 @@ -go 1.23 - -use ( - . - ./quickstarttest -) diff --git a/go.work.sum b/go.work.sum deleted file mode 100644 index a8e1328..0000000 --- a/go.work.sum +++ /dev/null @@ -1,259 +0,0 @@ -cel.dev/expr v0.15.0/go.mod h1:TRSuuV7DlVCE/uwv5QbAiW/v8l5O8C4eEPHeu7gf7Sg= -cloud.google.com/go/accessapproval v1.8.0/go.mod h1:ycc7qSIXOrH6gGOGQsuBwpRZw3QhZLi0OWeej3rA5Mg= -cloud.google.com/go/accesscontextmanager v1.9.0/go.mod h1:EmdQRGq5FHLrjGjGTp2X2tlRBvU3LDCUqfnysFYooxQ= -cloud.google.com/go/aiplatform v1.68.0/go.mod h1:105MFA3svHjC3Oazl7yjXAmIR89LKhRAeNdnDKJczME= -cloud.google.com/go/analytics v0.25.0/go.mod h1:LZMfjJnKU1GDkvJV16dKnXm7KJJaMZfvUXx58ujgVLg= -cloud.google.com/go/apigateway v1.7.0/go.mod h1:miZGNhmrC+SFhxjA7ayjKHk1cA+7vsSINp9K+JxKwZI= -cloud.google.com/go/apigeeconnect v1.7.0/go.mod h1:fd8NFqzu5aXGEUpxiyeCyb4LBLU7B/xIPztfBQi+1zg= -cloud.google.com/go/apigeeregistry v0.9.0/go.mod h1:4S/btGnijdt9LSIZwBDHgtYfYkFGekzNyWkyYTP8Qzs= -cloud.google.com/go/appengine v1.9.0/go.mod h1:y5oI+JT3/6s77QmxbTnLHyiMKz3NPHYOjuhmVi+FyYU= -cloud.google.com/go/area120 v0.9.0/go.mod h1:ujIhRz2gJXutmFYGAUgz3KZ5IRJ6vOwL4CYlNy/jDo4= -cloud.google.com/go/artifactregistry v1.15.0/go.mod h1:4xrfigx32/3N7Pp7YSPOZZGs4VPhyYeRyJ67ZfVdOX4= -cloud.google.com/go/asset v1.20.0/go.mod h1:CT3ME6xNZKsPSvi0lMBPgW3azvRhiurJTFSnNl6ahw8= -cloud.google.com/go/assuredworkloads v1.12.0/go.mod h1:jX84R+0iANggmSbzvVgrGWaqdhRsQihAv4fF7IQ4r7Q= -cloud.google.com/go/automl v1.14.0/go.mod h1:Kr7rN9ANSjlHyBLGvwhrnt35/vVZy3n/CP4Xmyj0shM= -cloud.google.com/go/baremetalsolution v1.3.0/go.mod h1:E+n44UaDVO5EeSa4SUsDFxQLt6dD1CoE2h+mtxxaJKo= -cloud.google.com/go/batch v1.10.0/go.mod h1:JlktZqyKbcUJWdHOV8juvAiQNH8xXHXTqLp6bD9qreE= -cloud.google.com/go/beyondcorp v1.1.0/go.mod h1:F6Rl20QbayaloWIsMhuz+DICcJxckdFKc7R2HCe6iNA= -cloud.google.com/go/bigquery v1.62.0/go.mod h1:5ee+ZkF1x/ntgCsFQJAQTM3QkAZOecfCmvxhkJsWRSA= -cloud.google.com/go/bigtable v1.31.0/go.mod h1:N/mwZO+4TSHOeyiE1JxO+sRPnW4bnR7WLn9AEaiJqew= -cloud.google.com/go/billing v1.19.0/go.mod h1:bGvChbZguyaWRGmu5pQHfFN1VxTDPFmabnCVA/dNdRM= -cloud.google.com/go/binaryauthorization v1.9.0/go.mod h1:fssQuxfI9D6dPPqfvDmObof+ZBKsxA9iSigd8aSA1ik= -cloud.google.com/go/certificatemanager v1.9.0/go.mod h1:hQBpwtKNjUq+er6Rdg675N7lSsNGqMgt7Bt7Dbcm7d0= -cloud.google.com/go/channel v1.18.0/go.mod h1:gQr50HxC/FGvufmqXD631ldL1Ee7CNMU5F4pDyJWlt0= -cloud.google.com/go/cloudbuild v1.17.0/go.mod h1:/RbwgDlbQEwIKoWLIYnW72W3cWs+e83z7nU45xRKnj8= -cloud.google.com/go/clouddms v1.8.0/go.mod h1:JUgTgqd1M9iPa7p3jodjLTuecdkGTcikrg7nz++XB5E= -cloud.google.com/go/cloudtasks v1.13.0/go.mod h1:O1jFRGb1Vm3sN2u/tBdPiVGVTWIsrsbEs3K3N3nNlEU= -cloud.google.com/go/compute v1.28.0 h1:OPtBxMcheSS+DWfci803qvPly3d4w7Eu5ztKBcFfzwk= -cloud.google.com/go/compute v1.28.0/go.mod h1:DEqZBtYrDnD5PvjsKwb3onnhX+qjdCVM7eshj1XdjV4= -cloud.google.com/go/contactcenterinsights v1.14.0/go.mod h1:APmWYHDN4sASnUBnXs4o68t1EUfnqadA53//CzXZ1xE= -cloud.google.com/go/container v1.39.0/go.mod h1:gNgnvs1cRHXjYxrotVm+0nxDfZkqzBbXCffh5WtqieI= -cloud.google.com/go/containeranalysis v0.13.0/go.mod h1:OpufGxsNzMOZb6w5yqwUgHr5GHivsAD18KEI06yGkQs= -cloud.google.com/go/datacatalog v1.22.0/go.mod h1:4Wff6GphTY6guF5WphrD76jOdfBiflDiRGFAxq7t//I= -cloud.google.com/go/dataflow v0.10.0/go.mod h1:zAv3YUNe/2pXWKDSPvbf31mCIUuJa+IHtKmhfzaeGww= -cloud.google.com/go/dataform v0.10.0/go.mod h1:0NKefI6v1ppBEDnwrp6gOMEA3s/RH3ypLUM0+YWqh6A= -cloud.google.com/go/datafusion v1.8.0/go.mod h1:zHZ5dJYHhMP1P8SZDZm+6yRY9BCCcfm7Xg7YmP+iA6E= -cloud.google.com/go/datalabeling v0.9.0/go.mod h1:GVX4sW4cY5OPKu/9v6dv20AU9xmGr4DXR6K26qN0mzw= -cloud.google.com/go/dataplex v1.19.0/go.mod h1:5H9ftGuZWMtoEIUpTdGUtGgje36YGmtRXoC8wx6QSUc= -cloud.google.com/go/dataproc/v2 v2.6.0/go.mod h1:amsKInI+TU4GcXnz+gmmApYbiYM4Fw051SIMDoWCWeE= -cloud.google.com/go/dataqna v0.9.0/go.mod h1:WlRhvLLZv7TfpONlb/rEQx5Qrr7b5sxgSuz5NP6amrw= -cloud.google.com/go/datastore v1.19.0/go.mod h1:KGzkszuj87VT8tJe67GuB+qLolfsOt6bZq/KFuWaahc= -cloud.google.com/go/datastream v1.11.0/go.mod h1:vio/5TQ0qNtGcIj7sFb0gucFoqZW19gZ7HztYtkzq9g= -cloud.google.com/go/deploy v1.22.0/go.mod h1:qXJgBcnyetoOe+w/79sCC99c5PpHJsgUXCNhwMjG0e4= -cloud.google.com/go/dialogflow v1.57.0/go.mod h1:wegtnocuYEfue6IGlX96n5mHu3JGZUaZxv1L5HzJUJY= -cloud.google.com/go/dlp v1.18.0/go.mod h1:RVO9zkh+xXgUa7+YOf9IFNHL/2FXt9Vnv/GKNYmc1fE= -cloud.google.com/go/documentai v1.33.0/go.mod h1:lI9Mti9COZ5qVjdpfDZxNjOrTVf6tJ//vaqbtt81214= -cloud.google.com/go/domains v0.10.0/go.mod h1:VpPXnkCNRsxkieDFDfjBIrLv3p1kRjJ03wLoPeL30To= -cloud.google.com/go/edgecontainer v1.3.0/go.mod h1:dV1qTl2KAnQOYG+7plYr53KSq/37aga5/xPgOlYXh3A= -cloud.google.com/go/errorreporting v0.3.1/go.mod h1:6xVQXU1UuntfAf+bVkFk6nld41+CPyF2NSPCyXE3Ztk= -cloud.google.com/go/essentialcontacts v1.7.0/go.mod h1:0JEcNuyjyg43H/RJynZzv2eo6MkmnvRPUouBpOh6akY= -cloud.google.com/go/eventarc v1.14.0/go.mod h1:60ZzZfOekvsc/keHc7uGHcoEOMVa+p+ZgRmTjpdamnA= -cloud.google.com/go/filestore v1.9.0/go.mod h1:GlQK+VBaAGb19HqprnOMqYYpn7Gev5ZA9SSHpxFKD7Q= -cloud.google.com/go/firestore v1.16.0/go.mod h1:+22v/7p+WNBSQwdSwP57vz47aZiY+HrDkrOsJNhk7rg= -cloud.google.com/go/functions v1.19.0/go.mod h1:WDreEDZoUVoOkXKDejFWGnprrGYn2cY2KHx73UQERC0= -cloud.google.com/go/gkebackup v1.6.0/go.mod h1:1rskt7NgawoMDHTdLASX8caXXYG3MvDsoZ7qF4RMamQ= -cloud.google.com/go/gkeconnect v0.11.0/go.mod h1:l3iPZl1OfT+DUQ+QkmH1PC5RTLqxKQSVnboLiQGAcCA= -cloud.google.com/go/gkehub v0.15.0/go.mod h1:obpeROly2mjxZJbRkFfHEflcH54XhJI+g2QgfHphL0I= -cloud.google.com/go/gkemulticloud v1.3.0/go.mod h1:XmcOUQ+hJI62fi/klCjEGs6lhQ56Zjs14sGPXsGP0mE= -cloud.google.com/go/gsuiteaddons v1.7.0/go.mod h1:/B1L8ANPbiSvxCgdSwqH9CqHIJBzTt6v50fPr3vJCtg= -cloud.google.com/go/iap v1.10.0/go.mod h1:gDT6LZnKnWNCaov/iQbj7NMUpknFDOkhhlH8PwIrpzU= -cloud.google.com/go/ids v1.5.0/go.mod h1:4NOlC1m9hAJL50j2cRV4PS/J6x/f4BBM0Xg54JQLCWw= -cloud.google.com/go/iot v1.8.0/go.mod h1:/NMFENPnQ2t1UByUC1qFvA80fo1KFB920BlyUPn1m3s= -cloud.google.com/go/language v1.14.0/go.mod h1:ldEdlZOFwZREnn/1yWtXdNzfD7hHi9rf87YDkOY9at4= -cloud.google.com/go/lifesciences v0.10.0/go.mod h1:1zMhgXQ7LbMbA5n4AYguFgbulbounfUoYvkV8dtsLcA= -cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= -cloud.google.com/go/managedidentities v1.7.0/go.mod h1:o4LqQkQvJ9Pt7Q8CyZV39HrzCfzyX8zBzm8KIhRw91E= -cloud.google.com/go/maps v1.12.0/go.mod h1:qjErDNStn3BaGx06vHner5d75MRMgGflbgCuWTuslMc= -cloud.google.com/go/mediatranslation v0.9.0/go.mod h1:udnxo0i4YJ5mZfkwvvQQrQ6ra47vcX8jeGV+6I5x+iU= -cloud.google.com/go/memcache v1.11.0/go.mod h1:99MVF02m5TByT1NKxsoKDnw5kYmMrjbGSeikdyfCYZk= -cloud.google.com/go/metastore v1.14.0/go.mod h1:vtPt5oVF/+ocXO4rv4GUzC8Si5s8gfmo5OIt6bACDuE= -cloud.google.com/go/monitoring v1.21.0/go.mod h1:tuJ+KNDdJbetSsbSGTqnaBvbauS5kr3Q/koy3Up6r+4= -cloud.google.com/go/networkconnectivity v1.15.0/go.mod h1:uBQqx/YHI6gzqfV5J/7fkKwTGlXvQhHevUuzMpos9WY= -cloud.google.com/go/networkmanagement v1.14.0/go.mod h1:4myfd4A0uULCOCGHL1npZN0U+kr1Z2ENlbHdCCX4cE8= -cloud.google.com/go/networksecurity v0.10.0/go.mod h1:IcpI5pyzlZyYG8cNRCJmY1AYKajsd9Uz575HoeyYoII= -cloud.google.com/go/notebooks v1.12.0/go.mod h1:euIZBbGY6G0J+UHzQ0XflysP0YoAUnDPZU7Fq0KXNw8= -cloud.google.com/go/optimization v1.7.0/go.mod h1:6KvAB1HtlsMMblT/lsQRIlLjUhKjmMWNqV1AJUctbWs= -cloud.google.com/go/orchestration v1.10.0/go.mod h1:pGiFgTTU6c/nXHTPpfsGT8N4Dax8awccCe6kjhVdWjI= -cloud.google.com/go/orgpolicy v1.13.0/go.mod h1:oKtT56zEFSsYORUunkN2mWVQBc9WGP7yBAPOZW1XCXc= -cloud.google.com/go/osconfig v1.14.0/go.mod h1:GhZzWYVrnQ42r+K5pA/hJCsnWVW2lB6bmVg+GnZ6JkM= -cloud.google.com/go/oslogin v1.14.0/go.mod h1:VtMzdQPRP3T+w5OSFiYhaT/xOm7H1wo1HZUD2NAoVK4= -cloud.google.com/go/phishingprotection v0.9.0/go.mod h1:CzttceTk9UskH9a8BycYmHL64zakEt3EXaM53r4i0Iw= -cloud.google.com/go/policytroubleshooter v1.11.0/go.mod h1:yTqY8n60lPLdU5bRbImn9IazrmF1o5b0VBshVxPzblQ= -cloud.google.com/go/privatecatalog v0.10.0/go.mod h1:/Lci3oPTxJpixjiTBoiVv3PmUZg/IdhPvKHcLEgObuc= -cloud.google.com/go/pubsublite v1.8.2/go.mod h1:4r8GSa9NznExjuLPEJlF1VjOPOpgf3IT6k8x/YgaOPI= -cloud.google.com/go/recaptchaenterprise/v2 v2.17.0/go.mod h1:SS4QDdlmJ3NvbOMCXQxaFhVGRjvNMfoKCoCdxqXadqs= -cloud.google.com/go/recommendationengine v0.9.0/go.mod h1:59ydKXFyXO4Y8S0Bk224sKfj6YvIyzgcpG6w8kXIMm4= -cloud.google.com/go/recommender v1.13.0/go.mod h1:+XkXkeB9k6zG222ZH70U6DBkmvEL0na+pSjZRmlWcrk= -cloud.google.com/go/redis v1.17.0/go.mod h1:pzTdaIhriMLiXu8nn2CgiS52SYko0tO1Du4d3MPOG5I= -cloud.google.com/go/resourcemanager v1.10.0/go.mod h1:kIx3TWDCjLnUQUdjQ/e8EXsS9GJEzvcY+YMOHpADxrk= -cloud.google.com/go/resourcesettings v1.8.0/go.mod h1:/hleuSOq8E6mF1sRYZrSzib8BxFHprQXrPluWTuZ6Ys= -cloud.google.com/go/retail v1.18.0/go.mod h1:vaCabihbSrq88mKGKcKc4/FDHvVcPP0sQDAt0INM+v8= -cloud.google.com/go/run v1.5.0/go.mod h1:Z4Tv/XNC/veO6rEpF0waVhR7vEu5RN1uJQ8dD1PeMtI= -cloud.google.com/go/scheduler v1.11.0/go.mod h1:RBSu5/rIsF5mDbQUiruvIE6FnfKpLd3HlTDu8aWk0jw= -cloud.google.com/go/secretmanager v1.14.0/go.mod h1:q0hSFHzoW7eRgyYFH8trqEFavgrMeiJI4FETNN78vhM= -cloud.google.com/go/security v1.18.0/go.mod h1:oS/kRVUNmkwEqzCgSmK2EaGd8SbDUvliEiADjSb/8Mo= -cloud.google.com/go/securitycenter v1.35.0/go.mod h1:gotw8mBfCxX0CGrRK917CP/l+Z+QoDchJ9HDpSR8eDc= -cloud.google.com/go/servicedirectory v1.12.0/go.mod h1:lKKBoVStJa+8S+iH7h/YRBMUkkqFjfPirkOTEyYAIUk= -cloud.google.com/go/shell v1.8.0/go.mod h1:EoQR8uXuEWHUAMoB4+ijXqRVYatDCdKYOLAaay1R/yw= -cloud.google.com/go/spanner v1.67.0/go.mod h1:Um+TNmxfcCHqNCKid4rmAMvoe/Iu1vdz6UfxJ9GPxRQ= -cloud.google.com/go/speech v1.25.0/go.mod h1:2IUTYClcJhqPgee5Ko+qJqq29/bglVizgIap0c5MvYs= -cloud.google.com/go/storagetransfer v1.11.0/go.mod h1:arcvgzVC4HPcSikqV8D4h4PwrvGQHfKtbL4OwKPirjs= -cloud.google.com/go/talent v1.7.0/go.mod h1:8zfRPWWV4GNZuUmBwQub0gWAe2KaKhsthyGtV8fV1bY= -cloud.google.com/go/texttospeech v1.8.0/go.mod h1:hAgeA01K5QNfLy2sPUAVETE0L4WdEpaCMfwKH1qjCQU= -cloud.google.com/go/tpu v1.7.0/go.mod h1:/J6Co458YHMD60nM3cCjA0msvFU/miCGMfx/nYyxv/o= -cloud.google.com/go/trace v1.11.0/go.mod h1:Aiemdi52635dBR7o3zuc9lLjXo3BwGaChEjCa3tJNmM= -cloud.google.com/go/translate v1.12.0/go.mod h1:4/C4shFIY5hSZ3b3g+xXWM5xhBLqcUqksSMrQ7tyFtc= -cloud.google.com/go/video v1.23.0/go.mod h1:EGLQv3Ce/VNqcl/+Amq7jlrnpg+KMgQcr6YOOBfE9oc= -cloud.google.com/go/videointelligence v1.12.0/go.mod h1:3rjmafNpCEqAb1CElGTA7dsg8dFDsx7RQNHS7o088D0= -cloud.google.com/go/vision/v2 v2.9.0/go.mod h1:sejxShqNOEucObbGNV5Gk85hPCgiVPP4sWv0GrgKuNw= -cloud.google.com/go/vmmigration v1.8.0/go.mod h1:+AQnGUabjpYKnkfdXJZ5nteUfzNDCmwbj/HSLGPFG5E= -cloud.google.com/go/vmwareengine v1.3.0/go.mod h1:7W/C/YFpelGyZzRUfOYkbgUfbN1CK5ME3++doIkh1Vk= -cloud.google.com/go/vpcaccess v1.8.0/go.mod h1:7fz79sxE9DbGm9dbbIdir3tsJhwCxiNAs8aFG8MEhR8= -cloud.google.com/go/webrisk v1.10.0/go.mod h1:ztRr0MCLtksoeSOQCEERZXdzwJGoH+RGYQ2qodGOy2U= -cloud.google.com/go/websecurityscanner v1.7.0/go.mod h1:d5OGdHnbky9MAZ8SGzdWIm3/c9p0r7t+5BerY5JYdZc= -cloud.google.com/go/workflows v1.13.0/go.mod h1:StCuY3jhBj1HYMjCPqZs7J0deQLHPhF6hDtzWJaVF+Y= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= -github.com/AzureAD/microsoft-authentication-library-for-go v0.6.0/go.mod h1:BDJ5qMFKx9DugEg3+uQSDCdbYPr5s9vBTrL9P8TpqOU= -github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= -github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= -github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= -github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= -github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= -github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4/go.mod h1:usURWEKSNNAcAZuzRn/9ZYPT8aZQkR7xcCtunK/LkJo= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15/go.mod h1:aHbhbR6WEQgHAiRj41EQ2W47yOYwNtIkWTXmcAtYqj8= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10/go.mod h1:FHbKWQtRBYUz4vO5WBWjzMD2by126ny5y/1EoaWoLfI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10/go.mod h1:byqfyxJBshFk0fF9YmK0M0ugIO8OWjzH2T3bPG4eGuA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.10/go.mod h1:jMx5INQFYFYB3lQD9W0D8Ohgq6Wnl7NYOJ2TQndbulI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1/go.mod h1:4qXHrG1Ne3VGIMZPCB8OjH/pLFO94sKABIusjh0KWPU= -github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= -github.com/cncf/xds/go v0.0.0-20240423153145-555b57ec207b/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= -github.com/containerd/btrfs/v2 v2.0.0/go.mod h1:swkD/7j9HApWpzl8OHfrHNxppPd9l44DFZdF94BUj9k= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= -github.com/containerd/fuse-overlayfs-snapshotter v1.0.8/go.mod h1:mY+oK2oQhlUk6hP5HNG28/OK9oqQpB2wK1w6sudC5gQ= -github.com/containerd/go-cni v1.1.9/go.mod h1:XYrZJ1d5W6E2VOvjffL3IZq0Dz6bsVlERHbekNK90PM= -github.com/containerd/go-runc v1.1.0/go.mod h1:xJv2hFF7GvHtTJd9JqTS2UVxMkULUYw4JN5XAUZqH5U= -github.com/containerd/imgcrypt v1.1.8/go.mod h1:x6QvFIkMyO2qGIY2zXc88ivEzcbgvLdWjoZyGqDap5U= -github.com/containerd/nri v0.6.1/go.mod h1:7+sX3wNx+LR7RzhjnJiUkFDhn18P5Bg/0VnJ/uXpRJM= -github.com/containerd/stargz-snapshotter v0.15.1/go.mod h1:74D+J1m1RMXytLmWxegXWhtOSRHPWZKpKc2NdK3S+us= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= -github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/containerd/zfs v1.1.0/go.mod h1:oZF9wBnrnQjpWLaPKEinrx3TQ9a+W/RJO7Zb41d8YLE= -github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= -github.com/containernetworking/plugins v1.4.0/go.mod h1:UYhcOyjefnrQvKvmmyEKsUA+M9Nfn7tqULPpH0Pkcj0= -github.com/containers/ocicrypt v1.1.10/go.mod h1:YfzSSr06PTHQwSTUKqDSjish9BeW1E4HUmreluQcMd8= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/danieljoos/wincred v1.2.0/go.mod h1:FzQLLMKBFdvu+osBrnFODiv32YGwCfx0SkRa/eYHgec= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= -github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= -github.com/docker/cli-docs-tool v0.7.0/go.mod h1:zMjqTFCU361PRh8apiXzeAZ1Q/xupbIwTusYpzCXS/o= -github.com/envoyproxy/go-control-plane v0.12.1-0.20240621013728-1eb8caab5155/go.mod h1:5Wkq+JduFtdAXihLmeTJf+tRYIT4KBc2vPXDhwVo1pA= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= -github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= -github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/go-containerregistry v0.14.0/go.mod h1:aiJ2fp/SXvkWgmYHioXnbMdlgB8eXiiYOY55gfN91Wk= -github.com/google/go-pkcs11 v0.3.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/hanwen/go-fuse/v2 v2.4.0/go.mod h1:xKwi1cF7nXAOBCXujD5ie0ZKsxc8GGSA1rlMJc+8IJs= -github.com/hashicorp/go-cty-funcs v0.0.0-20230405223818-a090f58aa992/go.mod h1:Abjk0jbRkDaNCzsRhOv2iDCofYpX1eVsjozoiK63qLA= -github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= -github.com/intel/goresctrl v0.3.0/go.mod h1:fdz3mD85cmP9sHD8JUlrNWAxvwM86CrbmVXltEKd7zk= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= -github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= -github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= -github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= -github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY= -github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= -github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= -github.com/mistifyio/go-zfs/v3 v3.0.1/go.mod h1:CzVgeB0RvF2EGzQnytKVvVSDwmKJXxkOTUGbNrTja/k= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= -github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/moby/sys/mount v0.3.3/go.mod h1:PBaEorSNTLG5t/+4EgukEQVlAvVEc6ZjTySwKdqp5K0= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/open-policy-agent/opa v0.42.2/go.mod h1:MrmoTi/BsKWT58kXlVayBb+rYVeaMwuBm3nYAN3923s= -github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626/go.mod h1:BRHJJd0E+cx42OybVYSgUvZmU0B8P9gZuRXlZUP7TKI= -github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= -github.com/package-url/packageurl-go v0.1.1-0.20220428063043-89078438f170/go.mod h1:uQd4a7Rh3ZsVg5j0lNyAfyxIeGde9yrlhjF78GzeW0c= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= -github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= -github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/spiffe/go-spiffe/v2 v2.1.1/go.mod h1:5qg6rpqlwIub0JAiF1UK9IMD6BpPTmvG6yfSgDBs5lg= -github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6/go.mod h1:39R/xuhNgVhi+K0/zst4TLrJrVmbm6LVgl4A0+ZFS5M= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= -github.com/tonistiigi/go-actions-cache v0.0.0-20240320205438-9794bdbb2fb4/go.mod h1:anhKd3mnC1shAbQj1Q4IJ+w6xqezxnyDYlx/yKa7IXM= -github.com/tonistiigi/go-archvariant v1.0.0/go.mod h1:TxFmO5VS6vMq2kvs3ht04iPXtu2rUT/erOnGFYfk5Ho= -github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= -github.com/vektah/gqlparser/v2 v2.4.5/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= -github.com/veraison/go-cose v1.0.0-rc.1/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4= -github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= -github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zeebo/errs v1.2.2/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= -go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= -go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= -go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= -golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/bytestream v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:q0eWNnCW04EJlyrmLT+ZHsjuoUiZ36/eAEdCCezZoco= -gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= -k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= -k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= -k8s.io/cri-api v0.27.1/go.mod h1:+Ts/AVYbIo04S86XbTD73UPp/DkTiYxtsFeOFEu32L0= -k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= -kernel.org/pub/linux/libs/security/libcap/cap v1.2.67/go.mod h1:GkntoBuwffz19qtdFVB+k2NtWNN+yCKnC/Ykv/hMiTU= -kernel.org/pub/linux/libs/security/libcap/psx v1.2.67/go.mod h1:+l6Ee2F59XiJ2I6WR5ObpC1utCQJZ/VLsEbQCD8RG24= -tags.cncf.io/container-device-interface/specs-go v0.7.0/go.mod h1:hMAwAbMZyBLdmYqWgYcKH0F/yctNpV3P35f+/088A80= diff --git a/quickstarttest/go.mod b/quickstarttest/go.mod index 97580c4..df03e4b 100644 --- a/quickstarttest/go.mod +++ b/quickstarttest/go.mod @@ -81,7 +81,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -153,36 +153,36 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect - go.opentelemetry.io/otel v1.29.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 // indirect - go.opentelemetry.io/otel/metric v1.29.0 // indirect - go.opentelemetry.io/otel/sdk v1.29.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.29.0 // indirect - go.opentelemetry.io/otel/trace v1.29.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/mock v0.4.0 // indirect - golang.org/x/crypto v0.26.0 // indirect + golang.org/x/crypto v0.28.0 // indirect golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.28.0 // indirect + golang.org/x/mod v0.20.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.23.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - golang.org/x/tools v0.22.0 // indirect - google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/grpc v1.66.0 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/sync v0.9.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/term v0.25.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/time v0.7.0 // indirect + golang.org/x/tools v0.24.0 // indirect + google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 // indirect + google.golang.org/grpc v1.67.1 // indirect + google.golang.org/protobuf v1.35.2 // indirect gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/quickstarttest/go.sum b/quickstarttest/go.sum index 8265347..262468a 100644 --- a/quickstarttest/go.sum +++ b/quickstarttest/go.sum @@ -226,8 +226,7 @@ github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWS github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -408,8 +407,7 @@ github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc h1:zAsgcP8MhzAbhMnB1QQ2 github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc/go.mod h1:S8xSOnV3CgpNrWd0GQ/OoQfMtlg2uPRSuTzcSGrzwK8= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/secure-systems-lab/go-securesystemslib v0.4.0 h1:b23VGrQhTA8cN2CbBw7/FulN9fTtqYUdS5+Oxzt+DUE= github.com/secure-systems-lab/go-securesystemslib v0.4.0/go.mod h1:FGBZgq2tXWICsxWQW1msNf49F0Pf2Op5Htayx335Qbs= @@ -499,14 +497,11 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.5 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 h1:gbhw/u49SS3gkPWiYweQNJGm/uJN5GkI/FrosxSHT7A= go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1/go.mod h1:GnOaBaFQ2we3b9AGWJpsBa7v1S5RlQzlC3O7dRMxZhM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 h1:ZtfnDL+tUrs1F0Pzfwbg2d59Gru9NCH3bgSHBM6LDwU= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0/go.mod h1:hG4Fj/y8TR/tlEDREo8tWstl9fO9gcFkn4xrx0Io8xU= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 h1:NmnYCiR0qNufkldjVvyQfZTHSdzeHoZ41zggMsdMcLM= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0/go.mod h1:UVAO61+umUsHLtYb8KXXRoHtxUkdOPkYidzW3gipRLQ= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 h1:wNMDy/LVGLj2h3p6zg4d0gypKfWKSWI14E1C4smOgl8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0/go.mod h1:YfbDdXAAkemWJK3H/DshvlrxqFB2rtW4rY6ky/3x/H0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= @@ -515,14 +510,10 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqhe go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/sdk/metric v1.29.0 h1:K2CfmJohnRgvZ9UAj2/FhIf/okdWcNdBwe1m8xFXiSY= -go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -537,15 +528,13 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= -golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -556,8 +545,7 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= -golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -567,8 +555,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -595,45 +582,35 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= -golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= +golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 h1:Df6WuGvthPzc+JiQ/G+m+sNX24kc0aTBqoDN/0yyykE= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= google.golang.org/grpc v1.0.5/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= diff --git a/tf/cloud-run-collector/cloud-run-collector.tf b/tf/cloud-run-collector/cloud-run-collector.tf new file mode 100644 index 0000000..09a27c1 --- /dev/null +++ b/tf/cloud-run-collector/cloud-run-collector.tf @@ -0,0 +1,58 @@ +# Copyright 2021 Google LLC +# +# 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 +# +# https://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. + +resource "google_cloud_run_v2_service" "default" { + name = "e2etest-${terraform.workspace}" + location = "us-central1" + deletion_protection = false + + timeouts { + create = "6m" + } + + template { + scaling { + max_instance_count = 1 + } + containers { + image = var.image + args = ["--config=env:OTEL_CONFIG"] + ports { + container_port = 8888 + } + resources { + # If true, garbage-collect CPU when once a request finishes + cpu_idle = false + } + env { + name = "PROJECT_ID" + value = var.project_id + } + env { + name = "OTEL_CONFIG" + value = jsonencode(module.otel_config.config) + } + } + } +} + +module "otel_config" { + source = "../modules/otel-config" + test_run_id = terraform.workspace +} + +variable "image" { + type = string +} + diff --git a/tf/cloud-run-collector/main-common.tf b/tf/cloud-run-collector/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/cloud-run-collector/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/tf/common/main-common.tf b/tf/common/main-common.tf index 8fd4acb..9e309d5 100644 --- a/tf/common/main-common.tf +++ b/tf/common/main-common.tf @@ -19,11 +19,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = "4.41.0" + version = "6.14.1" } kubernetes = { source = "hashicorp/kubernetes" - version = "2.3.2" + version = "2.35.1" } } diff --git a/tf/gce-collector/gce-collector.tf b/tf/gce-collector/gce-collector.tf new file mode 100644 index 0000000..d453295 --- /dev/null +++ b/tf/gce-collector/gce-collector.tf @@ -0,0 +1,76 @@ +# Copyright 2021 Google LLC +# +# 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 +# +# https://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. + +resource "google_compute_instance" "default" { + # The terraform workspace will be given a random name (test run id) which we + # can use to get unique resource names. + name = "e2etest-${terraform.workspace}" + machine_type = "e2-micro" + allow_stopping_for_update = true + + labels = merge( + local.common_labels, + { container-vm = module.gce_container.vm_container_label }, + ) + + boot_disk { + initialize_params { + image = module.gce_container.source_image + } + } + + metadata = { + gce-container-declaration = module.gce_container.metadata_value + google-logging-enabled = "true" + } + + network_interface { + network = "default" + + // TODO: remove this to not allocate external IP. Tried but GCE container + // doesn't seem to boot without public IP + access_config { + // Ephemeral IP + } + } + + service_account { + scopes = ["cloud-platform"] + } +} + +module "gce_container" { + source = "terraform-google-modules/container-vm/google" + version = "2.0.0" + + container = { + image = var.image + args = ["--config=env:OTEL_CONFIG"] + env = [ + { + name = "OTEL_CONFIG" + value = jsonencode(module.otel_config.config) + } + ] + } +} + +module "otel_config" { + source = "../modules/otel-config" + test_run_id = terraform.workspace +} + +variable "image" { + type = string +} diff --git a/tf/gce-collector/main-common.tf b/tf/gce-collector/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/gce-collector/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/tf/gke-collector/gke-collector.tf b/tf/gke-collector/gke-collector.tf new file mode 100644 index 0000000..3282ff3 --- /dev/null +++ b/tf/gke-collector/gke-collector.tf @@ -0,0 +1,90 @@ +# Copyright 2021 Google LLC +# +# 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 +# +# https://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. + +data "google_container_cluster" "default" { + name = local.gke_cluster_name + location = local.gke_cluster_location +} + +data "google_client_config" "default" {} + +provider "kubernetes" { + host = "https://${data.google_container_cluster.default.endpoint}" + cluster_ca_certificate = base64decode(data.google_container_cluster.default.master_auth.0.cluster_ca_certificate) + token = data.google_client_config.default.access_token +} + +resource "kubernetes_pod" "collector" { + metadata { + name = "collector-${terraform.workspace}" + } + + spec { + container { + image = var.image + name = "collector" + args = ["--config=env:OTEL_CONFIG"] + + liveness_probe { + http_get { + port = "13133" + path = "/" + } + } + + env { + name = "PROJECT_ID" + value = var.project_id + } + env { + name = "OTEL_CONFIG" + value = jsonencode(module.otel_config.config) + } + env { + name = "POD_NAME" + value_from { + field_ref { + field_path = "metadata.name" + } + } + } + env { + name = "NAMESPACE_NAME" + value_from { + field_ref { + field_path = "metadata.namespace" + } + } + } + env { + name = "CONTAINER_NAME" + value = "collector" + } + env { + name = "OTEL_RESOURCE_ATTRIBUTES" + value = "k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME),k8s.container.name=$(CONTAINER_NAME)" + } + } + } +} + +module "otel_config" { + source = "../modules/otel-config" + test_run_id = terraform.workspace +} + + +variable "image" { + type = string +} diff --git a/tf/gke-collector/main-common.tf b/tf/gke-collector/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/gke-collector/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/tf/gke-operator-collector/gke-operator-collector.tf b/tf/gke-operator-collector/gke-operator-collector.tf new file mode 100644 index 0000000..66ab079 --- /dev/null +++ b/tf/gke-operator-collector/gke-operator-collector.tf @@ -0,0 +1,95 @@ +# Copyright 2021 Google LLC +# +# 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 +# +# https://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. + +data "google_container_cluster" "default" { + name = local.gke_cluster_name + location = local.gke_cluster_location +} + +data "google_client_config" "default" {} + +provider "kubernetes" { + host = "https://${data.google_container_cluster.default.endpoint}" + cluster_ca_certificate = base64decode(data.google_container_cluster.default.master_auth.0.cluster_ca_certificate) + token = data.google_client_config.default.access_token +} + +resource "kubernetes_namespace_v1" "namespace" { + metadata { + name = "operator-${terraform.workspace}" + } +} + +resource "kubernetes_manifest" "collector" { + manifest = { + apiVersion = "opentelemetry.io/v1beta1" + kind = "OpenTelemetryCollector" + + metadata = { + name = "collector" + namespace = kubernetes_namespace_v1.namespace.metadata[0].name + } + + spec = { + image = var.image + config = module.otel_config.config + mode = "deployment" + configVersions = 3 + ipFamilyPolicy = "SingleStack" + managementState = "managed" + upgradeStrategy = "automatic" + env = [ + { + name = "POD_NAME" + valueFrom = { + fieldRef = { + fieldPath = "metadata.name" + } + } + }, + { + name = "NAMESPACE_NAME" + valueFrom = { + fieldRef = { + fieldPath = "metadata.namespace" + } + } + }, + { + name = "CONTAINER_NAME" + value = "collector" + }, + { + name = "OTEL_RESOURCE_ATTRIBUTES" + value = "k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME),k8s.container.name=$(CONTAINER_NAME)" + }, + ] + } + } + computed_fields = [ + "metadata.annotations", + "metadata.labels", + "metadata.finalizers", + "spec.targetAllocator", + ] +} + +module "otel_config" { + source = "../modules/otel-config" + test_run_id = terraform.workspace +} + +variable "image" { + type = string +} diff --git a/tf/gke-operator-collector/main-common.tf b/tf/gke-operator-collector/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/gke-operator-collector/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/tf/modules/otel-config/main.tf b/tf/modules/otel-config/main.tf new file mode 100644 index 0000000..f2120d8 --- /dev/null +++ b/tf/modules/otel-config/main.tf @@ -0,0 +1,128 @@ +variable "test_run_id" { + type = string +} +output "config" { + value = { + receivers = { + "otlp/internal" = { + protocols = { + grpc = { + endpoint = "localhost:14317" + } + http = { + endpoint = "localhost:14318" + } + } + } + } + processors = { + resourcedetection = { + detectors = ["gcp"] + } + transform = { + error_mode = "ignore" + metric_statements = [ + { + context = "datapoint" + statements = [ + "set(attributes[\"otelcol_google_e2e\"], ${format("%q", var.test_run_id)})" + ] + } + ] + log_statements = [ + { + context = "log" + statements = [ + "set(attributes[\"otelcol_google_e2e\"], ${format("%q", var.test_run_id)})" + ] + } + ] + trace_statements = [ + { + context = "spanevent" + statements = [ + "set(resource.attributes[\"otelcol_google_e2e\"], ${format("%q", var.test_run_id)})" + ] + } + ] + } + } + exporters = { + googlecloud = { + log = { + default_log_name = "google-otelcol/smoke-test" + } + } + } + + extensions = { + "health_check" = {} + } + + service = { + pipelines = { + metrics = { + receivers = ["otlp/internal"] + processors = ["resourcedetection", "transform"] + exporters = ["googlecloud"] + } + traces = { + receivers = ["otlp/internal"] + processors = ["resourcedetection", "transform"] + exporters = ["googlecloud"] + } + logs = { + receivers = ["otlp/internal"] + processors = ["resourcedetection", "transform"] + exporters = ["googlecloud"] + } + } + telemetry = { + logs = { + processors = [ + { + batch = { + exporter = { + otlp = { + protocol = "http/protobuf" + endpoint = "http://localhost:14318" + } + } + } + } + ] + } + metrics = { + address = "0.0.0.0:8888" + readers = [ + { + periodic = { + interval = 10000 + exporter = { + otlp = { + protocol = "grpc/protobuf" + endpoint = "http://localhost:14317" + } + } + } + } + ] + } + traces = { + processors = [ + { + batch = { + exporter = { + otlp = { + protocol = "grpc/protobuf" + endpoint = "http://localhost:14317" + } + } + } + } + ] + } + } + } + } +} diff --git a/tf/persistent-collector/gke-cluster.tf b/tf/persistent-collector/gke-cluster.tf new file mode 100644 index 0000000..d2dff5a --- /dev/null +++ b/tf/persistent-collector/gke-cluster.tf @@ -0,0 +1,15 @@ +// This GKE cluster is used across GKE test runs for running pods, because GKE +// cluster creation/destruction take ~3 minutes each +resource "google_container_cluster" "default" { + # The terraform workspace will be given a random name (test run id) which we + # can use to get unique resource names. + name = local.gke_cluster_name + location = local.gke_cluster_location + + initial_node_count = 1 + node_config { + oauth_scopes = [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } +} diff --git a/tf/persistent-collector/main-common.tf b/tf/persistent-collector/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/persistent-collector/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/e2etestrunner/art.go b/util/art.go similarity index 99% rename from e2etestrunner/art.go rename to util/art.go index 8a37b7a..6da59e6 100644 --- a/e2etestrunner/art.go +++ b/util/art.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package e2etestrunner +package util const BeginOutputArt = ` diff --git a/e2etestrunner/e2e_testing.go b/util/e2e_testing.go similarity index 68% rename from e2etestrunner/e2e_testing.go rename to util/e2e_testing.go index 14b076c..b2c9c79 100644 --- a/e2etestrunner/e2e_testing.go +++ b/util/e2e_testing.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package e2etestrunner +package util import ( "context" @@ -52,6 +52,18 @@ type GceCmd struct { CmdWithImage } +type GceCollectorCmd struct { + CmdWithImage +} + +type GkeCollectorCmd struct { + CmdWithImage +} + +type GkeOperatorCollectorCmd struct { + CmdWithImage +} + type GkeCmd struct { CmdWithImage } @@ -72,6 +84,10 @@ type CloudRunCmd struct { CmdWithImage } +type CloudRunCollectorCmd struct { + CmdWithImage +} + type CloudFunctionsGen2Cmd struct { // Needed to configure which language will the function instance support Runtime string `arg:"required" help:"Configure the language runtime environment for CloudFunction"` @@ -87,13 +103,17 @@ type Args struct { // tf/persistent/README.md for details on what is in there. ApplyPersistent *ApplyPersistent `arg:"subcommand:apply-persistent" help:"Terraform apply the resources in tf/persistent and exit (does not run tests)."` - Local *LocalCmd `arg:"subcommand:local" help:"Deploy the test server locally with docker and execute tests"` - Gke *GkeCmd `arg:"subcommand:gke" help:"Deploy the test server on GKE and execute tests"` - Gce *GceCmd `arg:"subcommand:gce" help:"Deploy the test server on GCE and execute tests"` - Gae *GaeCmd `arg:"subcommand:gae" help:"Deploy the test server on GAE and execute tests"` - GaeStandard *GaeStandardCmd `arg:"subcommand:gae-standard" help:"Deploy the test server on GAE standard and execute tests"` - CloudRun *CloudRunCmd `arg:"subcommand:cloud-run" help:"Deploy the test server on Cloud Run and execute tests"` - CloudFunctionsGen2 *CloudFunctionsGen2Cmd `arg:"subcommand:cloud-functions-gen2" help:"Deploy the test server on Cloud Function (2nd Gen) and execute tests"` + Local *LocalCmd `arg:"subcommand:local" help:"Deploy the test server locally with docker and execute tests"` + Gke *GkeCmd `arg:"subcommand:gke" help:"Deploy the test server on GKE and execute tests"` + Gce *GceCmd `arg:"subcommand:gce" help:"Deploy the test server on GCE and execute tests"` + GceCollector *GceCollectorCmd `arg:"subcommand:gce-collector" help:"Deploy the collector on GCE and execute tests"` + GkeCollector *GkeCollectorCmd `arg:"subcommand:gke-collector" help:"Deploy the collector on GKE and execute tests"` + GkeOperatorCollector *GkeOperatorCollectorCmd `arg:"subcommand:gke-operator-collector" help:"Deploy the collector on GKE using the OpenTelemetry Operator and execute tests"` + Gae *GaeCmd `arg:"subcommand:gae" help:"Deploy the test server on GAE and execute tests"` + GaeStandard *GaeStandardCmd `arg:"subcommand:gae-standard" help:"Deploy the test server on GAE standard and execute tests"` + CloudRun *CloudRunCmd `arg:"subcommand:cloud-run" help:"Deploy the test server on Cloud Run and execute tests"` + CloudRunCollector *CloudRunCollectorCmd `arg:"subcommand:cloud-run-collector" help:"Deploy the collector on Cloud Run and execute tests"` + CloudFunctionsGen2 *CloudFunctionsGen2Cmd `arg:"subcommand:cloud-functions-gen2" help:"Deploy the test server on Cloud Function (2nd Gen) and execute tests"` CmdWithProjectId GoTestFlags string `help:"go test flags to pass through, e.g. --gotestflags='-test.v'"` @@ -113,4 +133,10 @@ type SetupFunc func( *log.Logger, ) (*testclient.Client, Cleanup, error) +type SetupCollectorFunc func( + context.Context, + *Args, + *log.Logger, +) (Cleanup, error) + func NoopCleanup() {} diff --git a/e2etestrunner/setuptf/setuptf.go b/util/setuptf/setuptf.go similarity index 89% rename from e2etestrunner/setuptf/setuptf.go rename to util/setuptf/setuptf.go index 3084565..5fc8931 100644 --- a/e2etestrunner/setuptf/setuptf.go +++ b/util/setuptf/setuptf.go @@ -24,9 +24,10 @@ import ( ) const ( - tfPersistentDir = "tf/persistent" - Push SubscriptionMode = "push" - Pull SubscriptionMode = "pull" + tfPersistentDir = "tf/persistent" + tfPersistentCollectorDir = "tf/persistent-collector" + Push SubscriptionMode = "push" + Pull SubscriptionMode = "pull" ) type SubscriptionMode string @@ -155,18 +156,37 @@ func SetupTf( return &tfOutput.PubsubInfoWrapper.Value, cleanup, nil } +func ApplyPersistent( + ctx context.Context, + projectID string, + autoApprove bool, + logger *log.Logger, +) error { + return applyPersistent(ctx, projectID, autoApprove, logger, tfPersistentDir) +} + +func ApplyPersistentCollector( + ctx context.Context, + projectID string, + autoApprove bool, + logger *log.Logger, +) error { + return applyPersistent(ctx, projectID, autoApprove, logger, tfPersistentCollectorDir) +} + // Create persistent resources (in tf/persistent) that are used across tests. No // cleanup is required -func ApplyPersistent( +func applyPersistent( ctx context.Context, projectID string, autoApprove bool, logger *log.Logger, + persistentDir string, ) error { logger.Println("Applying any changes to persistent resources") // Run terraform init cmd := initCommand(ctx, projectID) - cmd.Dir = tfPersistentDir + cmd.Dir = persistentDir if err := runWithOutput(cmd, logger); err != nil { return err } diff --git a/e2etestrunner/util.go b/util/util.go similarity index 90% rename from e2etestrunner/util.go rename to util/util.go index 263ca0c..62cb070 100644 --- a/e2etestrunner/util.go +++ b/util/util.go @@ -12,15 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package e2etestrunner +package util import ( + "crypto/rand" "encoding/hex" - "math/rand" ) // Generates a random hex string of given length -func randomHex(length uint8) (string, error) { +func RandomHex(length uint8) (string, error) { bytes := make([]byte, length) if _, err := rand.Read(bytes); err != nil { return "", err From fdf825269dac98be870255a7f8496ede711d48bf Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 28 Jan 2025 21:49:35 +0000 Subject: [PATCH 02/48] Fixing conflicts --- go.sum | 112 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 58 insertions(+), 54 deletions(-) diff --git a/go.sum b/go.sum index dcfce8b..2bcb640 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,24 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= -cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= -cloud.google.com/go/auth v0.9.3 h1:VOEUIAADkkLtyfr3BLa3R8Ed/j6w1jTBmARx+wb5w5U= -cloud.google.com/go/auth v0.9.3/go.mod h1:7z6VY+7h3KUdRov5F1i8NDP5ZzWKYmEPO842BgCsmTk= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/auth v0.9.9 h1:BmtbpNQozo8ZwW2t7QJjnrQtdganSdmqeIBxHxNkEZQ= +cloud.google.com/go/auth v0.9.9/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= -cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= -cloud.google.com/go/iam v1.2.0 h1:kZKMKVNk/IsSSc/udOb83K0hL/Yh/Gcqpz+oAkoIFN8= -cloud.google.com/go/iam v1.2.0/go.mod h1:zITGuWgsLZxd8OwAlX+eMFgZDXzBm7icj1PVTYG766Q= -cloud.google.com/go/kms v1.19.0 h1:x0OVJDl6UH1BSX4THKlMfdcFWoE4ruh90ZHuilZekrU= -cloud.google.com/go/kms v1.19.0/go.mod h1:e4imokuPJUc17Trz2s6lEXFDt8bgDmvpVynH39bdrHM= -cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= -cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= -cloud.google.com/go/pubsub v1.42.0 h1:PVTbzorLryFL5ue8esTS2BfehUs0ahyNOY9qcd+HMOs= -cloud.google.com/go/pubsub v1.42.0/go.mod h1:KADJ6s4MbTwhXmse/50SebEhE4SmUwHi48z3/dHar1Y= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= +cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= +cloud.google.com/go/kms v1.20.0 h1:uKUvjGqbBlI96xGE669hcVnEMw1Px/Mvfa62dhM5UrY= +cloud.google.com/go/kms v1.20.0/go.mod h1:/dMbFF1tLLFnQV44AoI2GlotbjowyUfgVwezxW291fM= +cloud.google.com/go/logging v1.11.0 h1:v3ktVzXMV7CwHq1MBF65wcqLMA7i+z3YxbUsoK7mOKs= +cloud.google.com/go/logging v1.11.0/go.mod h1:5LDiJC/RxTt+fHc1LAt20R9TKiUTReDg6RuuFOZ67+A= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +cloud.google.com/go/monitoring v1.21.1 h1:zWtbIoBMnU5LP9A/fz8LmWMGHpk4skdfeiaa66QdFGc= +cloud.google.com/go/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c= +cloud.google.com/go/pubsub v1.44.0 h1:pLaMJVDTlnUDIKT5L0k53YyLszfBbGoUBo/IqDK/fEI= +cloud.google.com/go/pubsub v1.44.0/go.mod h1:BD4a/kmE8OePyHoa1qAHEw1rMzXX+Pc8Se54T/8mc3I= cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs= cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -89,12 +93,12 @@ github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.3 h1:QRje2j5GZimBzlbhGA2V2QlGNgL8G6e+wGo/+/2bWI0= -github.com/googleapis/enterprise-certificate-proxy v0.3.3/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -121,8 +125,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/sethvargo/go-retry v0.1.0 h1:8sPqlWannzcReEcYjHSNw9becsiYudcwTD7CasGjQaI= github.com/sethvargo/go-retry v0.1.0/go.mod h1:JzIOdZqQDNpPkQDmcqgtteAcxFLtYpNF/zJCM1ysDg8= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -138,33 +142,33 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.einride.tech/aip v0.67.1 h1:d/4TW92OxXBngkSOwWS2CH5rez869KpKMaN44mdxkFI= -go.einride.tech/aip v0.67.1/go.mod h1:ZGX4/zKw8dcgzdLsrvpOOGxfxI2QSk12SlP7d6c0/XI= +go.einride.tech/aip v0.68.0 h1:4seM66oLzTpz50u4K1zlJyOXQ3tCzcJN7I22tKkjipw= +go.einride.tech/aip v0.68.0/go.mod h1:7y9FF8VtPWqpxuAxl0KQWqaULxW4zFIesD6zF5RIHHg= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= -go.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw= -go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0/go.mod h1:jlRVBe7+Z1wyxFSUs48L6OBQZ5JwH2Hg/Vbl+t9rAgI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= -go.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc= -go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4= -go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -180,8 +184,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= @@ -196,14 +200,14 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= -golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -216,26 +220,26 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.196.0 h1:k/RafYqebaIJBO3+SMnfEGtFVlvp5vSgqTUF54UN/zg= -google.golang.org/api v0.196.0/go.mod h1:g9IL21uGkYgvQ5BZg6BAtoGJQIm8r6EgaAbpNey5wBE= +google.golang.org/api v0.203.0 h1:SrEeuwU3S11Wlscsn+LA1kb/Y5xT8uggJSkIhD08NAU= +google.golang.org/api v0.203.0/go.mod h1:BuOVyCSYEPwJb3npWvDnNmFI92f3GeRnHNkETneT3SI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 h1:Df6WuGvthPzc+JiQ/G+m+sNX24kc0aTBqoDN/0yyykE= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53/go.mod h1:fheguH3Am2dGp1LfXkrvwqC/KlFq8F0nLq3LryOMrrE= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.66.0 h1:DibZuoBznOxbDQxRINckZcUvnCEvrW9pcWIE2yF9r1c= -google.golang.org/grpc v1.66.0/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -245,8 +249,8 @@ google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= From eb41c1b6305120502bb52c941267af05f021ee64 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 13 Feb 2025 19:26:09 +0000 Subject: [PATCH 03/48] Update otel config to match upstream change --- tf/modules/otel-config/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tf/modules/otel-config/main.tf b/tf/modules/otel-config/main.tf index f2120d8..a4d137c 100644 --- a/tf/modules/otel-config/main.tf +++ b/tf/modules/otel-config/main.tf @@ -100,7 +100,7 @@ output "config" { interval = 10000 exporter = { otlp = { - protocol = "grpc/protobuf" + protocol = "grpc" endpoint = "http://localhost:14317" } } @@ -114,7 +114,7 @@ output "config" { batch = { exporter = { otlp = { - protocol = "grpc/protobuf" + protocol = "grpc" endpoint = "http://localhost:14317" } } From d05d754110557fb6ceb8eb6fc7822560c767f6f0 Mon Sep 17 00:00:00 2001 From: Jeff Erbrecht <89024676+jefferbrecht@users.noreply.github.com> Date: Thu, 7 Aug 2025 13:02:41 -0400 Subject: [PATCH 04/48] Fix deprecated address config (#74) https://github.com/open-telemetry/opentelemetry-collector/pull/11205 describes the migration --- tf/modules/otel-config/main.tf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tf/modules/otel-config/main.tf b/tf/modules/otel-config/main.tf index a4d137c..861c414 100644 --- a/tf/modules/otel-config/main.tf +++ b/tf/modules/otel-config/main.tf @@ -93,7 +93,6 @@ output "config" { ] } metrics = { - address = "0.0.0.0:8888" readers = [ { periodic = { @@ -105,6 +104,16 @@ output "config" { } } } + }, + { + pull = { + exporter = { + prometheus = { + host = "0.0.0.0" + port = 8888 + } + } + } } ] } From 111cb1bf140ac94e167c958827956971463500d7 Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 19:10:56 +0000 Subject: [PATCH 05/48] Adding COS arm support --- e2etestrunner-collector/main_test.go | 3 + .../setupgcecollectorarm.go | 49 ++++++++++++ quickstarttest/go.sum | 22 ++++++ tf/gce-collector-arm/gce-collector-arm.tf | 76 +++++++++++++++++++ tf/gce-collector-arm/main-common.tf | 1 + util/e2e_testing.go | 5 ++ 6 files changed, 156 insertions(+) create mode 100644 e2etestrunner-collector/setupgcecollectorarm.go create mode 100644 tf/gce-collector-arm/gce-collector-arm.tf create mode 120000 tf/gce-collector-arm/main-common.tf diff --git a/e2etestrunner-collector/main_test.go b/e2etestrunner-collector/main_test.go index 576b49b..a16051e 100644 --- a/e2etestrunner-collector/main_test.go +++ b/e2etestrunner-collector/main_test.go @@ -59,6 +59,9 @@ func TestMain(m *testing.M) { case args.GceCollector != nil: setupFunc = SetupGceCollector resourceType = "gce_instance" + case args.GceCollectorArm != nil: + setupFunc = SetupGceCollectorArm + resourceType = "gce_instance" case args.GkeCollector != nil: setupFunc = SetupGkeCollector resourceType = "k8s_container" diff --git a/e2etestrunner-collector/setupgcecollectorarm.go b/e2etestrunner-collector/setupgcecollectorarm.go new file mode 100644 index 0000000..27ccb60 --- /dev/null +++ b/e2etestrunner-collector/setupgcecollectorarm.go @@ -0,0 +1,49 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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 e2etestrunner_collector + +import ( + "context" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util" + "github.com/GoogleCloudPlatform/opentelemetry-operations-e2e-testing/util/setuptf" + "log" +) + +const gceCollectorArmTfDir string = "tf/gce-collector-arm" + +// SetupGceCollectorArm Set up the collector to run in GCE arm container. Creates a new +// GCE VM resources, and runs the specified container image. The +// returned cleanup function tears down the VM. +func SetupGceCollectorArm( + ctx context.Context, + args *util.Args, + logger *log.Logger, +) (util.Cleanup, error) { + _, cleanupTf, err := setuptf.SetupTf( + ctx, + args.ProjectID, + args.TestRunID, + gceCollectorArmTfDir, + map[string]string{ + "image": args.GceCollectorArm.Image, + }, + logger, + ) + if err != nil { + return cleanupTf, err + } + + return cleanupTf, err +} diff --git a/quickstarttest/go.sum b/quickstarttest/go.sum index 262468a..ee8e780 100644 --- a/quickstarttest/go.sum +++ b/quickstarttest/go.sum @@ -227,6 +227,7 @@ github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN9coASF1GusYX6AlU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -498,10 +499,13 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.5 go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1 h1:gbhw/u49SS3gkPWiYweQNJGm/uJN5GkI/FrosxSHT7A= go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.46.1/go.mod h1:GnOaBaFQ2we3b9AGWJpsBa7v1S5RlQzlC3O7dRMxZhM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 h1:ZtfnDL+tUrs1F0Pzfwbg2d59Gru9NCH3bgSHBM6LDwU= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0/go.mod h1:hG4Fj/y8TR/tlEDREo8tWstl9fO9gcFkn4xrx0Io8xU= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0 h1:j7ZSD+5yn+lo3sGV69nW04rRR0jhYnBwjuX3r0HvnK0= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.32.0/go.mod h1:WXbYJTUaZXAbYd8lbgGuvih0yuCfOFC5RJoYnoLcGz8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 h1:wNMDy/LVGLj2h3p6zg4d0gypKfWKSWI14E1C4smOgl8= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0/go.mod h1:YfbDdXAAkemWJK3H/DshvlrxqFB2rtW4rY6ky/3x/H0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.29.0 h1:dIIDULZJpgdiHz5tXrTgKIMLkus6jEFa7x5SOKcyR7E= @@ -511,9 +515,13 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0 h1:JAv0Jwtl01UFiyWZEMiJZBiTlv5A50zNs8lsthXqIio= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.29.0/go.mod h1:QNKLmUEAq2QUbPQUfvw4fmv0bgbK7UlOSFCnXyfvSNc= go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -529,12 +537,14 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -546,6 +556,7 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -556,6 +567,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -583,34 +595,44 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 h1:Df6WuGvthPzc+JiQ/G+m+sNX24kc0aTBqoDN/0yyykE= +google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53/go.mod h1:fheguH3Am2dGp1LfXkrvwqC/KlFq8F0nLq3LryOMrrE= google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28 h1:M0KvPgPmDZHPlbRbaNU1APr28TvwvvdUPlSv7PUvy8g= +google.golang.org/genproto/googleapis/api v0.0.0-20241104194629-dd2ea8efbc28/go.mod h1:dguCy7UOdZhTvLzDyt15+rOrawrpM4q7DD9dQ1P11P4= google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697 h1:LWZqQOEjDyONlF1H6afSWpAL/znlREo2tHfLoe+8LMA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241118233622-e639e219e697/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= google.golang.org/grpc v1.0.5/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/cenkalti/backoff.v1 v1.1.0 h1:Arh75ttbsvlpVA7WtVpH4u9h6Zl46xuptxqLxPiSo4Y= diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf new file mode 100644 index 0000000..4e85388 --- /dev/null +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -0,0 +1,76 @@ +# Copyright 2021 Google LLC +# +# 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 +# +# https://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. + +resource "google_compute_instance" "default" { + # The terraform workspace will be given a random name (test run id) which we + # can use to get unique resource names. + name = "e2etest-${terraform.workspace}" + machine_type = "c4a-standard-1" + allow_stopping_for_update = true + + labels = merge( + local.common_labels, + { container-vm = module.gce_container.vm_container_label }, + ) + + boot_disk { + initialize_params { + image = module.gce_container.source_image + } + } + + metadata = { + gce-container-declaration = module.gce_container.metadata_value + google-logging-enabled = "true" + } + + network_interface { + network = "default" + + // TODO: remove this to not allocate external IP. Tried but GCE container + // doesn't seem to boot without public IP + access_config { + // Ephemeral IP + } + } + + service_account { + scopes = ["cloud-platform"] + } +} + +module "gce_container" { + source = "terraform-google-modules/container-vm/google" + version = "2.0.0" + + container = { + image = var.image + args = ["--config=env:OTEL_CONFIG"] + env = [ + { + name = "OTEL_CONFIG" + value = jsonencode(module.otel_config.config) + } + ] + } +} + +module "otel_config" { + source = "../modules/otel-config" + test_run_id = terraform.workspace +} + +variable "image" { + type = string +} diff --git a/tf/gce-collector-arm/main-common.tf b/tf/gce-collector-arm/main-common.tf new file mode 120000 index 0000000..fde24a2 --- /dev/null +++ b/tf/gce-collector-arm/main-common.tf @@ -0,0 +1 @@ +../common/main-common.tf \ No newline at end of file diff --git a/util/e2e_testing.go b/util/e2e_testing.go index b2c9c79..98e91c8 100644 --- a/util/e2e_testing.go +++ b/util/e2e_testing.go @@ -56,6 +56,10 @@ type GceCollectorCmd struct { CmdWithImage } +type GceCollectorArmCmd struct { + CmdWithImage +} + type GkeCollectorCmd struct { CmdWithImage } @@ -107,6 +111,7 @@ type Args struct { Gke *GkeCmd `arg:"subcommand:gke" help:"Deploy the test server on GKE and execute tests"` Gce *GceCmd `arg:"subcommand:gce" help:"Deploy the test server on GCE and execute tests"` GceCollector *GceCollectorCmd `arg:"subcommand:gce-collector" help:"Deploy the collector on GCE and execute tests"` + GceCollectorArm *GceCollectorArmCmd `arg:"subcommand:gce-collector-arm" help:"Deploy the collector on GCE and execute tests"` GkeCollector *GkeCollectorCmd `arg:"subcommand:gke-collector" help:"Deploy the collector on GKE and execute tests"` GkeOperatorCollector *GkeOperatorCollectorCmd `arg:"subcommand:gke-operator-collector" help:"Deploy the collector on GKE using the OpenTelemetry Operator and execute tests"` Gae *GaeCmd `arg:"subcommand:gae" help:"Deploy the test server on GAE and execute tests"` From 3b971f41a652e9384046a0797b6780f03ae5a446 Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 20:45:58 +0000 Subject: [PATCH 06/48] bug fix --- tf/gce-collector-arm/gce-collector-arm.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 4e85388..c9f18d4 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -27,6 +27,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = module.gce_container.source_image + architecture = ARM64 } } From fd01572dd2f3ff071ac1a0853e0f68b89e25da88 Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 21:01:20 +0000 Subject: [PATCH 07/48] updating google resource --- tf/common/main-common.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/common/main-common.tf b/tf/common/main-common.tf index 9e309d5..905da58 100644 --- a/tf/common/main-common.tf +++ b/tf/common/main-common.tf @@ -19,7 +19,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = "6.14.1" + version = "7.2.0" } kubernetes = { source = "hashicorp/kubernetes" From cc05ccd0084800799a418f0a11eab8433e1bf1a0 Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 21:10:28 +0000 Subject: [PATCH 08/48] bug fix --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index c9f18d4..04f6ae3 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -27,7 +27,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = module.gce_container.source_image - architecture = ARM64 + architecture = "ARM64" } } From a94495ed2fc0a2dbc4f0484d17c47fffa1724376 Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 22:07:34 +0000 Subject: [PATCH 09/48] change disk type --- tf/gce-collector-arm/gce-collector-arm.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 04f6ae3..db03e3c 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -27,6 +27,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = module.gce_container.source_image + type = "hyperdisk-balanced" architecture = "ARM64" } } From dd63fd157a568caa185b05b43d7baa967650e3ae Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 22:23:03 +0000 Subject: [PATCH 10/48] attempt bug fix --- tf/gce-collector-arm/gce-collector-arm.tf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index db03e3c..a00a825 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -27,7 +27,6 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = module.gce_container.source_image - type = "hyperdisk-balanced" architecture = "ARM64" } } @@ -54,7 +53,7 @@ resource "google_compute_instance" "default" { module "gce_container" { source = "terraform-google-modules/container-vm/google" - version = "2.0.0" + version = "3.2.0" container = { image = var.image From dbf9706a1aea9e386da3fad7717ac28e920e5bfc Mon Sep 17 00:00:00 2001 From: avilevy Date: Mon, 15 Sep 2025 23:32:53 +0000 Subject: [PATCH 11/48] upgrade terraform --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2834459..0b9f81f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,7 @@ RUN go mod download COPY . . RUN set -x; if [ "$BUILD_TAGS" = "e2ecollector" ]; then BUILD_DIRECTORY="e2etestrunner-collector"; else BUILD_TAGS="e2e"; BUILD_DIRECTORY="e2etestrunner"; fi; CGO_ENABLED=0 go test -timeout 3600s -tags=$BUILD_TAGS -c "./$BUILD_DIRECTORY" -o opentelemetry-operations-e2e-testing.test -FROM hashicorp/terraform:light as tfbuild +FROM hashicorp/terraform:1.13 as tfbuild COPY tf /src/tf WORKDIR /src/tf ENV TF_PLUGIN_CACHE_DIR=/src/tf/terraform-plugin-cache From 2c26c6ee12f8d64d1198ae81b9518fbe2fa0db1d Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 16 Sep 2025 00:59:36 +0000 Subject: [PATCH 12/48] fixing provider --- tf/common/main-common.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/common/main-common.tf b/tf/common/main-common.tf index 905da58..81f5e17 100644 --- a/tf/common/main-common.tf +++ b/tf/common/main-common.tf @@ -19,7 +19,7 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = "7.2.0" + version = "6.49.3" } kubernetes = { source = "hashicorp/kubernetes" From 1f866f530287fd7e44e92c45b53228aa8848a06d Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 16 Sep 2025 14:34:56 +0000 Subject: [PATCH 13/48] changing image family --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index a00a825..6ba472f 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -26,7 +26,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { - image = module.gce_container.source_image + image = "projects/cos-cloud/global/images/family/cos-arm64-stable" architecture = "ARM64" } } From fcc6f3a4d8a375614fab2742ced420e43c1113b0 Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 16 Sep 2025 15:06:14 +0000 Subject: [PATCH 14/48] adjusting timeout --- util/e2e_testing.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/e2e_testing.go b/util/e2e_testing.go index 98e91c8..37e1311 100644 --- a/util/e2e_testing.go +++ b/util/e2e_testing.go @@ -122,7 +122,7 @@ type Args struct { CmdWithProjectId GoTestFlags string `help:"go test flags to pass through, e.g. --gotestflags='-test.v'"` - HealthCheckTimeout time.Duration `arg:"--health-check-timeout" help:"A duration (e.g. 5m) to wait for the test server health check. Default is 2m." default:"2m"` + HealthCheckTimeout time.Duration `arg:"--health-check-timeout" help:"A duration (e.g. 5m) to wait for the test server health check. Default is 2m." default:"15m"` // This is used in a new terraform workspace's name and in the GCP resources // we create. Pass the GCB build ID in CI to get the build id formatted into From 9c2b88422acf8fb9ca3bad2a7b26623b231eec05 Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 16 Sep 2025 18:52:12 +0000 Subject: [PATCH 15/48] adding debug to the tests. --- tf/modules/otel-config/main.tf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tf/modules/otel-config/main.tf b/tf/modules/otel-config/main.tf index 861c414..a543ec1 100644 --- a/tf/modules/otel-config/main.tf +++ b/tf/modules/otel-config/main.tf @@ -53,6 +53,9 @@ output "config" { default_log_name = "google-otelcol/smoke-test" } } + debug = { + verbosity = "detailed" + } } extensions = { @@ -74,7 +77,7 @@ output "config" { logs = { receivers = ["otlp/internal"] processors = ["resourcedetection", "transform"] - exporters = ["googlecloud"] + exporters = ["googlecloud", "debug"] } } telemetry = { From 987270cd407f1f24031b1957323569af5fad0158 Mon Sep 17 00:00:00 2001 From: avilevy Date: Tue, 16 Sep 2025 19:58:11 +0000 Subject: [PATCH 16/48] Adding sleep --- e2etestrunner-collector/smoke_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index d0afa1e..99da794 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,6 +26,8 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() + ctx, _ = context.WithTimeout(ctx, 1*time.Hour) + time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From 1fa4c1336097179240bf70860e7a6762d6efb193 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 15:51:17 +0000 Subject: [PATCH 17/48] remove sleep --- e2etestrunner-collector/smoke_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index 99da794..d0afa1e 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,8 +26,6 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() - ctx, _ = context.WithTimeout(ctx, 1*time.Hour) - time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From d99f0311367bad900e3872de05420ac1169b6cfc Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 16:56:30 +0000 Subject: [PATCH 18/48] readd sleep --- e2etestrunner-collector/smoke_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index d0afa1e..99da794 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,6 +26,8 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() + ctx, _ = context.WithTimeout(ctx, 1*time.Hour) + time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From 786483f77a46b55cb286fc1fdc6c6001e62eb696 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 17:36:52 +0000 Subject: [PATCH 19/48] reducing version --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 6ba472f..8030d12 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -53,7 +53,7 @@ resource "google_compute_instance" "default" { module "gce_container" { source = "terraform-google-modules/container-vm/google" - version = "3.2.0" + version = "2.0.0" container = { image = var.image From 9595b8d68ed2d321ced9837aedd231822a162655 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 18:13:43 +0000 Subject: [PATCH 20/48] removing arch --- tf/gce-collector-arm/gce-collector-arm.tf | 1 - 1 file changed, 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 8030d12..efce6d4 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -27,7 +27,6 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = "projects/cos-cloud/global/images/family/cos-arm64-stable" - architecture = "ARM64" } } From 06061fdc9190b10c1a13eaf7dead3aa0aeaacb50 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 19:08:01 +0000 Subject: [PATCH 21/48] Add logging --- util/setuptf/setuptf.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/util/setuptf/setuptf.go b/util/setuptf/setuptf.go index 5fc8931..c7bffa1 100644 --- a/util/setuptf/setuptf.go +++ b/util/setuptf/setuptf.go @@ -95,6 +95,8 @@ func SetupTf( return nil, func() {}, err } + logger.Printf("Running %s with image: %s\n", tfDir, tfVars["image"]) + cleanup := func() { defer deleteWorkspace(ctx, testRunID, tfDir, logger) From 129896e19c18604bfa744caf8417122aa3f4e119 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 20:00:33 +0000 Subject: [PATCH 22/48] trying startup script --- e2etestrunner-collector/smoke_test.go | 2 - tf/gce-collector-arm/gce-collector-arm.tf | 46 ++++++++++++++--------- tf/gce-collector-arm/startup_script.sh | 17 +++++++++ 3 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 tf/gce-collector-arm/startup_script.sh diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index 99da794..d0afa1e 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,8 +26,6 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() - ctx, _ = context.WithTimeout(ctx, 1*time.Hour) - time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index efce6d4..2267d5d 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -19,10 +19,10 @@ resource "google_compute_instance" "default" { machine_type = "c4a-standard-1" allow_stopping_for_update = true - labels = merge( - local.common_labels, - { container-vm = module.gce_container.vm_container_label }, - ) +# labels = merge( +# local.common_labels, +# { container-vm = module.gce_container.vm_container_label }, +# ) boot_disk { initialize_params { @@ -31,8 +31,9 @@ resource "google_compute_instance" "default" { } metadata = { - gce-container-declaration = module.gce_container.metadata_value +# gce-container-declaration = module.gce_container.metadata_value google-logging-enabled = "true" + startup-script = file("./startup_script.sh") } network_interface { @@ -50,22 +51,31 @@ resource "google_compute_instance" "default" { } } -module "gce_container" { - source = "terraform-google-modules/container-vm/google" - version = "2.0.0" - - container = { +data "template_file" "default" { + template = file("./startup_script.sh") + vars = { image = var.image - args = ["--config=env:OTEL_CONFIG"] - env = [ - { - name = "OTEL_CONFIG" - value = jsonencode(module.otel_config.config) - } - ] + config = jsonencode(module.otel_config.config) } } + +# module "gce_container" { +# source = "terraform-google-modules/container-vm/google" +# version = "2.0.0" +# +# container = { +# image = var.image +# args = ["--config=env:OTEL_CONFIG"] +# env = [ +# { +# name = "OTEL_CONFIG" +# value = jsonencode(module.otel_config.config) +# } +# ] +# } +# } + module "otel_config" { source = "../modules/otel-config" test_run_id = terraform.workspace @@ -74,3 +84,5 @@ module "otel_config" { variable "image" { type = string } + + diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh new file mode 100644 index 0000000..ed8fedf --- /dev/null +++ b/tf/gce-collector-arm/startup_script.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# A name for the container +IMAGE="${image}" +CONFIG="${config}" + +# Set home directory to save docker credentials +export HOME=/home/appuser + +# Configure docker with credentials for gcr.io and pkg.dev +docker-credential-gcr configure-docker + +# Use Cloud Logging logging driver +docker run --log-driver=gcplogs nginx:latest + +# Pull the latest version of the container image from Docker Hub +docker run -e OTEL_CONFIG="$CONFIG" "${IMAGE}" --config=env:OTEL_CONFIG From 03a5386f4a14a17bf56595ad5cccca92514e1ba2 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 20:04:43 +0000 Subject: [PATCH 23/48] bug fix --- tf/gce-collector-arm/startup_script.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index ed8fedf..3c59e3d 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -10,8 +10,5 @@ export HOME=/home/appuser # Configure docker with credentials for gcr.io and pkg.dev docker-credential-gcr configure-docker -# Use Cloud Logging logging driver -docker run --log-driver=gcplogs nginx:latest - # Pull the latest version of the container image from Docker Hub docker run -e OTEL_CONFIG="$CONFIG" "${IMAGE}" --config=env:OTEL_CONFIG From 736e529189782e4f55ddfe17929a0f781c15b2a4 Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 21:05:53 +0000 Subject: [PATCH 24/48] use a template for the startup script --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 2267d5d..704b85b 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -33,7 +33,7 @@ resource "google_compute_instance" "default" { metadata = { # gce-container-declaration = module.gce_container.metadata_value google-logging-enabled = "true" - startup-script = file("./startup_script.sh") + startup-script = data.template_file.default.rendered } network_interface { From a5e96dd7fdd207f2a7e4c7ddd4b9f2d9054adf8c Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 21:17:30 +0000 Subject: [PATCH 25/48] bug fix --- tf/gce-collector-arm/startup_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 3c59e3d..678a1e6 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -11,4 +11,4 @@ export HOME=/home/appuser docker-credential-gcr configure-docker # Pull the latest version of the container image from Docker Hub -docker run -e OTEL_CONFIG="$CONFIG" "${IMAGE}" --config=env:OTEL_CONFIG +docker run -e OTEL_CONFIG="$CONFIG" "$IMAGE" --config=env:OTEL_CONFIG From 507e6b1bca8e6585daea3cd1f742846d89c3f29f Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 21:37:14 +0000 Subject: [PATCH 26/48] Added timer --- e2etestrunner-collector/smoke_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index d0afa1e..7db020d 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,6 +26,8 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() + ctx, _ = context.WithTimeout(ctx, 50*time.Minute) + time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From f9d61e25ea3ec971119e043b2f11ddfb8895c67f Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 22:24:17 +0000 Subject: [PATCH 27/48] fix startup_script.sh --- tf/gce-collector-arm/startup_script.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 678a1e6..dd5c36a 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -2,13 +2,19 @@ # A name for the container IMAGE="${image}" -CONFIG="${config}" # Set home directory to save docker credentials export HOME=/home/appuser +cat < /home/appuser/config.json +${config} +EOF + + # Configure docker with credentials for gcr.io and pkg.dev docker-credential-gcr configure-docker -# Pull the latest version of the container image from Docker Hub -docker run -e OTEL_CONFIG="$CONFIG" "$IMAGE" --config=env:OTEL_CONFIG +docker run \ + -v /home/appuser/config.json:/config.json \ + "$IMAGE" \ + --config=/config.json From 1bfd252f0cd9695755e10f488852d7e4ea05dbfe Mon Sep 17 00:00:00 2001 From: avilevy Date: Wed, 17 Sep 2025 22:37:14 +0000 Subject: [PATCH 28/48] fix startup_script.sh --- tf/gce-collector-arm/startup_script.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index dd5c36a..8a975f9 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -6,11 +6,10 @@ IMAGE="${image}" # Set home directory to save docker credentials export HOME=/home/appuser -cat < /home/appuser/config.json +cat > /home/appuser/config.json < Date: Thu, 18 Sep 2025 01:32:05 +0000 Subject: [PATCH 29/48] update startup_script.sh --- tf/gce-collector-arm/startup_script.sh | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 8a975f9..5d44b1a 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -1,9 +1,5 @@ #!/bin/bash -# A name for the container -IMAGE="${image}" - -# Set home directory to save docker credentials export HOME=/home/appuser cat > /home/appuser/config.json < Date: Thu, 18 Sep 2025 01:43:22 +0000 Subject: [PATCH 30/48] update startup_script.sh --- e2etestrunner-collector/smoke_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index 7db020d..d0afa1e 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,8 +26,6 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() - ctx, _ = context.WithTimeout(ctx, 50*time.Minute) - time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From bd55c466846a584746331c3aeea17a9cd12c8d57 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 02:06:36 +0000 Subject: [PATCH 31/48] more testing --- e2etestrunner-collector/smoke_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index d0afa1e..7db020d 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,6 +26,8 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() + ctx, _ = context.WithTimeout(ctx, 50*time.Minute) + time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From c953c4fe658c55773b7a9e2c95b097d20971cb1a Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 02:44:38 +0000 Subject: [PATCH 32/48] more testing --- tf/gce-collector-arm/startup_script.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 5d44b1a..7669480 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -1,12 +1,13 @@ #!/bin/bash export HOME=/home/appuser +mkdir /home/appuser/config -cat > /home/appuser/config.json < /home/appuser/config/config.json < Date: Thu, 18 Sep 2025 03:23:47 +0000 Subject: [PATCH 33/48] env --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- tf/gce-collector-arm/startup_script.sh | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 704b85b..fed6752 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -55,7 +55,7 @@ data "template_file" "default" { template = file("./startup_script.sh") vars = { image = var.image - config = jsonencode(module.otel_config.config) + config = replace(jsonencode(module.otel_config.config), "\"", "\\\"") } } diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 7669480..bdef43a 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -1,13 +1,12 @@ #!/bin/bash export HOME=/home/appuser -mkdir /home/appuser/config -cat > /home/appuser/config/config.json < /home/appuser/config/config.json < Date: Thu, 18 Sep 2025 03:45:04 +0000 Subject: [PATCH 34/48] env --- tf/gce-collector-arm/startup_script.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index bdef43a..c12580b 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -2,11 +2,13 @@ export HOME=/home/appuser -#cat > /home/appuser/config/config.json < /home/appuser/config.json < Date: Thu, 18 Sep 2025 03:54:13 +0000 Subject: [PATCH 35/48] double dollar --- tf/gce-collector-arm/startup_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index c12580b..e538afa 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -11,4 +11,4 @@ CONFIG="$(cat /home/appuser/config.json)" # Configure docker with credentials for gcr.io and pkg.dev docker-credential-gcr configure-docker --registries us-docker.pkg.dev -sudo -E docker run -e OTEL_CONFIG="\${CONFIG}" "${image}" --config=env:OTEL_CONFIG +sudo -E docker run -e OTEL_CONFIG="$${CONFIG}" "${image}" --config=env:OTEL_CONFIG From 87adcd3555e9d04092cdfb6c0a932c383f476759 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 04:11:39 +0000 Subject: [PATCH 36/48] bug fixes --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- tf/gce-collector-arm/startup_script.sh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index fed6752..704b85b 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -55,7 +55,7 @@ data "template_file" "default" { template = file("./startup_script.sh") vars = { image = var.image - config = replace(jsonencode(module.otel_config.config), "\"", "\\\"") + config = jsonencode(module.otel_config.config) } } diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index e538afa..d761992 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -7,6 +7,7 @@ ${config} EOF CONFIG="$(cat /home/appuser/config.json)" +echo $CONFIG # Configure docker with credentials for gcr.io and pkg.dev docker-credential-gcr configure-docker --registries us-docker.pkg.dev From 9e2bd1df7d512e937f36088caedcda47adc8ebea Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 04:46:36 +0000 Subject: [PATCH 37/48] bug fixes --- tf/gce-collector-arm/startup_script.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index d761992..95471a7 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -2,11 +2,13 @@ export HOME=/home/appuser -cat > /home/appuser/config.json < /tmp/config/config.json < Date: Thu, 18 Sep 2025 05:00:16 +0000 Subject: [PATCH 38/48] bug fixes --- tf/gce-collector-arm/startup_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 95471a7..9ef457d 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -8,7 +8,7 @@ cat > /tmp/config/config.json < Date: Thu, 18 Sep 2025 05:10:55 +0000 Subject: [PATCH 39/48] change config --- tf/modules/otel-config/main.tf | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tf/modules/otel-config/main.tf b/tf/modules/otel-config/main.tf index a543ec1..861c414 100644 --- a/tf/modules/otel-config/main.tf +++ b/tf/modules/otel-config/main.tf @@ -53,9 +53,6 @@ output "config" { default_log_name = "google-otelcol/smoke-test" } } - debug = { - verbosity = "detailed" - } } extensions = { @@ -77,7 +74,7 @@ output "config" { logs = { receivers = ["otlp/internal"] processors = ["resourcedetection", "transform"] - exporters = ["googlecloud", "debug"] + exporters = ["googlecloud"] } } telemetry = { From 4d4f5763de5671a4d13ca0e7172ebb4061e6a4e4 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 05:11:29 +0000 Subject: [PATCH 40/48] revert test --- e2etestrunner-collector/smoke_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index 7db020d..d0afa1e 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,8 +26,6 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() - ctx, _ = context.WithTimeout(ctx, 50*time.Minute) - time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From d726d0d5e2c9eedc99b6d670ede6a067d91c95ac Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 14:32:53 +0000 Subject: [PATCH 41/48] testing removing env variable for config. --- tf/gce-collector-arm/startup_script.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index 9ef457d..d35e0b7 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -14,4 +14,4 @@ echo $CONFIG # Configure docker with credentials for gcr.io and pkg.dev docker-credential-gcr configure-docker --registries us-docker.pkg.dev -sudo -E docker run -e OTEL_CONFIG="$${CONFIG}" "${image}" --config=env:OTEL_CONFIG +sudo -E docker run -v /tmp/config:/config "${image}" --config=/config/config.json From c8dda881d08a3e076726136ebbe1466643a61105 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 14:56:24 +0000 Subject: [PATCH 42/48] removing echos --- tf/gce-collector-arm/startup_script.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/tf/gce-collector-arm/startup_script.sh b/tf/gce-collector-arm/startup_script.sh index d35e0b7..80af882 100644 --- a/tf/gce-collector-arm/startup_script.sh +++ b/tf/gce-collector-arm/startup_script.sh @@ -8,9 +8,6 @@ cat > /tmp/config/config.json < Date: Thu, 18 Sep 2025 15:59:19 +0000 Subject: [PATCH 43/48] Clean up --- tf/gce-collector-arm/gce-collector-arm.tf | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 704b85b..4df5234 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -19,11 +19,6 @@ resource "google_compute_instance" "default" { machine_type = "c4a-standard-1" allow_stopping_for_update = true -# labels = merge( -# local.common_labels, -# { container-vm = module.gce_container.vm_container_label }, -# ) - boot_disk { initialize_params { image = "projects/cos-cloud/global/images/family/cos-arm64-stable" @@ -59,23 +54,6 @@ data "template_file" "default" { } } - -# module "gce_container" { -# source = "terraform-google-modules/container-vm/google" -# version = "2.0.0" -# -# container = { -# image = var.image -# args = ["--config=env:OTEL_CONFIG"] -# env = [ -# { -# name = "OTEL_CONFIG" -# value = jsonencode(module.otel_config.config) -# } -# ] -# } -# } - module "otel_config" { source = "../modules/otel-config" test_run_id = terraform.workspace From e7a2421d6c4b5953d3594f2b8770b4a53787c57b Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 15:59:54 +0000 Subject: [PATCH 44/48] Clean up part 2 --- tf/gce-collector-arm/gce-collector-arm.tf | 1 - 1 file changed, 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index 4df5234..e7893c8 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -26,7 +26,6 @@ resource "google_compute_instance" "default" { } metadata = { -# gce-container-declaration = module.gce_container.metadata_value google-logging-enabled = "true" startup-script = data.template_file.default.rendered } From 4c0dc781f478d15bd828168b90f8a95c8876057b Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 16:05:20 +0000 Subject: [PATCH 45/48] Sleep to test manifestlist --- e2etestrunner-collector/smoke_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index d0afa1e..7db020d 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,6 +26,8 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() + ctx, _ = context.WithTimeout(ctx, 50*time.Minute) + time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err) From 0bb203f8b3d07367f7809ea84a8857a853b04655 Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 17:30:21 +0000 Subject: [PATCH 46/48] adding explicit arch --- tf/gce-collector-arm/gce-collector-arm.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index e7893c8..a4f93c1 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -22,6 +22,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = "projects/cos-cloud/global/images/family/cos-arm64-stable" + architecture = ARM64 } } From e2b96d2989c894f11d0f8bf630a876bf52072bcd Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 17:46:38 +0000 Subject: [PATCH 47/48] bug fix --- tf/gce-collector-arm/gce-collector-arm.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tf/gce-collector-arm/gce-collector-arm.tf b/tf/gce-collector-arm/gce-collector-arm.tf index a4f93c1..6bafa97 100644 --- a/tf/gce-collector-arm/gce-collector-arm.tf +++ b/tf/gce-collector-arm/gce-collector-arm.tf @@ -22,7 +22,7 @@ resource "google_compute_instance" "default" { boot_disk { initialize_params { image = "projects/cos-cloud/global/images/family/cos-arm64-stable" - architecture = ARM64 + architecture = "ARM64" } } From 4710e0ffdbb84f9eda27938ed46fcf755e61f9da Mon Sep 17 00:00:00 2001 From: avilevy Date: Thu, 18 Sep 2025 18:02:37 +0000 Subject: [PATCH 48/48] remove sleep --- e2etestrunner-collector/smoke_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/e2etestrunner-collector/smoke_test.go b/e2etestrunner-collector/smoke_test.go index 7db020d..d0afa1e 100644 --- a/e2etestrunner-collector/smoke_test.go +++ b/e2etestrunner-collector/smoke_test.go @@ -26,8 +26,6 @@ const ( func TestMetrics(t *testing.T) { ctx := context.Background() - ctx, _ = context.WithTimeout(ctx, 50*time.Minute) - time.Sleep(50 * time.Minute) c, err := monitoring.NewMetricClient(ctx) if err != nil { t.Fatal(err)