From 564d33e6a6ba913368ec2c5498a870adfccb62b3 Mon Sep 17 00:00:00 2001 From: Alexandre Vilain Date: Sat, 22 Jun 2024 15:07:19 +0200 Subject: [PATCH] Add support for temporal v1.24.x --- Dockerfile | 2 +- README.md | 28 ++-- api/v1beta1/temporalcluster_defaults.go | 16 ++- api/v1beta1/temporalcluster_types.go | 3 + api/v1beta1/zz_generated.deepcopy.go | 10 +- ...mporal-operator.clusterserviceversion.yaml | 2 +- .../bases/temporal.io_temporalclusters.yaml | 3 + ...mporal-operator.clusterserviceversion.yaml | 2 +- ...oral-operator.clusterserviceversion.yaml-e | 2 +- .../temporal.io_v1beta1_temporalcluster.yaml | 2 +- docs/api/v1beta1.md | 12 ++ docs/features/admin-tools.md | 4 +- docs/features/archival.md | 8 +- docs/features/dynamic-config.md | 2 +- .../monitoring/prometheus-operator.md | 2 +- docs/features/monitoring/prometheus.md | 2 +- docs/features/temporal-ui.md | 8 +- docs/getting-started.md | 2 +- .../02-temporal-cluster.yaml | 2 +- .../02-temporal-cluster.yaml | 2 +- .../02-temporal-cluster.yaml | 2 +- .../cluster-mtls/02-temporal-cluster.yaml | 2 +- .../cluster-mysql/02-temporal-cluster.yaml | 2 +- .../02-temporal-cluster.yaml | 2 +- .../03-temporal-cluster.yaml | 2 +- .../cluster-postgres/02-temporal-cluster.yaml | 2 +- .../cluster-sidecar/02-temporal-cluster.yaml | 2 +- examples/schedule/02-temporal-cluster.yaml | 2 +- go.mod | 28 ++-- go.sum | 136 ++++-------------- .../resource/admintools/deployment_builder.go | 2 +- .../persistence/schema_setup_job_builder.go | 2 +- pkg/version/version.go | 12 +- pkg/version/version_test.go | 61 ++++++++ pkg/version/zz_generated.deepcopy.go | 1 - tests/e2e/mtls_test.go | 8 +- tests/e2e/namespace_test.go | 4 +- tests/e2e/persistence_test.go | 44 +++--- tests/e2e/schedule_test.go | 4 +- tests/e2e/utils_test.go | 18 ++- webhooks/temporalcluster_webhook.go | 19 ++- webhooks/temporalcluster_webhook_test.go | 52 +++++++ 42 files changed, 310 insertions(+), 211 deletions(-) diff --git a/Dockerfile b/Dockerfile index af17a6a8..fc3b4ee7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM --platform=${BUILDPLATFORM} golang:1.22.2 as builder +FROM --platform=${BUILDPLATFORM} golang:1.22.2 AS builder ARG TARGETPLATFORM ARG BUILDPLATFORM diff --git a/README.md b/README.md index 16052645..a00b0478 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: @@ -62,18 +62,20 @@ Somes examples are available to help you get started: The following table shows operator compatibility with Temporal and Kubernetes. Please note this table only reports end-to-end tests suite coverage, others versions *may* work. -| Temporal Operator | Temporal | Kubernetes | -|-------------------|--------------------|----------------| -| v0.18.x | v1.19.x to v1.23.x | v1.25 to v1.29 | -| v0.17.x | v1.18.x to v1.22.x | v1.25 to v1.29 | -| v0.16.x | v1.18.x to v1.22.x | v1.24 to v1.27 | -| v0.15.x | v1.18.x to v1.21.x | v1.24 to v1.27 | -| v0.14.x | v1.18.x to v1.21.x | v1.24 to v1.27 | -| v0.13.x | v1.18.x to v1.20.x | v1.24 to v1.27 | -| v0.12.x | v1.18.x to v1.20.x | v1.23 to v1.26 | -| v0.11.x | v1.17.x to v1.19.x | v1.23 to v1.26 | -| v0.10.x | v1.17.x to v1.19.x | v1.23 to v1.26 | -| v0.9.x | v1.16.x to v1.18.x | v1.22 to v1.25 | +| Temporal Operator | Temporal | Kubernetes | +|------------------------|--------------------|----------------| +| v0.20.x (not released) | v1.19.x to v1.24.x | v1.26 to v1.30 | +| v0.19.x | v1.19.x to v1.23.x | v1.25 to v1.29 | +| v0.18.x | v1.19.x to v1.23.x | v1.25 to v1.29 | +| v0.17.x | v1.18.x to v1.22.x | v1.25 to v1.29 | +| v0.16.x | v1.18.x to v1.22.x | v1.24 to v1.27 | +| v0.15.x | v1.18.x to v1.21.x | v1.24 to v1.27 | +| v0.14.x | v1.18.x to v1.21.x | v1.24 to v1.27 | +| v0.13.x | v1.18.x to v1.20.x | v1.24 to v1.27 | +| v0.12.x | v1.18.x to v1.20.x | v1.23 to v1.26 | +| v0.11.x | v1.17.x to v1.19.x | v1.23 to v1.26 | +| v0.10.x | v1.17.x to v1.19.x | v1.23 to v1.26 | +| v0.9.x | v1.16.x to v1.18.x | v1.22 to v1.25 | ## Roadmap diff --git a/api/v1beta1/temporalcluster_defaults.go b/api/v1beta1/temporalcluster_defaults.go index 8a6578fb..2158262c 100644 --- a/api/v1beta1/temporalcluster_defaults.go +++ b/api/v1beta1/temporalcluster_defaults.go @@ -26,13 +26,14 @@ import ( ) const ( - defaultTemporalVersion = "1.23.0" + defaultTemporalVersion = "1.24.2" defaultTemporalImage = "temporalio/server" - defaultTemporalUIVersion = "2.25.0" + defaultTemporalUIVersion = "2.27.3" defaultTemporalUIImage = "temporalio/ui" - defaultTemporalAdmintoolsImage = "temporalio/admin-tools" + defaultTemporalAdmintoolsImage = "temporalio/admin-tools" + defaultTemporalAdmintoolsVersion = "1.24.2-tctl-1.18.1-cli-0.13.2" ) // Default set default fields values. @@ -213,6 +214,15 @@ func (c *TemporalCluster) Default() { c.Spec.AdminTools.Image = defaultTemporalAdmintoolsImage } + if c.Spec.AdminTools.Version == "" { + if c.Spec.Version.GreaterOrEqual(version.V1_24_0) { + c.Spec.AdminTools.Version = defaultTemporalAdmintoolsVersion + } else { + c.Spec.AdminTools.Version = c.Spec.Version.String() + } + + } + if c.Spec.MTLS != nil { if c.Spec.MTLS.RefreshInterval == nil { c.Spec.MTLS.RefreshInterval = &metav1.Duration{Duration: time.Hour} diff --git a/api/v1beta1/temporalcluster_types.go b/api/v1beta1/temporalcluster_types.go index 010aec4b..26d17ddf 100644 --- a/api/v1beta1/temporalcluster_types.go +++ b/api/v1beta1/temporalcluster_types.go @@ -585,6 +585,9 @@ type TemporalAdminToolsSpec struct { // Image defines the temporal admin tools docker image the instance should run. // +optional Image string `json:"image"` + // Version defines the temporal admin tools version the instance should run. + // +optional + Version string `json:"version"` // Compute Resources required by the ui. // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ // +optional diff --git a/api/v1beta1/zz_generated.deepcopy.go b/api/v1beta1/zz_generated.deepcopy.go index d42b3b6c..20d87d3d 100644 --- a/api/v1beta1/zz_generated.deepcopy.go +++ b/api/v1beta1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Licensed to Alexandre VILAIN under one or more contributor // license agreements. See the NOTICE file distributed with @@ -431,7 +430,8 @@ func (in *DynamicConfigSpec) DeepCopyInto(out *DynamicConfigSpec) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]ConstrainedValue, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) @@ -641,7 +641,8 @@ func (in *MetricsSpec) DeepCopyInto(out *MetricsSpec) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } @@ -656,7 +657,8 @@ func (in *MetricsSpec) DeepCopyInto(out *MetricsSpec) { if val == nil { (*out)[key] = nil } else { - in, out := &val, &outVal + inVal := (*in)[key] + in, out := &inVal, &outVal *out = make([]string, len(*in)) copy(*out, *in) } diff --git a/bundle/manifests/temporal-operator.clusterserviceversion.yaml b/bundle/manifests/temporal-operator.clusterserviceversion.yaml index 9b72c423..4fe039ac 100644 --- a/bundle/manifests/temporal-operator.clusterserviceversion.yaml +++ b/bundle/manifests/temporal-operator.clusterserviceversion.yaml @@ -191,7 +191,7 @@ spec: user: temporal ui: enabled: true - version: 1.23.0 + version: 1.24.2 ### Apply TemporalCluster CustomResource diff --git a/config/crd/bases/temporal.io_temporalclusters.yaml b/config/crd/bases/temporal.io_temporalclusters.yaml index d14fc287..469f52d4 100644 --- a/config/crd/bases/temporal.io_temporalclusters.yaml +++ b/config/crd/bases/temporal.io_temporalclusters.yaml @@ -174,6 +174,9 @@ spec: More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object + version: + description: Version defines the temporal admin tools version the instance should run. + type: string type: object archival: description: Archival allows Workflow Execution Event Histories and Visibility data backups for the temporal cluster. diff --git a/config/manifests/bases/temporal-operator.clusterserviceversion.yaml b/config/manifests/bases/temporal-operator.clusterserviceversion.yaml index 550e62b3..1e74b2ab 100644 --- a/config/manifests/bases/temporal-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/temporal-operator.clusterserviceversion.yaml @@ -164,7 +164,7 @@ spec: user: temporal ui: enabled: true - version: 1.23.0 + version: 1.24.2 ### Apply TemporalCluster CustomResource diff --git a/config/manifests/bases/temporal-operator.clusterserviceversion.yaml-e b/config/manifests/bases/temporal-operator.clusterserviceversion.yaml-e index 18597878..0303c991 100644 --- a/config/manifests/bases/temporal-operator.clusterserviceversion.yaml-e +++ b/config/manifests/bases/temporal-operator.clusterserviceversion.yaml-e @@ -164,7 +164,7 @@ spec: user: temporal ui: enabled: true - version: 1.23.0 + version: 1.24.2 ### Apply TemporalCluster CustomResource diff --git a/config/samples/temporal.io_v1beta1_temporalcluster.yaml b/config/samples/temporal.io_v1beta1_temporalcluster.yaml index 3627fc3c..29cf0dba 100644 --- a/config/samples/temporal.io_v1beta1_temporalcluster.yaml +++ b/config/samples/temporal.io_v1beta1_temporalcluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/docs/api/v1beta1.md b/docs/api/v1beta1.md index 50822bd3..3775e60f 100644 --- a/docs/api/v1beta1.md +++ b/docs/api/v1beta1.md @@ -4574,6 +4574,18 @@ string +version
+ +string + + + +(Optional) +

Version defines the temporal admin tools version the instance should run.

+ + + + resources
diff --git a/docs/features/admin-tools.md b/docs/features/admin-tools.md index 3aefef2e..760f0820 100644 --- a/docs/features/admin-tools.md +++ b/docs/features/admin-tools.md @@ -11,7 +11,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] admintools: @@ -19,5 +19,5 @@ spec: # You can specify the admin tools version if needed. # Check available tag you can check by the link below # https://hub.docker.com/r/temporalio/admin-tools/tags - version: 1.23.0 + version: 1.24.2-tctl-1.18.1-cli-0.13.2 ``` diff --git a/docs/features/archival.md b/docs/features/archival.md index 191cb711..a5506a7d 100644 --- a/docs/features/archival.md +++ b/docs/features/archival.md @@ -68,7 +68,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] archival: @@ -104,7 +104,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] archival: @@ -142,7 +142,7 @@ kind: TemporalCluster metadata: name: prod spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] services: @@ -195,7 +195,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] archival: diff --git a/docs/features/dynamic-config.md b/docs/features/dynamic-config.md index f998d375..62f01868 100644 --- a/docs/features/dynamic-config.md +++ b/docs/features/dynamic-config.md @@ -11,7 +11,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] dynamicConfig: diff --git a/docs/features/monitoring/prometheus-operator.md b/docs/features/monitoring/prometheus-operator.md index a54a142e..cf67256f 100644 --- a/docs/features/monitoring/prometheus-operator.md +++ b/docs/features/monitoring/prometheus-operator.md @@ -23,7 +23,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] metrics: diff --git a/docs/features/monitoring/prometheus.md b/docs/features/monitoring/prometheus.md index 51a003c1..9393e578 100644 --- a/docs/features/monitoring/prometheus.md +++ b/docs/features/monitoring/prometheus.md @@ -19,7 +19,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] metrics: diff --git a/docs/features/temporal-ui.md b/docs/features/temporal-ui.md index 3b5d54ff..1f1f32fd 100644 --- a/docs/features/temporal-ui.md +++ b/docs/features/temporal-ui.md @@ -15,7 +15,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] ui: @@ -39,7 +39,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] ui: @@ -63,7 +63,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 # [...] ui: @@ -92,7 +92,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 ui: enabled: true diff --git a/docs/getting-started.md b/docs/getting-started.md index 9806a23a..575cd4e0 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -34,7 +34,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/examples/cluster-cassandra/02-temporal-cluster.yaml b/examples/cluster-cassandra/02-temporal-cluster.yaml index b6f61a81..e4333207 100644 --- a/examples/cluster-cassandra/02-temporal-cluster.yaml +++ b/examples/cluster-cassandra/02-temporal-cluster.yaml @@ -13,7 +13,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/examples/cluster-mtls-istio/02-temporal-cluster.yaml b/examples/cluster-mtls-istio/02-temporal-cluster.yaml index 28097949..898b7811 100644 --- a/examples/cluster-mtls-istio/02-temporal-cluster.yaml +++ b/examples/cluster-mtls-istio/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/examples/cluster-mtls-linkerd/02-temporal-cluster.yaml b/examples/cluster-mtls-linkerd/02-temporal-cluster.yaml index c91402b0..b9d749e9 100644 --- a/examples/cluster-mtls-linkerd/02-temporal-cluster.yaml +++ b/examples/cluster-mtls-linkerd/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/examples/cluster-mtls/02-temporal-cluster.yaml b/examples/cluster-mtls/02-temporal-cluster.yaml index 0542822d..e4c46e81 100644 --- a/examples/cluster-mtls/02-temporal-cluster.yaml +++ b/examples/cluster-mtls/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/examples/cluster-mysql/02-temporal-cluster.yaml b/examples/cluster-mysql/02-temporal-cluster.yaml index 0afcfbea..fccd560d 100644 --- a/examples/cluster-mysql/02-temporal-cluster.yaml +++ b/examples/cluster-mysql/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/examples/cluster-postgres-archival/02-temporal-cluster.yaml b/examples/cluster-postgres-archival/02-temporal-cluster.yaml index fee748f2..40d8570f 100644 --- a/examples/cluster-postgres-archival/02-temporal-cluster.yaml +++ b/examples/cluster-postgres-archival/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/examples/cluster-postgres-es/03-temporal-cluster.yaml b/examples/cluster-postgres-es/03-temporal-cluster.yaml index 09a09adc..d7fd5fc1 100644 --- a/examples/cluster-postgres-es/03-temporal-cluster.yaml +++ b/examples/cluster-postgres-es/03-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 jobTtlSecondsAfterFinished: 300 persistence: diff --git a/examples/cluster-postgres/02-temporal-cluster.yaml b/examples/cluster-postgres/02-temporal-cluster.yaml index 759ad096..bd0ef696 100644 --- a/examples/cluster-postgres/02-temporal-cluster.yaml +++ b/examples/cluster-postgres/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/examples/cluster-sidecar/02-temporal-cluster.yaml b/examples/cluster-sidecar/02-temporal-cluster.yaml index be7df29f..8debda4c 100644 --- a/examples/cluster-sidecar/02-temporal-cluster.yaml +++ b/examples/cluster-sidecar/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/examples/schedule/02-temporal-cluster.yaml b/examples/schedule/02-temporal-cluster.yaml index 2e82ffd6..96b968d9 100644 --- a/examples/schedule/02-temporal-cluster.yaml +++ b/examples/schedule/02-temporal-cluster.yaml @@ -4,7 +4,7 @@ metadata: name: prod namespace: demo spec: - version: 1.23.0 + version: 1.24.2 numHistoryShards: 1 persistence: defaultStore: diff --git a/go.mod b/go.mod index b8bf0996..8f25ae19 100644 --- a/go.mod +++ b/go.mod @@ -18,9 +18,9 @@ require ( github.com/onsi/gomega v1.34.1 github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.73.2 github.com/stretchr/testify v1.9.0 - go.temporal.io/api v1.36.0 - go.temporal.io/sdk v1.28.1 - go.temporal.io/server v1.23.0 + go.temporal.io/api v1.32.1 + go.temporal.io/sdk v1.26.1 + go.temporal.io/server v1.24.2 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v3 v3.0.1 @@ -43,13 +43,13 @@ require ( cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.7 // indirect cloud.google.com/go/storage v1.40.0 // indirect - github.com/aws/aws-sdk-go v1.49.13 // indirect + github.com/aws/aws-sdk-go v1.51.27 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cactus/go-statsd-client/v5 v5.0.0 // indirect + github.com/cactus/go-statsd-client/v5 v5.1.0 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect @@ -92,7 +92,6 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect - github.com/nexus-rpc/sdk-go v0.0.9 // indirect github.com/olivere/elastic/v7 v7.0.32 // indirect github.com/pborman/uuid v1.2.1 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -109,26 +108,25 @@ require ( github.com/stretchr/objx v0.5.2 // indirect github.com/temporalio/sqlparser v0.0.0-20231115171017-f4060bcfa6cb // indirect github.com/twmb/murmur3 v1.1.8 // indirect - github.com/uber-go/tally/v4 v4.1.7 // indirect + github.com/uber-go/tally/v4 v4.1.17-0.20240412215630-22fe011f5ff0 // indirect github.com/urfave/cli v1.22.14 // indirect github.com/vladimirvivien/gexe v0.2.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.51.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 // indirect go.opentelemetry.io/otel v1.26.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.26.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.26.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.26.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.48.0 // indirect go.opentelemetry.io/otel/metric v1.26.0 // indirect go.opentelemetry.io/otel/sdk v1.26.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.19.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.26.0 // indirect go.opentelemetry.io/otel/trace v1.26.0 // indirect go.opentelemetry.io/proto/otlp v1.2.0 // indirect go.uber.org/atomic v1.11.0 // indirect - go.uber.org/dig v1.17.0 // indirect - go.uber.org/fx v1.20.0 // indirect + go.uber.org/dig v1.17.1 // indirect + go.uber.org/fx v1.21.1 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/crypto v0.26.0 // indirect @@ -142,7 +140,7 @@ require ( golang.org/x/tools v0.24.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/api v0.181.0 // indirect - google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda // indirect + google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d // indirect google.golang.org/grpc v1.65.0 // indirect diff --git a/go.sum b/go.sum index 3fc552fd..e7937d2d 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,4 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.113.0 h1:g3C70mn3lWfckKBiCVsAshabrDg01pQ0pnX1MNtnMkA= cloud.google.com/go v0.113.0/go.mod h1:glEqlogERKYeePz6ZdkcLJ28Q2I6aERgDDErBg9GzO8= cloud.google.com/go/auth v0.4.2 h1:sb0eyLkhRtpq5jA+a8KWw0W70YcdVca7KJ8TM0AFYDg= @@ -16,22 +15,13 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexandrevilain/controller-tools v0.3.0 h1:tdTQo9ivc53GKOkjAVDLB7uBA8JxUgoUNl4LSkF4HH8= github.com/alexandrevilain/controller-tools v0.3.0/go.mod h1:KHokLdmgMzRGkd46oPj8puNipJCArwJWnRApAaY0eM4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go v1.49.13 h1:f4mGztsgnx2dR9r8FQYa9YW/RsKb+N7bgef4UGrOW1Y= -github.com/aws/aws-sdk-go v1.49.13/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.51.27 h1:ZprksHovT4rFfNBHB+Bc/0p4PTntAnTlZP39DMA/Qp8= +github.com/aws/aws-sdk-go v1.51.27/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= -github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= @@ -41,23 +31,21 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= -github.com/brianvoe/gofakeit/v6 v6.22.0 h1:BzOsDot1o3cufTfOk+fWKE9nFYojyDV+XHdCWL2+uyE= -github.com/brianvoe/gofakeit/v6 v6.22.0/go.mod h1:Ow6qC71xtwm79anlwKRlWZW6zVq9D2XHE4QSSMP/rU8= -github.com/cactus/go-statsd-client/v5 v5.0.0 h1:KqvIQtc9qt34uq+nu4nd1PwingWfBt/IISgtUQ2nSJk= -github.com/cactus/go-statsd-client/v5 v5.0.0/go.mod h1:COEvJ1E+/E2L4q6QE5CkjWPi4eeDw9maJBMIuMPBZbY= +github.com/cactus/go-statsd-client/v5 v5.1.0 h1:sbbdfIl9PgisjEoXzvXI1lwUKWElngsjJKaZeC021P4= +github.com/cactus/go-statsd-client/v5 v5.1.0/go.mod h1:COEvJ1E+/E2L4q6QE5CkjWPi4eeDw9maJBMIuMPBZbY= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cert-manager/cert-manager v1.15.0 h1:xVL8tzdQECMypoYQa9rv4DLjkn2pJXJLTqH4JUsxfko= github.com/cert-manager/cert-manager v1.15.0/go.mod h1:Vxq6yNKAbgQeMtzu5gqU8n0vXDiZcGTa5LDyCJRbmXE= -github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -84,11 +72,9 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-faker/faker/v4 v4.4.1 h1:LY1jDgjVkBZWIhATCt+gkl0x9i/7wC61gZx73GTFb+Q= +github.com/go-faker/faker/v4 v4.4.1/go.mod h1:HRLrjis+tYsbFtIHufEPTAIzcZiRu0rS9EYl2Ccwme4= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= @@ -108,7 +94,6 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gocql/gocql v1.6.0 h1:IdFdOTbnpbd0pDhl4REKQDM+Q0SzKXQ1Yh+YZZ8T/qU= github.com/gocql/gocql v1.6.0/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -119,7 +104,6 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb github.com/golang/mock v1.7.0-rc.1 h1:YojYx61/OLFsiv6Rw1Z96LpldJIy31o+UHmwAUMJ6/U= github.com/golang/mock v1.7.0-rc.1/go.mod h1:s42URUywIqd+OcERslBJvOjepvNymP31m3q8d/GkuRs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= @@ -128,7 +112,6 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= @@ -143,8 +126,6 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -189,19 +170,11 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= 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/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -213,24 +186,17 @@ github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffkt github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/nexus-rpc/sdk-go v0.0.9 h1:yQ16BlDWZ6EMjim/SMd8lsUGTj6TPxFioqLGP8/PJDQ= -github.com/nexus-rpc/sdk-go v0.0.9/go.mod h1:TpfkM2Cw0Rlk9drGkoiSMpFqflKTiQLWUNyKJjF8mKQ= github.com/olivere/elastic/v7 v7.0.32 h1:R7CXvbu8Eq+WlsLgxmKVKPox0oOwAE/2T9Si5BnvK6E= github.com/olivere/elastic/v7 v7.0.32/go.mod h1:c7PVmLe3Fxq77PIfY/bZmxY/TAamBhCzZ8xDOE09a9k= github.com/onsi/ginkgo/v2 v2.20.0 h1:PE84V2mHqoT1sglvHc8ZdQtPcwmvvt29WLEEO3xmdZw= @@ -240,7 +206,6 @@ github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeD github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -249,27 +214,13 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.73.2 h1:GwlGJPK6vf1UIohpc72KJVkKYlzki1UgE3xC4bWbf20= github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.73.2/go.mod h1:yJ3CawR/A5qEYFEeCOUVYLTwYxmacfHQhJS+b/2QiaM= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= -github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.54.0 h1:ZlZy0BgJhTwVZUn7dLOkwCZHUkrAqd3WYtcFCWnM1D8= github.com/prometheus/common v0.54.0/go.mod h1:/TQgMJP5CuVYveyT7n/0Ix8yLNNXy9yRSkhnLTHPDIQ= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ= @@ -280,9 +231,7 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -305,11 +254,10 @@ 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/temporalio/sqlparser v0.0.0-20231115171017-f4060bcfa6cb h1:YzHH/U/dN7vMP+glybzcXRTczTrgfdRisNTzAj7La04= github.com/temporalio/sqlparser v0.0.0-20231115171017-f4060bcfa6cb/go.mod h1:143qKdh3G45IgV9p+gbAwp3ikRDI8mxsijFiXDfuxsw= -github.com/twmb/murmur3 v1.1.5/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/twmb/murmur3 v1.1.8 h1:8Yt9taO/WN3l08xErzjeschgZU2QSrwm1kclYq+0aRg= github.com/twmb/murmur3 v1.1.8/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= -github.com/uber-go/tally/v4 v4.1.7 h1:YiKvvMKCCXlCKXI0i1hVk+xda8YxdIpjeFXohpvn8Zo= -github.com/uber-go/tally/v4 v4.1.7/go.mod h1:pPR56rjthjtLB8xQlEx2I1VwAwRGCh/i4xMUcmG+6z4= +github.com/uber-go/tally/v4 v4.1.17-0.20240412215630-22fe011f5ff0 h1:z5IgRoL16N7tdzn5oikX2G4oVXopW+CWo3XRxx61OQo= +github.com/uber-go/tally/v4 v4.1.17-0.20240412215630-22fe011f5ff0/go.mod h1:ZdpiHRGSa3z4NIAc1VlEH4SiknR885fOIF08xmS0gaU= github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/vladimirvivien/gexe v0.2.0 h1:nbdAQ6vbZ+ZNsolCgSVb9Fno60kzSuvtzVh6Ytqi/xY= @@ -325,41 +273,38 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0 h1:Xs2Ncz0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.51.0/go.mod h1:vy+2G/6NvVMpwGX/NyLqcC41fxepnuKHk16E6IZUcJc= go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= -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.26.0 h1:+hm+I+KigBy3M24/h1p/NHkUx/evbLH0PNcjpMyCHc4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.26.0/go.mod h1:NjC8142mLvvNT6biDpaMjyz78kyEHIwAJlSX0N9P5KI= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.26.0 h1:1u/AyyOqAWzy+SkPxDpahCNZParHV8Vid1RnI2clyDE= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.26.0/go.mod h1:z46paqbJ9l7c9fIPCXTqTGwhQZ5XoTIsfeFYWboizjs= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.26.0 h1:Waw9Wfpo/IXzOI8bCB7DIk+0JZcqqsyn1JFnAc+iam8= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.26.0/go.mod h1:wnJIG4fOqyynOnnQF/eQb4/16VlX2EJAHhHgqIqWfAo= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA= -go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA= +go.opentelemetry.io/otel/exporters/prometheus v0.48.0 h1:sBQe3VNGUjY9IKWQC6z2lNqa5iGbDSxhs60ABwK4y0s= +go.opentelemetry.io/otel/exporters/prometheus v0.48.0/go.mod h1:DtrbMzoZWwQHyrQmCfLam5DZbnmorsGbOtTbYHycU5o= go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= go.opentelemetry.io/otel/sdk v1.26.0 h1:Y7bumHf5tAiDlRYFmGqetNcLaVUZmh4iYfmGxtmz7F8= go.opentelemetry.io/otel/sdk v1.26.0/go.mod h1:0p8MXpqLeJ0pzcszQQN4F0S5FVjBLgypeGSngLsmirs= -go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k= -go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY= +go.opentelemetry.io/otel/sdk/metric v1.26.0 h1:cWSks5tfriHPdWFnl+qpX3P681aAYqlZHcAyHw5aU9Y= +go.opentelemetry.io/otel/sdk/metric v1.26.0/go.mod h1:ClMFFknnThJCksebJwz7KIyEDHO+nTB6gK8obLy8RyE= go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= -go.temporal.io/api v1.36.0 h1:WdntOw9m38lFvMdMXuOO+3BQ0R8HpVLgtk9+f+FwiDk= -go.temporal.io/api v1.36.0/go.mod h1:0nWIrFRVPlcrkopXqxir/UWOtz/NZCo+EE9IX4UwVxw= -go.temporal.io/sdk v1.28.1 h1:PsexsNDWXyWdJp4KWTOD+DfSZD1z0k5U/dIJF05akT4= -go.temporal.io/sdk v1.28.1/go.mod h1:zHcmZNXPaKXQJ6Hn98Ebcii7VlHL1mI4RJW8R6GQa1k= -go.temporal.io/server v1.23.0 h1:gOVJOfsxVv/7FjVv8Ff6IC8lcMZfB2jXgF8Ghfbw/Jw= -go.temporal.io/server v1.23.0/go.mod h1:ZZ4x5eVQpsp1eV09KydfZPTNF58PQqY6vXjbeXc+yK4= +go.temporal.io/api v1.32.1 h1:jivpWVuxUya9XkmJTcLLcb2kFqkwrknXpx13HlaQR0Y= +go.temporal.io/api v1.32.1/go.mod h1:DATVgu+KiAYVjFvOSXB9AVoYZT1yjGt6IPbb7bDw8Qs= +go.temporal.io/sdk v1.26.1 h1:ggmFBythnuuW3yQRp0VzOTrmbOf+Ddbe00TZl+CQ+6U= +go.temporal.io/sdk v1.26.1/go.mod h1:ph3K/74cry+JuSV9nJH+Q+Zeir2ddzoX2LjWL/e5yCo= +go.temporal.io/server v1.24.2 h1:z8KaFxpAtTI6gG2XQX5h+2tCXI6cYpT1tseMhefBKKI= +go.temporal.io/server v1.24.2/go.mod h1:bZuNDtqvTDh96D5+7DG1kfoJtWw7MJJDTy4GV9yRRdc= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= -go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= -go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= -go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= +go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= +go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= +go.uber.org/fx v1.21.1 h1:RqBh3cYdzZS0uqwVeEjOX2p73dddLpym315myy/Bpb0= +go.uber.org/fx v1.21.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= @@ -368,7 +313,6 @@ go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN8 go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= 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= @@ -386,49 +330,34 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/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-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 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.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/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/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= @@ -437,7 +366,6 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn 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/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -473,8 +401,8 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda h1:wu/KJm9KJwpfHWhkkZGohVC6KRrc1oJNr4jwtQMOQXw= -google.golang.org/genproto v0.0.0-20240401170217-c3f982113cda/go.mod h1:g2LLCvCeCSir/JJSWosk19BR4NVxGqHUC6rxIRsd7Aw= +google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be h1:g4aX8SUFA8V5F4LrSY5EclyGYw1OZN4HS1jTyjB9ZDc= +google.golang.org/genproto v0.0.0-20240415180920-8c6c420018be/go.mod h1:FeSdT5fk+lkxatqJP38MsUicGqHax5cLtmy/6TAuxO4= google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d h1:kHjw/5UfflP/L5EbledDrcG4C2597RtymmGRZvHiCuY= google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d/go.mod h1:mw8MG/Qz5wfgYr6VqVCiZcHe/GJEfI+oGGDCohaVgB0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240711142825-46eb208f015d h1:JU0iKnSg02Gmb5ZdV8nYsKEKsP6o/FGVWTrw4i1DA9A= @@ -496,26 +424,18 @@ 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.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/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= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/validator.v2 v2.0.0-20200605151824-2b28d334fa05/go.mod h1:o4V0GXN9/CAmCsvJ0oXYZvrZOe7syiDZSN1GWGZTGzc= gopkg.in/validator.v2 v2.0.1 h1:xF0KWyGWXm/LM2G1TrEjqOu4pa6coO9AlWSf3msVfDY= gopkg.in/validator.v2 v2.0.1/go.mod h1:lIUZBlB3Im4s/eYp39Ry/wkR02yOPhZ9IwIRBjuPuG8= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/resource/admintools/deployment_builder.go b/internal/resource/admintools/deployment_builder.go index 844cac75..7bec4487 100644 --- a/internal/resource/admintools/deployment_builder.go +++ b/internal/resource/admintools/deployment_builder.go @@ -134,7 +134,7 @@ func (b *DeploymentBuilder) Update(object client.Object) error { Containers: []corev1.Container{ { Name: "admintools", - Image: fmt.Sprintf("%s:%s", b.instance.Spec.AdminTools.Image, b.instance.Spec.Version), + Image: fmt.Sprintf("%s:%s", b.instance.Spec.AdminTools.Image, b.instance.Spec.AdminTools.Version), ImagePullPolicy: corev1.PullIfNotPresent, TerminationMessagePath: corev1.TerminationMessagePathDefault, TerminationMessagePolicy: corev1.TerminationMessageReadFile, diff --git a/internal/resource/persistence/schema_setup_job_builder.go b/internal/resource/persistence/schema_setup_job_builder.go index 6d3b09c7..745e47c8 100644 --- a/internal/resource/persistence/schema_setup_job_builder.go +++ b/internal/resource/persistence/schema_setup_job_builder.go @@ -123,7 +123,7 @@ func (b *SchemaJobBuilder) Build() client.Object { Containers: []corev1.Container{ { Name: "schema-script-runner", - Image: fmt.Sprintf("%s:%s", b.instance.Spec.AdminTools.Image, b.instance.Spec.Version), + Image: fmt.Sprintf("%s:%s", b.instance.Spec.AdminTools.Image, b.instance.Spec.AdminTools.Version), ImagePullPolicy: corev1.PullIfNotPresent, Resources: b.instance.Spec.JobResources, TerminationMessagePath: corev1.TerminationMessagePathDefault, diff --git a/pkg/version/version.go b/pkg/version/version.go index df0e0f56..1ab45eb8 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -28,18 +28,21 @@ import ( var ( // SupportedVersionsRange holds all supported temporal versions. - SupportedVersionsRange = mustNewConstraint(">= 1.14.0 < 1.24.0") + SupportedVersionsRange = mustNewConstraint(">= 1.14.0 < 1.25.0") ForbiddenBrokenReleases = []*Version{ // v1.21.0 is reported as broken, see: https://github.com/temporalio/temporal/releases/tag/v1.21.0 MustNewVersionFromString("1.21.0"), // v1.21.1 is reported as broken, see: https://github.com/temporalio/temporal/releases/tag/v1.21.1 MustNewVersionFromString("1.21.1"), + // v1.24.0 is reported as broken, see: https://github.com/temporalio/temporal/releases/tag/v1.24.0 + MustNewVersionFromString("1.24.0"), } V1_18_0 = MustNewVersionFromString("1.18.0") //nolint:stylecheck,revive V1_20_0 = MustNewVersionFromString("1.20.0") //nolint:stylecheck,revive V1_21_0 = MustNewVersionFromString("1.21.0") //nolint:stylecheck,revive V1_22_0 = MustNewVersionFromString("1.22.0") //nolint:stylecheck,revive V1_23_0 = MustNewVersionFromString("1.23.0") //nolint:stylecheck,revive + V1_24_0 = MustNewVersionFromString("1.24.0") //nolint:stylecheck,revive ) // Version is a wrapper around semver.Version which supports correct @@ -98,6 +101,13 @@ func (v *Version) GreaterOrEqual(compare *Version) bool { return c.Check(v.Version) } +// LessThan returns whenever version is less than the provided version. +func (v *Version) LessThan(compare *Version) bool { + str := fmt.Sprintf("< %s", compare.String()) + c, _ := semver.NewConstraint(str) + return c.Check(v.Version) +} + // UpgradeConstraint returns the Temporal Server upgrade constraint. // Users should upgrade Temporal Server sequentially. // The returned constraint ensures that, we're could only upgrade to upgrade from v1.n.x to v1.n+1.x. diff --git a/pkg/version/version_test.go b/pkg/version/version_test.go index c8118f37..1d2dcec7 100644 --- a/pkg/version/version_test.go +++ b/pkg/version/version_test.go @@ -67,3 +67,64 @@ func TestUpgradeConstraint(t *testing.T) { }) } } + +func TestVersionGreaterOrEqual(t *testing.T) { + tests := map[string]struct { + version1 *version.Version + version2 *version.Version + expected bool + }{ + "version is less than": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.18.0"), + expected: false, + }, + "version is equal": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.17.5"), + expected: true, + }, + "version is greater than": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.16.0"), + expected: true, + }, + } + for name, test := range tests { + t.Run(name, func(tt *testing.T) { + result := test.version1.GreaterOrEqual(test.version2) + assert.Equal(tt, test.expected, result) + }) + } +} + +func TestVersionLessThan(t *testing.T) { + tests := map[string]struct { + version1 *version.Version + version2 *version.Version + expected bool + }{ + "version is less than": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.18.0"), + expected: true, + }, + "version is equal": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.17.5"), + expected: false, + }, + "version is greater than": { + version1: version.MustNewVersionFromString("1.17.5"), + version2: version.MustNewVersionFromString("1.16.0"), + expected: false, + }, + } + + for name, test := range tests { + t.Run(name, func(tt *testing.T) { + result := test.version1.LessThan(test.version2) + assert.Equal(tt, test.expected, result) + }) + } +} diff --git a/pkg/version/zz_generated.deepcopy.go b/pkg/version/zz_generated.deepcopy.go index f203531a..59dd5200 100644 --- a/pkg/version/zz_generated.deepcopy.go +++ b/pkg/version/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Licensed to Alexandre VILAIN under one or more contributor // license agreements. See the NOTICE file distributed with diff --git a/tests/e2e/mtls_test.go b/tests/e2e/mtls_test.go index 871f05c3..6edec089 100644 --- a/tests/e2e/mtls_test.go +++ b/tests/e2e/mtls_test.go @@ -59,7 +59,7 @@ func TestWithmTLSEnabled(t *testing.T) { DefaultStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -72,7 +72,7 @@ func TestWithmTLSEnabled(t *testing.T) { VisibilityStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal_visibility", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -117,7 +117,7 @@ func TestWithmTLSEnabled(t *testing.T) { DefaultStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -130,7 +130,7 @@ func TestWithmTLSEnabled(t *testing.T) { VisibilityStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal_visibility", ConnectAddr: connectAddr, ConnectProtocol: "tcp", diff --git a/tests/e2e/namespace_test.go b/tests/e2e/namespace_test.go index 19f882f9..19b6259d 100644 --- a/tests/e2e/namespace_test.go +++ b/tests/e2e/namespace_test.go @@ -44,7 +44,7 @@ func TestNamespaceCreation(t *testing.T) { namespace := GetNamespaceForFeature(ctx) var err error - cluster, err = deployAndWaitForTemporalWithPostgres(ctx, cfg, namespace, "1.23.0") + cluster, err = deployAndWaitForTemporalWithPostgres(ctx, cfg, namespace) if err != nil { t.Fatal(err) } @@ -240,7 +240,7 @@ func TestNamespaceDeletionWhenClusterDeleted(rt *testing.T) { // create TemporalCluster namespace := GetNamespaceForFeature(ctx) - cluster, err := deployAndWaitForTemporalWithPostgres(ctx, c, namespace, "1.19.1") + cluster, err := deployAndWaitForTemporalWithPostgres(ctx, c, namespace) if err != nil { t.Fatal(err) } diff --git a/tests/e2e/persistence_test.go b/tests/e2e/persistence_test.go index 001bb411..5b765f60 100644 --- a/tests/e2e/persistence_test.go +++ b/tests/e2e/persistence_test.go @@ -30,9 +30,10 @@ import ( ) var ( - initialClusterVersion = "1.19.1" - newDatastoreVersion = "1.20.0" - defaultUpgradePath = []string{"1.20.4", "1.21.2", "1.22.6", "1.23.0"} + initialClusterVersion = "1.19.1" + newDatastoreVersion = "1.20.4" + oldPersistenceUpgradePath = []string{"1.20.4", "1.21.2", "1.22.6", "1.23.0"} + defaultUpgradePath = []string{"1.21.2", "1.22.6", "1.23.0", "1.24.2"} ) type ( @@ -46,7 +47,7 @@ func TestPersistence(t *testing.T) { upgradePath []string }{ "postgres persistence": { - upgradePath: defaultUpgradePath, + upgradePath: oldPersistenceUpgradePath, deployDependencies: []deployDependencyFunc{deployAndWaitForPostgres}, cluster: func(_ context.Context, _ *envconf.Config, namespace string) *v1beta1.TemporalCluster { connectAddr := fmt.Sprintf("postgres.%s:5432", namespace) // create the temporal cluster @@ -93,10 +94,10 @@ func TestPersistence(t *testing.T) { }, }, "postgres12 persistence": { - upgradePath: []string{}, + upgradePath: defaultUpgradePath, deployDependencies: []deployDependencyFunc{deployAndWaitForPostgres}, cluster: func(_ context.Context, _ *envconf.Config, namespace string) *v1beta1.TemporalCluster { - connectAddr := fmt.Sprintf("postgres.%s:5432", namespace) // create the temporal cluster + connectAddr := fmt.Sprintf("postgres.%s:5432", namespace) return &v1beta1.TemporalCluster{ ObjectMeta: metav1.ObjectMeta{ @@ -158,7 +159,7 @@ func TestPersistence(t *testing.T) { DefaultStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -171,7 +172,7 @@ func TestPersistence(t *testing.T) { VisibilityStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: "postgres12", DatabaseName: "temporal_visibility", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -198,7 +199,7 @@ func TestPersistence(t *testing.T) { }, }, "mysql persistence": { - upgradePath: defaultUpgradePath, + upgradePath: oldPersistenceUpgradePath, deployDependencies: []deployDependencyFunc{deployAndWaitForMySQL}, cluster: func(_ context.Context, _ *envconf.Config, namespace string) *v1beta1.TemporalCluster { connectAddr := fmt.Sprintf("mysql.%s:3306", namespace) @@ -245,7 +246,7 @@ func TestPersistence(t *testing.T) { }, }, "mysql8 persistence": { - upgradePath: []string{}, + upgradePath: defaultUpgradePath, deployDependencies: []deployDependencyFunc{deployAndWaitForMySQL}, cluster: func(_ context.Context, _ *envconf.Config, namespace string) *v1beta1.TemporalCluster { connectAddr := fmt.Sprintf("mysql.%s:3306", namespace) @@ -293,10 +294,8 @@ func TestPersistence(t *testing.T) { }, "cassandra persistence": { upgradePath: defaultUpgradePath, - deployDependencies: []deployDependencyFunc{deployAndWaitForCassandra}, + deployDependencies: []deployDependencyFunc{deployAndWaitForPostgres, deployAndWaitForCassandra}, cluster: func(_ context.Context, _ *envconf.Config, namespace string) *v1beta1.TemporalCluster { - connectAddr := fmt.Sprintf("cassandra.%s", namespace) - return &v1beta1.TemporalCluster{ ObjectMeta: metav1.ObjectMeta{ Name: "test", @@ -305,11 +304,13 @@ func TestPersistence(t *testing.T) { Spec: v1beta1.TemporalClusterSpec{ NumHistoryShards: 1, JobTTLSecondsAfterFinished: &jobTTL, - Version: version.MustNewVersionFromString(initialClusterVersion), + Version: version.MustNewVersionFromString(newDatastoreVersion), Persistence: v1beta1.TemporalPersistenceSpec{ DefaultStore: &v1beta1.DatastoreSpec{ Cassandra: &v1beta1.CassandraSpec{ - Hosts: []string{connectAddr}, + Hosts: []string{ + fmt.Sprintf("cassandra.%s", namespace), + }, User: "temporal", Keyspace: "temporal", Datacenter: "datacenter1", @@ -320,14 +321,15 @@ func TestPersistence(t *testing.T) { }, }, VisibilityStore: &v1beta1.DatastoreSpec{ - Cassandra: &v1beta1.CassandraSpec{ - Hosts: []string{connectAddr}, - User: "temporal", - Keyspace: "temporal_visibility", - Datacenter: "datacenter1", + SQL: &v1beta1.SQLSpec{ + User: "temporal", + PluginName: "postgres12", + DatabaseName: "temporal_visibility", + ConnectAddr: fmt.Sprintf("postgres.%s:5432", namespace), + ConnectProtocol: "tcp", }, PasswordSecretRef: &v1beta1.SecretKeyReference{ - Name: "cassandra-password", + Name: "postgres-password", Key: "PASSWORD", }, }, diff --git a/tests/e2e/schedule_test.go b/tests/e2e/schedule_test.go index 911b694f..36824bc6 100644 --- a/tests/e2e/schedule_test.go +++ b/tests/e2e/schedule_test.go @@ -44,7 +44,7 @@ func TestScheduleCreation(t *testing.T) { namespace := GetNamespaceForFeature(ctx) var err error - cluster, err = deployAndWaitForTemporalWithPostgres(ctx, cfg, namespace, "1.23.0") + cluster, err = deployAndWaitForTemporalWithPostgres(ctx, cfg, namespace) if err != nil { t.Fatal(err) } @@ -236,7 +236,7 @@ func TestScheduleDeletionWhenNamespaceDeleted(rt *testing.T) { // create TemporalCluster namespace := GetNamespaceForFeature(ctx) - cluster, err := deployAndWaitForTemporalWithPostgres(ctx, c, namespace, "1.19.1") + cluster, err := deployAndWaitForTemporalWithPostgres(ctx, c, namespace) if err != nil { t.Fatal(err) } diff --git a/tests/e2e/utils_test.go b/tests/e2e/utils_test.go index ca2496e8..43d81663 100644 --- a/tests/e2e/utils_test.go +++ b/tests/e2e/utils_test.go @@ -48,13 +48,20 @@ import ( const doesNotExistName = "does-not-exist" -func deployAndWaitForTemporalWithPostgres(ctx context.Context, cfg *envconf.Config, namespace, v string) (*v1beta1.TemporalCluster, error) { +var defaultVersion = version.MustNewVersionFromString("1.24.2") + +func deployAndWaitForTemporalWithPostgres(ctx context.Context, cfg *envconf.Config, namespace string) (*v1beta1.TemporalCluster, error) { // create the postgres err := deployAndWaitForPostgres(ctx, cfg, namespace) if err != nil { return nil, err } + pluginName := "postgres12" + if defaultVersion.GreaterOrEqual(version.V1_24_0) { + pluginName = "postgres12" + } + connectAddr := fmt.Sprintf("postgres.%s:5432", namespace) // create the temporal cluster cluster := &v1beta1.TemporalCluster{ ObjectMeta: metav1.ObjectMeta{ @@ -64,7 +71,7 @@ func deployAndWaitForTemporalWithPostgres(ctx context.Context, cfg *envconf.Conf Spec: v1beta1.TemporalClusterSpec{ NumHistoryShards: 1, JobTTLSecondsAfterFinished: &jobTTL, - Version: version.MustNewVersionFromString(v), + Version: defaultVersion, Metrics: &v1beta1.MetricsSpec{ Enabled: true, Prometheus: &v1beta1.PrometheusSpec{ @@ -84,7 +91,7 @@ func deployAndWaitForTemporalWithPostgres(ctx context.Context, cfg *envconf.Conf DefaultStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: pluginName, DatabaseName: "temporal", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -97,7 +104,7 @@ func deployAndWaitForTemporalWithPostgres(ctx context.Context, cfg *envconf.Conf VisibilityStore: &v1beta1.DatastoreSpec{ SQL: &v1beta1.SQLSpec{ User: "temporal", - PluginName: "postgres", + PluginName: pluginName, DatabaseName: "temporal_visibility", ConnectAddr: connectAddr, ConnectProtocol: "tcp", @@ -275,7 +282,8 @@ func waitForCluster(_ context.Context, cfg *envconf.Config, cluster *v1beta1.Tem func waitForClusterClient(_ context.Context, cfg *envconf.Config, clusterClient *v1beta1.TemporalClusterClient) error { cond := conditions.New(cfg.Client().Resources()).ResourceMatch(clusterClient, func(object k8s.Object) bool { - return object.(*v1beta1.TemporalClusterClient).Status.SecretRef.Name != "" + return object.(*v1beta1.TemporalClusterClient).Status.SecretRef != nil && + object.(*v1beta1.TemporalClusterClient).Status.SecretRef.Name != "" }) return wait.For(cond, wait.WithTimeout(time.Minute*10)) } diff --git a/webhooks/temporalcluster_webhook.go b/webhooks/temporalcluster_webhook.go index 55b13dd1..4b47f10e 100644 --- a/webhooks/temporalcluster_webhook.go +++ b/webhooks/temporalcluster_webhook.go @@ -259,7 +259,7 @@ func (w *TemporalClusterWebhook) validateCluster(cluster *v1beta1.TemporalCluste } // Check for visibility store depreciations introduced in >= 1.21, that will be removed in >=1.23 - if cluster.Spec.Version.GreaterOrEqual(version.V1_21_0) { + if cluster.Spec.Version.GreaterOrEqual(version.V1_21_0) && cluster.Spec.Version.LessThan(version.V1_24_0) { if cluster.Spec.Persistence.AdvancedVisibilityStore != nil { warns = append(warns, "Starting from temporal >= 1.21 standard visibility becomes advanced visibility. Advanced visibility configuration is now moved to standard visibility. Please only use visibility datastore configuration. Advanced visibility store usage will be forbidden by the operator for clusters >= 1.23.", @@ -282,6 +282,23 @@ func (w *TemporalClusterWebhook) validateCluster(cluster *v1beta1.TemporalCluste } } + // Check for >= 1.24.0 advanced visibility store deprecation. + if cluster.Spec.Version.GreaterOrEqual(version.V1_24_0) { + if cluster.Spec.Persistence.AdvancedVisibilityStore != nil { + errs = append(errs, field.Forbidden( + field.NewPath("spec", "persistence", "advancedVisibilityStore"), + "Starting from temporal >= 1.24 standard visibility becomes advanced visibility. Advanced visibility configuration is now moved to standard visibility. Please only use visibility datastore configuration.", + )) + } + + if cluster.Spec.Persistence.VisibilityStore != nil && cluster.Spec.Persistence.VisibilityStore.Cassandra != nil { + errs = append(errs, field.Forbidden( + field.NewPath("spec", "persistence", "visibilityStore", "cassandra"), + "Support for Cassandra as a Visibility database has been removed with Temporal Server v1.24.", + )) + } + } + // Check for per unit histogram boundaries if metrics is enabled if cluster.Spec.Metrics.IsEnabled() && cluster.Spec.Metrics.PerUnitHistogramBoundaries != nil { p := cluster.Spec.Metrics.PerUnitHistogramBoundaries diff --git a/webhooks/temporalcluster_webhook_test.go b/webhooks/temporalcluster_webhook_test.go index 26e37fc6..4ccfec85 100644 --- a/webhooks/temporalcluster_webhook_test.go +++ b/webhooks/temporalcluster_webhook_test.go @@ -250,6 +250,58 @@ func TestValidateCreate(t *testing.T) { }, expectedErr: "TemporalCluster.temporal.io \"fake\" is invalid: spec.persistence.advancedVisibilityStore.elasticsearch.version: Forbidden: temporal cluster version >= 1.18.0 doesn't support ElasticSearch v6", }, + "error with advanced visibility store used in >= 1.24.0": { + object: &v1beta1.TemporalCluster{ + TypeMeta: v1beta1.TemporalClusterTypeMeta, + ObjectMeta: metav1.ObjectMeta{ + Name: "fake", + }, + Spec: v1beta1.TemporalClusterSpec{ + Version: version.MustNewVersionFromString("1.24.2"), + Persistence: v1beta1.TemporalPersistenceSpec{ + AdvancedVisibilityStore: &v1beta1.DatastoreSpec{ + Elasticsearch: &v1beta1.ElasticsearchSpec{ + Version: "v7", + }, + }, + }, + }, + }, + wh: &webhooks.TemporalClusterWebhook{ + AvailableAPIs: &discovery.AvailableAPIs{ + Istio: false, + CertManager: false, + PrometheusOperator: false, + }, + }, + expectedErr: "TemporalCluster.temporal.io \"fake\" is invalid: spec.persistence.advancedVisibilityStore: Forbidden: Starting from temporal >= 1.24 standard visibility becomes advanced visibility. Advanced visibility configuration is now moved to standard visibility. Please only use visibility datastore configuration.", + }, + "error with cassandra used as advanced visibility store in >= 1.24.0": { + object: &v1beta1.TemporalCluster{ + TypeMeta: v1beta1.TemporalClusterTypeMeta, + ObjectMeta: metav1.ObjectMeta{ + Name: "fake", + }, + Spec: v1beta1.TemporalClusterSpec{ + Version: version.MustNewVersionFromString("1.24.2"), + Persistence: v1beta1.TemporalPersistenceSpec{ + VisibilityStore: &v1beta1.DatastoreSpec{ + Cassandra: &v1beta1.CassandraSpec{ + Hosts: []string{"fake"}, + }, + }, + }, + }, + }, + wh: &webhooks.TemporalClusterWebhook{ + AvailableAPIs: &discovery.AvailableAPIs{ + Istio: false, + CertManager: false, + PrometheusOperator: false, + }, + }, + expectedErr: "TemporalCluster.temporal.io \"fake\" is invalid: spec.persistence.visibilityStore.cassandra: Forbidden: Support for Cassandra as a Visibility database has been removed with Temporal Server v1.24.", + }, } for name, test := range tests {