From 985f0e55f25ece5133564187d6853356b4ceaf5f Mon Sep 17 00:00:00 2001 From: kpango Date: Mon, 23 Sep 2024 16:16:28 +0900 Subject: [PATCH] Refctor for release v1.7.14 --- .gitfiles | 14 + .github/ISSUE_TEMPLATE/bug_report.md | 6 +- .../ISSUE_TEMPLATE/security_issue_report.md | 6 +- .github/PULL_REQUEST_TEMPLATE.md | 10 +- Makefile | 37 +- .../v1/agent/sidecar/sidecar_vtproto.pb.go | 2 +- apis/grpc/v1/payload/payload.pb.go | 1 + .../v1/rpc/errdetails/error_details.pb.go | 1 + charts/vald/README.md | 14 +- charts/vald/templates/_helpers.tpl | 1 + charts/vald/values.yaml | 12 + dockers/agent/core/agent/Dockerfile | 2 +- docs/tutorial/get-started-with-faiss-agent.md | 2 +- docs/tutorial/get-started.md | 2 +- docs/tutorial/vald-agent-standalone-on-k8s.md | 2 +- docs/user-guides/client-api-config.md | 10 +- docs/user-guides/filtering-configuration.md | 2 +- example/client/agent/main.go | 2 +- example/client/go.mod | 6 +- example/client/go.sum | 4 +- example/client/main.go | 2 +- example/client/mirror/main.go | 2 +- go.mod | 90 ++-- go.sum | 128 ++--- hack/docker/gen/main.go | 2 +- internal/net/grpc/client.go | 2 +- internal/net/grpc/errdetails/errdetails.go | 58 +- .../interceptor/server/logging/accesslog.go | 35 +- internal/net/grpc/pool/pool.go | 11 +- internal/net/grpc/pool/pool_bench_test.go | 4 +- internal/net/grpc/status/status.go | 508 ++++++++++++++++-- internal/observability/exporter/otlp/otlp.go | 2 +- internal/observability/trace/status.go | 2 +- k8s/gateway/gateway/lb/deployment.yaml | 2 + k8s/gateway/gateway/mirror/deployment.yaml | 1 + k8s/index/job/correction/cronjob.yaml | 2 + k8s/index/job/creation/cronjob.yaml | 2 + k8s/index/job/save/cronjob.yaml | 2 + k8s/index/operator/configmap.yaml | 2 +- k8s/index/operator/deployment.yaml | 2 +- k8s/manager/index/deployment.yaml | 2 + k8s/metrics/loki/loki.yaml | 2 +- k8s/metrics/loki/promtail.yaml | 2 +- k8s/metrics/profefe/cronjob.yaml | 2 +- k8s/metrics/pyroscope/base/deployment.yaml | 2 +- k8s/metrics/tempo/tempo.yaml | 4 +- rust/Cargo.lock | 118 ++-- tests/e2e/operation/multi.go | 16 +- tests/e2e/operation/operation.go | 19 +- tests/e2e/operation/stream.go | 26 +- tests/e2e/performance/max_vector_dim_test.go | 5 +- versions/CHAOS_MESH_VERSION | 2 +- versions/DOCKER_VERSION | 2 +- versions/HELM_VERSION | 2 +- versions/K3S_VERSION | 2 +- versions/KUBECTL_VERSION | 2 +- versions/OPERATOR_SDK_VERSION | 2 +- versions/PROMETHEUS_STACK_VERSION | 2 +- versions/PROTOBUF_VERSION | 2 +- versions/REVIEWDOG_VERSION | 2 +- versions/actions/ACTIONS_SETUP_NODE | 2 +- versions/actions/GITHUB_CODEQL_ACTION_ANALYZE | 2 +- .../actions/GITHUB_CODEQL_ACTION_AUTOBUILD | 2 +- versions/actions/GITHUB_CODEQL_ACTION_INIT | 2 +- .../actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF | 2 +- versions/actions/GITHUB_ISSUE_METRICS | 2 +- .../actions/PETER_EVANS_CREATE_PULL_REQUEST | 2 +- 67 files changed, 873 insertions(+), 352 deletions(-) diff --git a/.gitfiles b/.gitfiles index 2dd023e7da..91d38e7d07 100644 --- a/.gitfiles +++ b/.gitfiles @@ -167,6 +167,8 @@ apis/grpc/v1/filter/egress/egress_filter.pb.go apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go apis/grpc/v1/filter/ingress/ingress_filter.pb.go apis/grpc/v1/filter/ingress/ingress_filter_vtproto.pb.go +apis/grpc/v1/meta/meta.pb.go +apis/grpc/v1/meta/meta_vtproto.pb.go apis/grpc/v1/mirror/mirror.go apis/grpc/v1/mirror/mirror.pb.go apis/grpc/v1/mirror/mirror_vtproto.pb.go @@ -203,6 +205,7 @@ apis/proto/v1/agent/sidecar/sidecar.proto apis/proto/v1/discoverer/discoverer.proto apis/proto/v1/filter/egress/egress_filter.proto apis/proto/v1/filter/ingress/ingress_filter.proto +apis/proto/v1/meta/meta.proto apis/proto/v1/mirror/mirror.proto apis/proto/v1/payload/payload.proto apis/proto/v1/rpc/errdetails/error_details.proto @@ -220,6 +223,7 @@ apis/swagger/v1/agent/sidecar/sidecar.swagger.json apis/swagger/v1/discoverer/discoverer.swagger.json apis/swagger/v1/filter/egress/egress_filter.swagger.json apis/swagger/v1/filter/ingress/ingress_filter.swagger.json +apis/swagger/v1/meta/meta.swagger.json apis/swagger/v1/mirror/mirror.swagger.json apis/swagger/v1/payload/payload.swagger.json apis/swagger/v1/rpc/errdetails/error_details.swagger.json @@ -882,6 +886,9 @@ internal/core/algorithm/ngt/ngt_bench_test.go internal/core/algorithm/ngt/ngt_test.go internal/core/algorithm/ngt/option.go internal/core/algorithm/ngt/option_test.go +internal/core/algorithm/usearch/option.go +internal/core/algorithm/usearch/usearch.go +internal/core/algorithm/usearch/usearch_test.go internal/db/kvs/bbolt/bbolt.go internal/db/kvs/bbolt/bbolt_test.go internal/db/kvs/bbolt/option.go @@ -1024,6 +1031,7 @@ internal/errors/storage.go internal/errors/tls.go internal/errors/unit.go internal/errors/unit_test.go +internal/errors/usearch.go internal/errors/vald.go internal/errors/vald_test.go internal/errors/vqueue.go @@ -1911,6 +1919,10 @@ rust/bin/agent/src/handler/search.rs rust/bin/agent/src/handler/update.rs rust/bin/agent/src/handler/upsert.rs rust/bin/agent/src/main.rs +rust/bin/meta/Cargo.toml +rust/bin/meta/src/handler.rs +rust/bin/meta/src/handler/meta.rs +rust/bin/meta/src/main.rs rust/libs/algorithm/Cargo.toml rust/libs/algorithm/src/lib.rs rust/libs/algorithms/faiss/Cargo.toml @@ -1931,6 +1943,7 @@ rust/libs/proto/src/discoverer.v1.tonic.rs rust/libs/proto/src/filter.egress.v1.tonic.rs rust/libs/proto/src/filter.ingress.v1.tonic.rs rust/libs/proto/src/lib.rs +rust/libs/proto/src/meta.v1.tonic.rs rust/libs/proto/src/mirror.v1.tonic.rs rust/libs/proto/src/payload.v1.rs rust/libs/proto/src/rpc.v1.rs @@ -1986,6 +1999,7 @@ versions/PROTOBUF_VERSION versions/REVIEWDOG_VERSION versions/RUST_VERSION versions/TELEPRESENCE_VERSION +versions/USEARCH_VERSION versions/VALD_VERSION versions/YQ_VERSION versions/ZLIB_VERSION diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 58d750ba12..55143b8fda 100755 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -25,8 +25,8 @@ assignees: "" - Vald Version: v1.7.13 - Go Version: v1.23.1 - Rust Version: v1.81.0 -- Docker Version: v27.2.1 -- Kubernetes Version: v1.31.0 -- Helm Version: v3.16.0 +- Docker Version: v27.3.1 +- Kubernetes Version: v1.31.1 +- Helm Version: v3.16.1 - NGT Version: v2.2.4 - Faiss Version: v1.8.0 diff --git a/.github/ISSUE_TEMPLATE/security_issue_report.md b/.github/ISSUE_TEMPLATE/security_issue_report.md index 94536a7445..8e7fc2d081 100644 --- a/.github/ISSUE_TEMPLATE/security_issue_report.md +++ b/.github/ISSUE_TEMPLATE/security_issue_report.md @@ -19,8 +19,8 @@ assignees: "" - Vald Version: v1.7.13 - Go Version: v1.23.1 - Rust Version: v1.81.0 -- Docker Version: v27.2.1 -- Kubernetes Version: v1.31.0 -- Helm Version: v3.16.0 +- Docker Version: v27.3.1 +- Kubernetes Version: v1.31.1 +- Helm Version: v3.16.1 - NGT Version: v2.2.4 - Faiss Version: v1.8.0 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cc053c521a..a534bf495f 100755 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ ### Description - + ### Related Issue @@ -18,9 +18,9 @@ - Vald Version: v1.7.13 - Go Version: v1.23.1 - Rust Version: v1.81.0 -- Docker Version: v27.2.1 -- Kubernetes Version: v1.31.0 -- Helm Version: v3.16.0 +- Docker Version: v27.3.1 +- Kubernetes Version: v1.31.1 +- Helm Version: v3.16.1 - NGT Version: v2.2.4 - Faiss Version: v1.8.0 @@ -34,4 +34,4 @@ ### Special notes for your reviewer - + diff --git a/Makefile b/Makefile index e55f5e975e..a4aacdb218 100644 --- a/Makefile +++ b/Makefile @@ -665,7 +665,7 @@ $(LIB_PATH)/libfaiss.a: -DBUILD_STATIC_EXECS=ON \ -DBUILD_TESTING=OFF \ -DFAISS_ENABLE_PYTHON=OFF \ - -DFAISS_ENABLE_GPU=OFF \ + -DFAISS_ENABLE_GPU=OFF \ -DBLA_VENDOR=OpenBLAS \ -DCMAKE_C_FLAGS="$(LDFLAGS)" \ -DCMAKE_EXE_LINKER_FLAGS="$(FAISS_LDFLAGS)" \ @@ -679,19 +679,29 @@ $(LIB_PATH)/libfaiss.a: .PHONY: usearch/install ## install usearch -usearch/install: -ifeq ($(OS),linux) - curl -sSL https://github.com/unum-cloud/usearch/releases/download/v$(USEARCH_VERSION)/usearch_$(OS)_$(GOARCH)_$(USEARCH_VERSION).deb -o usearch_$(OS)_$(USEARCH_VERSION).deb - dpkg -i usearch_$(OS)_$(USEARCH_VERSION).deb - rm usearch_$(OS)_$(USEARCH_VERSION).deb - ldconfig -else ifeq ($(OS),macos) - curl -sSL https://github.com/unum-cloud/usearch/releases/download/v$(USEARCH_VERSION)/usearch_macos_$(GOARCH)_$(USEARCH_VERSION).zip -o usearch_macos_$(OS)_$(USEARCH_VERSION).zip - unzip usearch_macos_$(OS)_$(USEARCH_VERSION).zip - sudo mv libusearch_c.dylib /usr/local/lib && sudo mv usearch.h /usr/local/include - rm -rf usearch_macos_$(OS)_$(USEARCH_VERSION).zip +usearch/install: + git clone --depth 1 --recursive --branch v$(USEARCH_VERSION) https://github.com/unum-cloud/usearch $(TEMP_DIR)/usearch-$(USEARCH_VERSION) + cd $(TEMP_DIR)/usearch-$(USEARCH_VERSION) && \ + cmake -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TESTING=OFF \ + -DUSEARCH_BUILD_LIB_C=ON \ + -DUSEARCH_USE_FP16LIB=ON \ + -DUSEARCH_USE_OPENMP=ON \ + -DUSEARCH_USE_SIMSIMD=ON \ + -DUSEARCH_USE_JEMALLOC=ON \ + -DCMAKE_C_FLAGS="$(CFLAGS)" \ + -DCMAKE_CXX_FLAGS="$(CXXFLAGS)" \ + -DCMAKE_INSTALL_PREFIX=$(USR_LOCAL) \ + -DCMAKE_INSTALL_LIBDIR=$(LIB_PATH) \ + -B $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build $(TEMP_DIR)/usearch-$(USEARCH_VERSION) + cmake --build $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build -j$(CORES) + cmake --install $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build --prefix=$(USR_LOCAL) + cd $(ROOTDIR) + cp $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build/libusearch_static_c.a $(LIB_PATH)/libusearch.a + cp $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build/libusearch_c.so $(LIB_PATH)/libusearch.so + rm -rf $(TEMP_DIR)/usearch-$(USEARCH_VERSION) ldconfig -endif .PHONY: cmake/install ## install CMAKE @@ -710,7 +720,6 @@ cmake/install: cd $(ROOTDIR) rm -rf $(TEMP_DIR)/CMAKE-$(CMAKE_VERSION) ldconfig - # -DCMAKE_USE_OPENSSL=OFF .PHONY: lint ## run lints diff --git a/apis/grpc/v1/agent/sidecar/sidecar_vtproto.pb.go b/apis/grpc/v1/agent/sidecar/sidecar_vtproto.pb.go index f60d8f002f..3e7fb5da06 100644 --- a/apis/grpc/v1/agent/sidecar/sidecar_vtproto.pb.go +++ b/apis/grpc/v1/agent/sidecar/sidecar_vtproto.pb.go @@ -36,7 +36,7 @@ const _ = grpc.SupportPackageIsVersion7 // SidecarClient is the client API for Sidecar service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type SidecarClient interface{} +type SidecarClient any type sidecarClient struct { cc grpc.ClientConnInterface diff --git a/apis/grpc/v1/payload/payload.pb.go b/apis/grpc/v1/payload/payload.pb.go index bf541cb5cd..6ea1603db4 100644 --- a/apis/grpc/v1/payload/payload.pb.go +++ b/apis/grpc/v1/payload/payload.pb.go @@ -6960,6 +6960,7 @@ var ( (*anypb.Any)(nil), // 105: google.protobuf.Any } ) + var file_v1_payload_payload_proto_depIdxs = []int32{ 22, // 0: payload.v1.Search.Request.config:type_name -> payload.v1.Search.Config 16, // 1: payload.v1.Search.MultiRequest.requests:type_name -> payload.v1.Search.Request diff --git a/apis/grpc/v1/rpc/errdetails/error_details.pb.go b/apis/grpc/v1/rpc/errdetails/error_details.pb.go index 1ca92f9554..ff9e1c42cf 100644 --- a/apis/grpc/v1/rpc/errdetails/error_details.pb.go +++ b/apis/grpc/v1/rpc/errdetails/error_details.pb.go @@ -1108,6 +1108,7 @@ var ( (*durationpb.Duration)(nil), // 15: google.protobuf.Duration } ) + var file_v1_rpc_errdetails_error_details_proto_depIdxs = []int32{ 10, // 0: rpc.v1.ErrorInfo.metadata:type_name -> rpc.v1.ErrorInfo.MetadataEntry 15, // 1: rpc.v1.RetryInfo.retry_delay:type_name -> google.protobuf.Duration diff --git a/charts/vald/README.md b/charts/vald/README.md index 3f574e605a..377f895457 100644 --- a/charts/vald/README.md +++ b/charts/vald/README.md @@ -696,7 +696,7 @@ Run the following command to install the chart, | gateway.filter.ingress.host | string | `"filter.gateway.vald.vdaas.org"` | ingress hostname | | gateway.filter.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | | gateway.filter.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | -| gateway.filter.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | +| gateway.filter.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | | gateway.filter.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | | gateway.filter.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | | gateway.filter.logging | object | `{}` | logging config (overrides defaults.logging) | @@ -758,7 +758,7 @@ Run the following command to install the chart, | gateway.lb.ingress.host | string | `"lb.gateway.vald.vdaas.org"` | ingress hostname | | gateway.lb.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | | gateway.lb.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | -| gateway.lb.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"}]` | init containers | +| gateway.lb.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"},{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"}]` | init containers | | gateway.lb.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | | gateway.lb.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | | gateway.lb.logging | object | `{}` | logging config (overrides defaults.logging) | @@ -845,7 +845,7 @@ Run the following command to install the chart, | gateway.mirror.ingress.host | string | `"mirror.gateway.vald.vdaas.org"` | ingress hostname | | gateway.mirror.ingress.pathType | string | `"ImplementationSpecific"` | gateway ingress pathType | | gateway.mirror.ingress.servicePort | string | `"grpc"` | service port to be exposed by ingress | -| gateway.mirror.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | +| gateway.mirror.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-gateway-lb","sleepDuration":2,"target":"gateway-lb","type":"wait-for"}]` | init containers | | gateway.mirror.internalTrafficPolicy | string | `""` | internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | | gateway.mirror.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | | gateway.mirror.logging | object | `{}` | logging config (overrides defaults.logging) | @@ -896,7 +896,7 @@ Run the following command to install the chart, | manager.index.corrector.image.pullPolicy | string | `"Always"` | | | manager.index.corrector.image.repository | string | `"vdaas/vald-index-correction"` | image repository | | manager.index.corrector.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| manager.index.corrector.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | +| manager.index.corrector.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | | manager.index.corrector.kvs_background_compaction_interval | string | `"5s"` | interval of checked id list kvs compaction | | manager.index.corrector.kvs_background_sync_interval | string | `"5s"` | interval of checked id list kvs sync | | manager.index.corrector.name | string | `"vald-index-correction"` | name of index correction job | @@ -920,7 +920,7 @@ Run the following command to install the chart, | manager.index.creator.image.pullPolicy | string | `"Always"` | | | manager.index.creator.image.repository | string | `"vdaas/vald-index-creation"` | image repository | | manager.index.creator.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| manager.index.creator.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | +| manager.index.creator.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | | manager.index.creator.name | string | `"vald-index-creation"` | name of index creation job | | manager.index.creator.node_name | string | `""` | node name | | manager.index.creator.observability | object | `{"otlp":{"attribute":{"service_name":"vald-index-creation"}}}` | observability config (overrides defaults.observability) | @@ -949,7 +949,7 @@ Run the following command to install the chart, | manager.index.indexer.discoverer.client | object | `{}` | gRPC client for discoverer (overrides defaults.grpc.client) | | manager.index.indexer.discoverer.duration | string | `"500ms"` | refresh duration to discover | | manager.index.indexer.node_name | string | `""` | node name | -| manager.index.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | +| manager.index.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | | manager.index.kind | string | `"Deployment"` | deployment kind: Deployment or DaemonSet | | manager.index.logging | object | `{}` | logging config (overrides defaults.logging) | | manager.index.maxUnavailable | string | `"50%"` | maximum number of unavailable replicas | @@ -1038,7 +1038,7 @@ Run the following command to install the chart, | manager.index.saver.image.pullPolicy | string | `"Always"` | | | manager.index.saver.image.repository | string | `"vdaas/vald-index-save"` | image repository | | manager.index.saver.image.tag | string | `""` | image tag (overrides defaults.image.tag) | -| manager.index.saver.initContainers | list | `[{"image":"busybox:stable","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | +| manager.index.saver.initContainers | list | `[{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-agent","sleepDuration":2,"target":"agent","type":"wait-for"},{"image":"busybox:stable","imagePullPolicy":"Always","name":"wait-for-discoverer","sleepDuration":2,"target":"discoverer","type":"wait-for"}]` | init containers | | manager.index.saver.name | string | `"vald-index-save"` | name of index save job | | manager.index.saver.node_name | string | `""` | node name | | manager.index.saver.observability | object | `{"otlp":{"attribute":{"service_name":"vald-index-save"}}}` | observability config (overrides defaults.observability) | diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index 2edc19e03c..6de2c34bb5 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -699,6 +699,7 @@ initContainers {{- if .type }} - name: {{ .name }} image: {{ .image }} + imagePullPolicy: {{ .imagePullPolicy }} {{- if eq .type "wait-for" }} command: - /bin/sh diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 02f2bb634a..8df795ee67 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -1075,11 +1075,13 @@ gateway: name: wait-for-discoverer target: discoverer image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 - type: wait-for name: wait-for-agent target: agent image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "gateway.lb.env", "type": "array", "items": {"type": "object"}, "anchor": "env"} # gateway.lb.env -- environment variables @@ -1357,6 +1359,7 @@ gateway: name: wait-for-gateway-lb target: gateway-lb image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "gateway.filter.env", "type": "array", "items": {"type": "object"}, "anchor": "env"} # gateway.filter.env -- environment variables @@ -1644,6 +1647,7 @@ gateway: name: wait-for-gateway-lb target: gateway-lb image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "gateway.mirror.env", "type": "array", "items": {"type": "object"}, "anchor": "env"} # gateway.mirror.env -- environment variables @@ -3133,11 +3137,13 @@ manager: name: wait-for-agent target: agent image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 - type: wait-for name: wait-for-discoverer target: discoverer image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "manager.index.env", "alias": "env"} # manager.index.env -- environment variables @@ -3293,11 +3299,13 @@ manager: name: wait-for-agent target: agent image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 - type: wait-for name: wait-for-discoverer target: discoverer image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "manager.index.corrector.env", "alias": "env"} # manager.index.corrector.env -- environment variables @@ -3403,11 +3411,13 @@ manager: name: wait-for-agent target: agent image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 - type: wait-for name: wait-for-discoverer target: discoverer image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "manager.index.creator.env", "alias": "env"} # manager.index.creator.env -- environment variables @@ -3510,11 +3520,13 @@ manager: name: wait-for-agent target: agent image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 - type: wait-for name: wait-for-discoverer target: discoverer image: busybox:stable + imagePullPolicy: Always sleepDuration: 2 # @schema {"name": "manager.index.saver.env", "alias": "env"} # manager.index.saver.env -- environment variables diff --git a/dockers/agent/core/agent/Dockerfile b/dockers/agent/core/agent/Dockerfile index f0e82341f3..9f8e80f25f 100644 --- a/dockers/agent/core/agent/Dockerfile +++ b/dockers/agent/core/agent/Dockerfile @@ -39,8 +39,8 @@ ENV REPO=vald ENV RUST_HOME=/usr/local/lib/rust ENV TZ=Etc/UTC ENV USER=root -ENV CARGO_HOME=${RUST_HOME}/cargo ENV RUSTUP_HOME=${RUST_HOME}/rustup +ENV CARGO_HOME=${RUST_HOME}/cargo ENV PATH=${CARGO_HOME}/bin:${RUSTUP_HOME}/bin:/usr/local/bin:${PATH} WORKDIR ${HOME}/rust/src/github.com/${ORG}/${REPO} SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/docs/tutorial/get-started-with-faiss-agent.md b/docs/tutorial/get-started-with-faiss-agent.md index 2abad816da..e47e3b1659 100644 --- a/docs/tutorial/get-started-with-faiss-agent.md +++ b/docs/tutorial/get-started-with-faiss-agent.md @@ -278,7 +278,7 @@ If you are interested, please refer to [SDKs](../user-guides/sdks.md).
```go ctx := context.Background() - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithInsecure()) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithInsecure()) if err != nil { glg.Fatal(err) } diff --git a/docs/tutorial/get-started.md b/docs/tutorial/get-started.md index 5f14077cff..203379f444 100644 --- a/docs/tutorial/get-started.md +++ b/docs/tutorial/get-started.md @@ -333,7 +333,7 @@ If you are interested, please refer to [SDKs](../user-guides/sdks.md).
```go ctx := context.Background() - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { glg.Fatal(err) } diff --git a/docs/tutorial/vald-agent-standalone-on-k8s.md b/docs/tutorial/vald-agent-standalone-on-k8s.md index 669e03f285..13238002f4 100644 --- a/docs/tutorial/vald-agent-standalone-on-k8s.md +++ b/docs/tutorial/vald-agent-standalone-on-k8s.md @@ -236,7 +236,7 @@ This chapter uses [NGT](https://github.com/yahoojapan/ngt) as Vald Agent to perf ```go ctx := context.Background() - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { glg.Fatal(err) } diff --git a/docs/user-guides/client-api-config.md b/docs/user-guides/client-api-config.md index 578910b77f..3abac4d34d 100644 --- a/docs/user-guides/client-api-config.md +++ b/docs/user-guides/client-api-config.md @@ -46,7 +46,7 @@ func main() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() target := "localhost:8080" - conn, err := grpc.DialContext(ctx, target) + conn, err := grpc.NewClient(target) if err != nil { panic(err) } @@ -162,7 +162,7 @@ func example() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() target := "localhost:8080" - conn, err := grpc.DialContext(ctx, target) + conn, err := grpc.NewClient(target) if err != nil { panic(err) } @@ -286,7 +286,7 @@ func example() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() target := "localhost:8080" - conn, err := grpc.DialContext(ctx, target) + conn, err := grpc.NewClient(target) if err != nil { panic(err) } @@ -470,7 +470,7 @@ func main() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() target := "localhost:8080" - conn, err := grpc.DialContext(ctx, target) + conn, err := grpc.NewClient(target) if err != nil { panic(err) } @@ -653,7 +653,7 @@ func example() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() target := "localhost:8080" - conn, err := grpc.DialContext(ctx, target) + conn, err := grpc.NewClient(target) if err != nil { panic(err) } diff --git a/docs/user-guides/filtering-configuration.md b/docs/user-guides/filtering-configuration.md index b2d864b093..05f7673bfc 100644 --- a/docs/user-guides/filtering-configuration.md +++ b/docs/user-guides/filtering-configuration.md @@ -153,7 +153,7 @@ func main() { // connect to the Vald cluster ctx := context.Background() - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithInsecure()) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithInsecure()) if err != nil { log.Error(err) return diff --git a/example/client/agent/main.go b/example/client/agent/main.go index 77cf7eee48..d3eaa9d9bc 100644 --- a/example/client/agent/main.go +++ b/example/client/agent/main.go @@ -67,7 +67,7 @@ func main() { ctx := context.Background() // Create a Vald Agent client for connecting to the Vald cluster. - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { glg.Fatal(err) } diff --git a/example/client/go.mod b/example/client/go.mod index 198e984084..89d400e897 100644 --- a/example/client/go.mod +++ b/example/client/go.mod @@ -14,7 +14,7 @@ replace ( google.golang.org/genproto => google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 google.golang.org/genproto/googleapis/api => google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 google.golang.org/genproto/googleapis/rpc => google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 - google.golang.org/grpc => google.golang.org/grpc v1.66.2 + google.golang.org/grpc => google.golang.org/grpc v1.67.0 google.golang.org/protobuf => google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 @@ -33,10 +33,10 @@ require ( github.com/goccy/go-json v0.10.2 // indirect github.com/kpango/fastime v1.1.9 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.28.0 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/text v0.18.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240827150818-7e3bb234dfed // indirect google.golang.org/protobuf v1.34.2 // indirect ) diff --git a/example/client/go.sum b/example/client/go.sum index 8fd1e3660a..61bfcf517b 100644 --- a/example/client/go.sum +++ b/example/client/go.sum @@ -34,7 +34,7 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1: 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/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/example/client/main.go b/example/client/main.go index c323a1e3ba..f8a051d86e 100644 --- a/example/client/main.go +++ b/example/client/main.go @@ -66,7 +66,7 @@ func main() { ctx := context.Background() // Create a Vald client for connecting to the Vald cluster. - conn, err := grpc.DialContext(ctx, grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(grpcServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { glg.Fatal(err) } diff --git a/example/client/mirror/main.go b/example/client/mirror/main.go index 8e8f4b074e..3bd0318166 100644 --- a/example/client/mirror/main.go +++ b/example/client/mirror/main.go @@ -68,7 +68,7 @@ func main() { // Creates Vald clients for connecting to Vald clusters. clients := make([]vald.Client, 0, len(grpcServerAddrs)) for _, addr := range grpcServerAddrs { - conn, err := grpc.DialContext(ctx, addr, grpc.WithInsecure()) + conn, err := grpc.NewClient(addr, grpc.WithInsecure()) if err != nil { glg.Fatal(err) } diff --git a/go.mod b/go.mod index 1821334bac..f003e0e793 100644 --- a/go.mod +++ b/go.mod @@ -4,17 +4,17 @@ go 1.23.1 replace ( cloud.google.com/go => cloud.google.com/go v0.115.1 - cloud.google.com/go/bigquery => cloud.google.com/go/bigquery v1.62.0 - cloud.google.com/go/compute => cloud.google.com/go/compute v1.28.0 + cloud.google.com/go/bigquery => cloud.google.com/go/bigquery v1.63.0 + cloud.google.com/go/compute => cloud.google.com/go/compute v1.28.1 cloud.google.com/go/datastore => cloud.google.com/go/datastore v1.19.0 cloud.google.com/go/firestore => cloud.google.com/go/firestore v1.17.0 - cloud.google.com/go/iam => cloud.google.com/go/iam v1.2.0 - cloud.google.com/go/kms => cloud.google.com/go/kms v1.19.0 - cloud.google.com/go/monitoring => cloud.google.com/go/monitoring v1.21.0 + cloud.google.com/go/iam => cloud.google.com/go/iam v1.2.1 + cloud.google.com/go/kms => cloud.google.com/go/kms v1.20.0 + cloud.google.com/go/monitoring => cloud.google.com/go/monitoring v1.21.1 cloud.google.com/go/pubsub => cloud.google.com/go/pubsub v1.43.0 - cloud.google.com/go/secretmanager => cloud.google.com/go/secretmanager v1.14.0 + cloud.google.com/go/secretmanager => cloud.google.com/go/secretmanager v1.14.1 cloud.google.com/go/storage => cloud.google.com/go/storage v1.43.0 - cloud.google.com/go/trace => cloud.google.com/go/trace v1.11.0 + cloud.google.com/go/trace => cloud.google.com/go/trace v1.11.1 code.cloudfoundry.org/bytefmt => code.cloudfoundry.org/bytefmt v0.10.0 contrib.go.opencensus.io/exporter/aws => contrib.go.opencensus.io/exporter/aws v0.0.0-20230502192102-15967c811cec contrib.go.opencensus.io/exporter/prometheus => contrib.go.opencensus.io/exporter/prometheus v0.4.2 @@ -38,35 +38,35 @@ replace ( github.com/DATA-DOG/go-sqlmock => github.com/DATA-DOG/go-sqlmock v1.5.2 github.com/GoogleCloudPlatform/cloudsql-proxy => github.com/GoogleCloudPlatform/cloudsql-proxy v1.37.0 github.com/Masterminds/semver/v3 => github.com/Masterminds/semver/v3 v3.3.0 - github.com/ajstarks/deck => github.com/ajstarks/deck v0.0.0-20240828115917-88fc45aa28b1 - github.com/ajstarks/deck/generate => github.com/ajstarks/deck/generate v0.0.0-20240828115917-88fc45aa28b1 + github.com/ajstarks/deck => github.com/ajstarks/deck v0.0.0-20240918141114-8d365813662d + github.com/ajstarks/deck/generate => github.com/ajstarks/deck/generate v0.0.0-20240918141114-8d365813662d github.com/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b github.com/akrylysov/pogreb => github.com/akrylysov/pogreb v0.10.2 github.com/antihax/optional => github.com/antihax/optional v1.0.0 github.com/armon/go-socks5 => github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.55.5 - github.com/aws/aws-sdk-go-v2 => github.com/aws/aws-sdk-go-v2 v1.30.5 - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream => github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 - github.com/aws/aws-sdk-go-v2/config => github.com/aws/aws-sdk-go-v2/config v1.27.33 - github.com/aws/aws-sdk-go-v2/credentials => github.com/aws/aws-sdk-go-v2/credentials v1.17.32 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds => github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 - github.com/aws/aws-sdk-go-v2/feature/s3/manager => github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.18 - github.com/aws/aws-sdk-go-v2/internal/configsources => github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 + github.com/aws/aws-sdk-go-v2 => github.com/aws/aws-sdk-go-v2 v1.31.0 + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream => github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 + github.com/aws/aws-sdk-go-v2/config => github.com/aws/aws-sdk-go-v2/config v1.27.36 + github.com/aws/aws-sdk-go-v2/credentials => github.com/aws/aws-sdk-go-v2/credentials v1.17.34 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds => github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 + github.com/aws/aws-sdk-go-v2/feature/s3/manager => github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.22 + github.com/aws/aws-sdk-go-v2/internal/configsources => github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 github.com/aws/aws-sdk-go-v2/internal/ini => github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding => github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 - github.com/aws/aws-sdk-go-v2/service/internal/checksum => github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19 - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url => github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 - github.com/aws/aws-sdk-go-v2/service/internal/s3shared => github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17 - github.com/aws/aws-sdk-go-v2/service/kms => github.com/aws/aws-sdk-go-v2/service/kms v1.35.7 - github.com/aws/aws-sdk-go-v2/service/s3 => github.com/aws/aws-sdk-go-v2/service/s3 v1.61.2 - github.com/aws/aws-sdk-go-v2/service/secretsmanager => github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.32.8 - github.com/aws/aws-sdk-go-v2/service/sns => github.com/aws/aws-sdk-go-v2/service/sns v1.31.7 - github.com/aws/aws-sdk-go-v2/service/sqs => github.com/aws/aws-sdk-go-v2/service/sqs v1.34.8 - github.com/aws/aws-sdk-go-v2/service/ssm => github.com/aws/aws-sdk-go-v2/service/ssm v1.52.8 - github.com/aws/aws-sdk-go-v2/service/sso => github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 - github.com/aws/aws-sdk-go-v2/service/sts => github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 - github.com/aws/smithy-go => github.com/aws/smithy-go v1.20.4 + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding => github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 + github.com/aws/aws-sdk-go-v2/service/internal/checksum => github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url => github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 + github.com/aws/aws-sdk-go-v2/service/internal/s3shared => github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 + github.com/aws/aws-sdk-go-v2/service/kms => github.com/aws/aws-sdk-go-v2/service/kms v1.36.0 + github.com/aws/aws-sdk-go-v2/service/s3 => github.com/aws/aws-sdk-go-v2/service/s3 v1.63.0 + github.com/aws/aws-sdk-go-v2/service/secretsmanager => github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.0 + github.com/aws/aws-sdk-go-v2/service/sns => github.com/aws/aws-sdk-go-v2/service/sns v1.32.0 + github.com/aws/aws-sdk-go-v2/service/sqs => github.com/aws/aws-sdk-go-v2/service/sqs v1.35.0 + github.com/aws/aws-sdk-go-v2/service/ssm => github.com/aws/aws-sdk-go-v2/service/ssm v1.54.0 + github.com/aws/aws-sdk-go-v2/service/sso => github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 + github.com/aws/aws-sdk-go-v2/service/sts => github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 + github.com/aws/smithy-go => github.com/aws/smithy-go v1.21.0 github.com/benbjohnson/clock => github.com/benbjohnson/clock v1.3.5 github.com/beorn7/perks => github.com/beorn7/perks v1.0.1 github.com/bmizerany/assert => github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 @@ -82,7 +82,7 @@ replace ( github.com/cncf/xds/go => github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 github.com/cockroachdb/apd => github.com/cockroachdb/apd v1.1.0 github.com/coreos/go-systemd/v22 => github.com/coreos/go-systemd/v22 v22.5.0 - github.com/cpuguy83/go-md2man/v2 => github.com/cpuguy83/go-md2man/v2 v2.0.4 + github.com/cpuguy83/go-md2man/v2 => github.com/cpuguy83/go-md2man/v2 v2.0.5 github.com/creack/pty => github.com/creack/pty v1.1.23 github.com/davecgh/go-spew => github.com/davecgh/go-spew v1.1.1 github.com/denisenkom/go-mssqldb => github.com/denisenkom/go-mssqldb v0.12.3 @@ -170,7 +170,7 @@ replace ( github.com/hashicorp/go-uuid => github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-version => github.com/hashicorp/go-version v1.7.0 github.com/iancoleman/strcase => github.com/iancoleman/strcase v0.3.0 - github.com/ianlancetaylor/demangle => github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca + github.com/ianlancetaylor/demangle => github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd github.com/inconshreveable/mousetrap => github.com/inconshreveable/mousetrap v1.1.0 github.com/jackc/chunkreader/v2 => github.com/jackc/chunkreader/v2 v2.0.1 github.com/jackc/pgconn => github.com/jackc/pgconn v1.14.3 @@ -192,11 +192,11 @@ replace ( github.com/jstemmer/go-junit-report => github.com/jstemmer/go-junit-report v1.0.0 github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.7.0 github.com/kisielk/gotool => github.com/kisielk/gotool v1.0.0 - github.com/klauspost/compress => github.com/klauspost/compress v1.17.10-0.20240911134657-51aa0ecb46a9 + github.com/klauspost/compress => github.com/klauspost/compress v1.17.10-0.20240918170325-2a46d6bf5d0f github.com/klauspost/cpuid/v2 => github.com/klauspost/cpuid/v2 v2.2.8 github.com/kpango/fastime => github.com/kpango/fastime v1.1.9 github.com/kpango/fuid => github.com/kpango/fuid v0.0.0-20221203053508-503b5ad89aa1 - github.com/kpango/gache/v2 => github.com/kpango/gache/v2 v2.0.10 + github.com/kpango/gache/v2 => github.com/kpango/gache/v2 v2.0.11 github.com/kpango/glg => github.com/kpango/glg v1.6.15 github.com/kr/fs => github.com/kr/fs v0.1.0 github.com/kr/pretty => github.com/kr/pretty v0.3.1 @@ -237,7 +237,7 @@ replace ( github.com/pkg/sftp => github.com/pkg/sftp v1.13.6 github.com/pmezard/go-difflib => github.com/pmezard/go-difflib v1.0.0 github.com/prashantv/gostub => github.com/prashantv/gostub v1.1.0 - github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.20.3 + github.com/prometheus/client_golang => github.com/prometheus/client_golang v1.20.4 github.com/prometheus/client_model => github.com/prometheus/client_model v0.6.1 github.com/prometheus/common => github.com/prometheus/common v0.59.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.15.1 @@ -314,12 +314,12 @@ replace ( gonum.org/v1/gonum => gonum.org/v1/gonum v0.15.1 gonum.org/v1/hdf5 => gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 gonum.org/v1/plot => gonum.org/v1/plot v0.14.0 - google.golang.org/api => google.golang.org/api v0.197.0 + google.golang.org/api => google.golang.org/api v0.198.0 google.golang.org/appengine => google.golang.org/appengine v1.6.8 google.golang.org/genproto => google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 google.golang.org/genproto/googleapis/api => google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 google.golang.org/genproto/googleapis/rpc => google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 - google.golang.org/grpc => google.golang.org/grpc v1.66.2 + google.golang.org/grpc => google.golang.org/grpc v1.67.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc => google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf => google.golang.org/protobuf v1.34.2 gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c @@ -349,7 +349,7 @@ replace ( ) require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240920164238-5a7b106cbb87.2 cloud.google.com/go/storage v1.43.0 code.cloudfoundry.org/bytefmt v0.0.0-20190710193110-1eb035ffe2b6 github.com/akrylysov/pogreb v0.0.0-00010101000000-000000000000 @@ -408,7 +408,7 @@ require ( gonum.org/v1/plot v0.14.0 google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 - google.golang.org/grpc v1.66.1 + google.golang.org/grpc v1.66.2 google.golang.org/protobuf v1.34.2 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.30.3 @@ -416,17 +416,17 @@ require ( k8s.io/cli-runtime v0.0.0-00010101000000-000000000000 k8s.io/client-go v0.30.3 k8s.io/metrics v0.0.0-00010101000000-000000000000 - k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 + k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 sigs.k8s.io/controller-runtime v0.0.0-00010101000000-000000000000 sigs.k8s.io/yaml v1.4.0 ) require ( cloud.google.com/go v0.115.1 // indirect - cloud.google.com/go/auth v0.9.3 // indirect + cloud.google.com/go/auth v0.9.4 // 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.1 // indirect + cloud.google.com/go/iam v1.2.1 // indirect filippo.io/edwards25519 v1.1.0 // indirect git.sr.ht/~sbinet/gg v0.5.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect @@ -512,9 +512,9 @@ require ( golang.org/x/image v0.20.0 // indirect golang.org/x/mod v0.21.0 // indirect golang.org/x/term v0.24.0 // indirect - golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect + golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/api v0.196.0 // indirect + google.golang.org/api v0.197.0 // indirect google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 85b80572f0..edf5a05ca4 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 h1:SZRVx928rbYZ6hEKUIN+vtGDkl7uotABRWGY4OAg5gM= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2/go.mod h1:ylS4c28ACSI59oJrOdW4pHS4n0Hw4TgSPHn8rpHl4Yw= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240920164238-5a7b106cbb87.2 h1:hl0FrmGlNpQZIGvU1/jDz0lsPDd0BhCE0QDRwPfLZcA= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240920164238-5a7b106cbb87.2/go.mod h1:ylS4c28ACSI59oJrOdW4pHS4n0Hw4TgSPHn8rpHl4Yw= cel.dev/expr v0.15.0/go.mod h1:TRSuuV7DlVCE/uwv5QbAiW/v8l5O8C4eEPHeu7gf7Sg= cel.dev/expr v0.16.0 h1:yloc84fytn4zmJX2GU3TkXGsaieaV7dQ057Qs4sIG2Y= cel.dev/expr v0.16.0/go.mod h1:TRSuuV7DlVCE/uwv5QbAiW/v8l5O8C4eEPHeu7gf7Sg= @@ -24,13 +24,13 @@ cloud.google.com/go/auth v0.4.2/go.mod h1:Kqvlz1cf1sNA0D+sYJnkPQOP+JMHkuHeIgVmCR cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= cloud.google.com/go/auth v0.6.0/go.mod h1:b4acV+jLQDyjwm4OXHYjNvRi4jvGBzHWJRtJcy+2P4g= cloud.google.com/go/auth v0.6.1/go.mod h1:eFHG7zDzbXHKmjJddFG/rBlcGp6t25SwRUiEQSlO4x4= -cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= cloud.google.com/go/auth v0.7.2/go.mod h1:VEc4p5NNxycWQTMQEDQF0bd6aTMb6VgYDXEwiJJQAbs= cloud.google.com/go/auth v0.8.0/go.mod h1:qGVp/Y3kDRSDZ5gFD/XPUfYQ9xW1iI7q8RIRoCyBbJc= cloud.google.com/go/auth v0.9.0/go.mod h1:2HsApZBr9zGZhC9QAXsYVYaWk8kNUt37uny+XVKi7wM= cloud.google.com/go/auth v0.9.1/go.mod h1:Sw8ocT5mhhXxFklyhT12Eiy0ed6tTrPMCJjSI8KhYLk= -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/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI= +cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA= cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= @@ -39,7 +39,7 @@ cloud.google.com/go/automl v1.14.0/go.mod h1:Kr7rN9ANSjlHyBLGvwhrnt35/vVZy3n/CP4 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/bigquery v1.63.0/go.mod h1:TQto6OR4kw27bqjNTGkVk1Vo5PJlTgxvDJn6YEIZL/E= cloud.google.com/go/bigtable v1.18.1/go.mod h1:NAVyfJot9jlo+KmgWLUJ5DJGwNDoChzAcrecLpmuAmY= cloud.google.com/go/bigtable v1.20.0/go.mod h1:upJDn8frsjzpRMfybiWkD1PG6WCCL7CRl26MgVeoXY4= cloud.google.com/go/bigtable v1.31.0/go.mod h1:N/mwZO+4TSHOeyiE1JxO+sRPnW4bnR7WLn9AEaiJqew= @@ -50,17 +50,16 @@ cloud.google.com/go/channel v1.18.0/go.mod h1:gQr50HxC/FGvufmqXD631ldL1Ee7CNMU5F 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/go.mod h1:DEqZBtYrDnD5PvjsKwb3onnhX+qjdCVM7eshj1XdjV4= +cloud.google.com/go/compute v1.28.1/go.mod h1:b72iXMY4FucVry3NR3Li4kVyyTvbMDE7x5WsqvxjsYk= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.4.0/go.mod h1:SIQh1Kkb4ZJ8zJ874fqVkslA29PRXuleyj6vOzlbK7M= -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/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs= +cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= 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.20.3/go.mod h1:AKC6vAy5urnMg5eJK3oUjy8oa5zMbiY33h125l8lmlo= 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= @@ -89,12 +88,12 @@ cloud.google.com/go/gkehub v0.15.0/go.mod h1:obpeROly2mjxZJbRkFfHEflcH54XhJI+g2Q cloud.google.com/go/gkemulticloud v1.3.0/go.mod h1:XmcOUQ+hJI62fi/klCjEGs6lhQ56Zjs14sGPXsGP0mE= cloud.google.com/go/grafeas v0.3.10/go.mod h1:Mz/AoXmxNhj74VW0fz5Idc3kMN2VZMi4UT5+UPx5Pq0= cloud.google.com/go/gsuiteaddons v1.7.0/go.mod h1:/B1L8ANPbiSvxCgdSwqH9CqHIJBzTt6v50fPr3vJCtg= -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/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/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/kms v1.19.0/go.mod h1:e4imokuPJUc17Trz2s6lEXFDt8bgDmvpVynH39bdrHM= +cloud.google.com/go/kms v1.20.0/go.mod h1:/dMbFF1tLLFnQV44AoI2GlotbjowyUfgVwezxW291fM= 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= @@ -107,14 +106,15 @@ cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodE cloud.google.com/go/longrunning v0.5.9/go.mod h1:HD+0l9/OOW0za6UWdKJtXoFAX/BGg/3Wj8p10NeWF7c= cloud.google.com/go/longrunning v0.5.11/go.mod h1:rDn7//lmlfWV1Dx6IB4RatCPenTwwmqXuiP0/RgoEO4= cloud.google.com/go/longrunning v0.5.12/go.mod h1:S5hMV8CDJ6r50t2ubVJSKQVv5u0rmik5//KgLO3k4lU= -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/longrunning v0.6.1 h1:lOLTFxYpr8hcRtcwWir5ITh1PAKUD/sG2lKrTSYjyMc= +cloud.google.com/go/longrunning v0.6.1/go.mod h1:nHISoOZpBcmlwbJmiVk5oDRz0qG/ZxPynEGs1iZ79s0= 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/monitoring v1.21.1/go.mod h1:Rj++LKrlht9uBi8+Eb530dIrzG/cU/lB8mt+lbeFK1c= 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= @@ -140,7 +140,7 @@ cloud.google.com/go/resourcesettings v1.8.0/go.mod h1:/hleuSOq8E6mF1sRYZrSzib8Bx 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/secretmanager v1.14.1/go.mod h1:L+gO+u2JA9CCyXpSR8gDH0o8EV7i/f0jdBOrUXcIV0U= 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= @@ -153,7 +153,7 @@ cloud.google.com/go/storagetransfer v1.11.0/go.mod h1:arcvgzVC4HPcSikqV8D4h4Pwrv 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/trace v1.11.1/go.mod h1:IQKNQuBzH72EGaXEodKlNJrWykGZxet2zgjtS60OtjA= cloud.google.com/go/translate v1.10.3/go.mod h1:GW0vC1qvPtd3pgtypCv4k4U8B7EdgK9/QEF2aJEUovs= 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= @@ -197,8 +197,8 @@ github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ github.com/GoogleCloudPlatform/grpc-gcp-go/grpcgcp v1.5.0/go.mod h1:dppbR7CwXD4pgtV9t3wD1812RaLDcBjtblcDF5f1vI0= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I= -github.com/ajstarks/deck v0.0.0-20240828115917-88fc45aa28b1/go.mod h1:5o5HzZ3nUiOivE0SPQepE7oNquDd+9yip0PtlFpq888= -github.com/ajstarks/deck/generate v0.0.0-20240828115917-88fc45aa28b1/go.mod h1:al/X+Mdfx3esXeGnnIVn5aYB6SfwTu+9T0u4EXmKJuk= +github.com/ajstarks/deck v0.0.0-20240918141114-8d365813662d/go.mod h1:5o5HzZ3nUiOivE0SPQepE7oNquDd+9yip0PtlFpq888= +github.com/ajstarks/deck/generate v0.0.0-20240918141114-8d365813662d/go.mod h1:al/X+Mdfx3esXeGnnIVn5aYB6SfwTu+9T0u4EXmKJuk= github.com/ajstarks/fc v0.0.0-20230606144319-ef5d5cb73a3d/go.mod h1:Qp3TfzbBiIjHwDxIpu+g9nYfNw+xXF2Yqp4WmMlTtwM= github.com/ajstarks/openvg v0.0.0-20191008131700-c6885d824eb8/go.mod h1:jpZHIkd4sQEgrzshrUQrRfv5OUMMq0w/Q1yK6ZYhUlk= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= @@ -221,44 +221,44 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU= github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= -github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= -github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= -github.com/aws/aws-sdk-go-v2/config v1.27.33 h1:Nof9o/MsmH4oa0s2q9a0k7tMz5x/Yj5k06lDODWz3BU= -github.com/aws/aws-sdk-go-v2/config v1.27.33/go.mod h1:kEqdYzRb8dd8Sy2pOdEbExTTF5v7ozEXX0McgPE7xks= -github.com/aws/aws-sdk-go-v2/credentials v1.17.32 h1:7Cxhp/BnT2RcGy4VisJ9miUPecY+lyE9I8JvcZofn9I= -github.com/aws/aws-sdk-go-v2/credentials v1.17.32/go.mod h1:P5/QMF3/DCHbXGEGkdbilXHsyTBX5D3HSwcrSc9p20I= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.18 h1:9DIp7vhmOPmueCDwpXa45bEbLHHTt1kcxChdTJWWxvI= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.18/go.mod h1:aJv/Fwz8r56ozwYFRC4bzoeL1L17GYQYemfblOBux1M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72QmG5U= +github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5 h1:xDAuZTn4IMm8o1LnBZvmrL8JA1io4o3YWNXgohbf20g= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.5/go.mod h1:wYSv6iDS621sEFLfKvpPE2ugjTuGlAG7iROg0hLOkfc= +github.com/aws/aws-sdk-go-v2/config v1.27.36 h1:4IlvHh6Olc7+61O1ktesh0jOcqmq/4WG6C2Aj5SKXy0= +github.com/aws/aws-sdk-go-v2/config v1.27.36/go.mod h1:IiBpC0HPAGq9Le0Xxb1wpAKzEfAQ3XlYgJLYKEVYcfw= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34 h1:gmkk1l/cDGSowPRzkdxYi8edw+gN4HmVK151D/pqGNc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34/go.mod h1:4R9OEV3tgFMsok4ZeFpExn7zQaZRa9MRGFYnI/xC/vs= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.22 h1:MUD/42Etbj6sVZ0HpOe4G/4+wDF7ZJhqZXSqNKZokPM= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.22/go.mod h1:wp0iN4VH1riPNX68N8MU+mz/7ggSeWc+zBhsdALp+zM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18/go.mod h1:DkKMmksZVVyat+Y+r1dEOgJEfUeA7UngIHWeKsi0yNc= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 h1:Z5r7SycxmSllHYmaAZPpmN8GviDrSGhMS6bldqtXZPw= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15/go.mod h1:CetW7bDE00QoGEmPUoZuRog07SGVAUVW6LFpNP0YfIg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19 h1:FLMkfEiRjhgeDTCjjLoc3URo/TBkgeQbocA78lfkzSI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19/go.mod h1:Vx+GucNSsdhaxs3aZIKfSUjKVGsxN25nX2SRcdhuw08= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17 h1:u+EfGmksnJc/x5tq3A+OD7LrMbSSR/5TrKLvkdy/fhY= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17/go.mod h1:VaMx6302JHax2vHJWgRo+5n9zvbacs3bLU/23DNQrTY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.61.2 h1:Kp6PWAlXwP1UvIflkIP6MFZYBNDCa4mFCGtxrpICVOg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.61.2/go.mod h1:5FmD/Dqq57gP+XwaUnd5WFPipAuzrf0HmupX27Gvjvc= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.7 h1:pIaGg+08llrP7Q5aiz9ICWbY8cqhTkyy+0SHvfzQpTc= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.7/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20 h1:rTWjG6AvWekO2B1LHeM3ktU7MqyX9rzWQ7hgzneZW7E= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.20/go.mod h1:RGW2DDpVc8hu6Y6yG8G5CHVmVOAn1oV8rNKOHRJyswg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44URTiHNx6PNo0ujDE6ERlsCKJD3u1zfnzAPg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18 h1:eb+tFOIl9ZsUe2259/BKPeniKuz4/02zZFH/i4Nf8Rg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.18/go.mod h1:GVCC2IJNJTmdlyEsSmofEy7EfJncP7DNnXDzRjJ5Keg= +github.com/aws/aws-sdk-go-v2/service/s3 v1.63.0 h1:F6KG9CT7PPqAjnRxjKmYJopVnXPwjlzPI2FEgXHajNY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.63.0/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 h1:fHySkG0IGj2nepgGJPmmhZYL9ndnsq1Tvc6MeuVQCaQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.7 h1:NKTa1eqZYw8tiHSRGpP0VtTdub/8KNk8sDkNPFaOKDE= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.7/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 h1:GNVxIHBTi2EgwCxpNiozhNasMOK+ROUA2Z3X+cSBX58= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= +github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= 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 v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -280,7 +280,7 @@ github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38 github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.23 h1:4M6+isWdcStXEf15G/RbrMPOQj1dZ7HPZCGwE4kOeP0= github.com/creack/pty v1.1.23/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -464,7 +464,7 @@ github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKe github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/ianlancetaylor/demangle v0.0.0-20240805132620-81f5be970eca/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/ianlancetaylor/demangle v0.0.0-20240912202439-0a2b6291aafd/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -493,16 +493,16 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.17.10-0.20240911134657-51aa0ecb46a9 h1:LCVgxJhF5Dlzgea9oMdWiqNlRQV0srnLp6sKm1aj6sU= -github.com/klauspost/compress v1.17.10-0.20240911134657-51aa0ecb46a9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.10-0.20240918170325-2a46d6bf5d0f h1:8v235Q/TomBBPwYPuiGOb96/srD4drSzjTlU0y/f1As= +github.com/klauspost/compress v1.17.10-0.20240918170325-2a46d6bf5d0f/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kpango/fastime v1.1.9 h1:xVQHcqyPt5M69DyFH7g1EPRns1YQNap9d5eLhl/Jy84= github.com/kpango/fastime v1.1.9/go.mod h1:vyD7FnUn08zxY4b/QFBZVG+9EWMYsNl+QF0uE46urD4= github.com/kpango/fuid v0.0.0-20221203053508-503b5ad89aa1 h1:rxyM+7uaZQ35P9fbixdnld/h4AgEhODoubuy6A4nDdk= github.com/kpango/fuid v0.0.0-20221203053508-503b5ad89aa1/go.mod h1:CAYeq6us9NfnRkSz67/xKVIR6/vaY5ZQZRe6IVcaIKg= -github.com/kpango/gache/v2 v2.0.10 h1:GgbG57FFYljnPOcWIgquP4+Fsp9kccTZ/5tsu+zHMyU= -github.com/kpango/gache/v2 v2.0.10/go.mod h1:0YTbg//JH4Zylm/8LNHRaSbiXphcFStdVhiftgVpPds= +github.com/kpango/gache/v2 v2.0.11 h1:uyIXOyx47YhE/0cvP2vf/T+ZCauUD8kSKcsl0IhsAjk= +github.com/kpango/gache/v2 v2.0.11/go.mod h1:0YTbg//JH4Zylm/8LNHRaSbiXphcFStdVhiftgVpPds= github.com/kpango/glg v1.6.15 h1:nw0xSxpSyrDIWHeb3dvnE08PW+SCbK+aYFETT75IeLA= github.com/kpango/glg v1.6.15/go.mod h1:cmsc7Yeu8AS3wHLmN7bhwENXOpxfq+QoqxCIk2FneRk= github.com/kpango/go-hostpool v0.0.0-20210303030322-aab80263dcd0 h1:orIEVdc68woWO1ZyYWEVOl5Kl33eDjP+kbxgbdpMwi4= @@ -583,8 +583,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/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= 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.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= @@ -739,8 +739,8 @@ gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 h1:vJpL69PeUullhJyKtTjHjENE gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946/go.mod h1:BQUWDHIAygjdt1HnUPQ0eWqLN2n5FwJycrpYUVUOx2I= gonum.org/v1/plot v0.14.0 h1:+LBDVFYwFe4LHhdP8coW6296MBEY4nQ+Y4vuUpJopcE= gonum.org/v1/plot v0.14.0/go.mod h1:MLdR9424SJed+5VqC6MsouEpig9pZX2VZ57H9ko2bXU= -google.golang.org/api v0.197.0 h1:x6CwqQLsFiA5JKAiGyGBjc2bNtHtLddhJCE2IKuhhcQ= -google.golang.org/api v0.197.0/go.mod h1:AuOuo20GoQ331nq7DquGHlU6d+2wN2fZ8O0ta60nRNw= +google.golang.org/api v0.198.0 h1:OOH5fZatk57iN0A7tjJQzt6aPfYQ1JiWkt1yGseazks= +google.golang.org/api v0.198.0/go.mod h1:/Lblzl3/Xqqk9hw/yS97TImKTUwnf1bv89v7+OagJzc= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= 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= @@ -749,8 +749,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go. google.golang.org/genproto/googleapis/bytestream v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:q0eWNnCW04EJlyrmLT+ZHsjuoUiZ36/eAEdCCezZoco= 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/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -782,8 +782,8 @@ k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUx k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= k8s.io/metrics v0.30.3 h1:gKCpte5zykrOmQhZ8qmsxyJslMdiLN+sqbBfIWNpbGM= k8s.io/metrics v0.30.3/go.mod h1:W06L2nXRhOwPkFYDJYWdEIS3u6JcJy3ebIPYbndRs6A= -k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3 h1:b2FmK8YH+QEwq/Sy2uAEhmqL5nPfGYbJOcaqjeYYZoA= -k8s.io/utils v0.0.0-20240902221715-702e33fdd3c3/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= +k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= diff --git a/hack/docker/gen/main.go b/hack/docker/gen/main.go index bf0d575c28..11a2cd7dc6 100644 --- a/hack/docker/gen/main.go +++ b/hack/docker/gen/main.go @@ -414,7 +414,7 @@ func appendM[K comparable](maps ...map[K]string) map[K]string { for _, m := range maps[1:] { for k, v := range m { ev, ok := result[k] - if ok { + if ok && !strings.Contains(v, ev) { v += ":" + ev } result[k] = v diff --git a/internal/net/grpc/client.go b/internal/net/grpc/client.go index b6a4f3eceb..eded92f526 100644 --- a/internal/net/grpc/client.go +++ b/internal/net/grpc/client.go @@ -165,7 +165,7 @@ func (g *gRPCClient) StartConnectionMonitor(ctx context.Context) (<-chan error, ech := make(chan error, len(addrs)) for _, addr := range addrs { if addr != "" { - _, err := g.Connect(ctx, addr, grpc.WithBlock()) + _, err := g.Connect(ctx, addr) if err != nil { if !errors.Is(err, context.Canceled) && !errors.Is(err, context.DeadlineExceeded) && diff --git a/internal/net/grpc/errdetails/errdetails.go b/internal/net/grpc/errdetails/errdetails.go index ad84b6c0b2..ad042f38ba 100644 --- a/internal/net/grpc/errdetails/errdetails.go +++ b/internal/net/grpc/errdetails/errdetails.go @@ -58,20 +58,20 @@ const ( ) var ( - debugInfoMessageName = new(DebugInfo).ProtoReflect().Descriptor().FullName().Name() - errorInfoMessageName = new(ErrorInfo).ProtoReflect().Descriptor().FullName().Name() - badRequestMessageName = new(BadRequest).ProtoReflect().Descriptor().FullName().Name() - badRequestFieldViolationMessageName = new(BadRequestFieldViolation).ProtoReflect().Descriptor().FullName().Name() - localizedMessageMessageName = new(LocalizedMessage).ProtoReflect().Descriptor().FullName().Name() - preconditionFailureMessageName = new(PreconditionFailure).ProtoReflect().Descriptor().FullName().Name() - preconditionFailureViolationMessageName = new(PreconditionFailureViolation).ProtoReflect().Descriptor().FullName().Name() - helpMessageName = new(Help).ProtoReflect().Descriptor().FullName().Name() - helpLinkMessageName = new(HelpLink).ProtoReflect().Descriptor().FullName().Name() - quotaFailureMessageName = new(QuotaFailure).ProtoReflect().Descriptor().FullName().Name() - quotaFailureViolationMessageName = new(QuotaFailureViolation).ProtoReflect().Descriptor().FullName().Name() - requestInfoMessageName = new(RequestInfo).ProtoReflect().Descriptor().FullName().Name() - resourceInfoMessageName = new(ResourceInfo).ProtoReflect().Descriptor().FullName().Name() - retryInfoMessageName = new(RetryInfo).ProtoReflect().Descriptor().FullName().Name() + DebugInfoMessageName = string(new(DebugInfo).ProtoReflect().Descriptor().FullName().Name()) + ErrorInfoMessageName = string(new(ErrorInfo).ProtoReflect().Descriptor().FullName().Name()) + BadRequestMessageName = string(new(BadRequest).ProtoReflect().Descriptor().FullName().Name()) + BadRequestFieldViolationMessageName = string(new(BadRequestFieldViolation).ProtoReflect().Descriptor().FullName().Name()) + LocalizedMessageMessageName = string(new(LocalizedMessage).ProtoReflect().Descriptor().FullName().Name()) + PreconditionFailureMessageName = string(new(PreconditionFailure).ProtoReflect().Descriptor().FullName().Name()) + PreconditionFailureViolationMessageName = string(new(PreconditionFailureViolation).ProtoReflect().Descriptor().FullName().Name()) + HelpMessageName = string(new(Help).ProtoReflect().Descriptor().FullName().Name()) + HelpLinkMessageName = string(new(HelpLink).ProtoReflect().Descriptor().FullName().Name()) + QuotaFailureMessageName = string(new(QuotaFailure).ProtoReflect().Descriptor().FullName().Name()) + QuotaFailureViolationMessageName = string(new(QuotaFailureViolation).ProtoReflect().Descriptor().FullName().Name()) + RequestInfoMessageName = string(new(RequestInfo).ProtoReflect().Descriptor().FullName().Name()) + ResourceInfoMessageName = string(new(ResourceInfo).ProtoReflect().Descriptor().FullName().Name()) + RetryInfoMessageName = string(new(RetryInfo).ProtoReflect().Descriptor().FullName().Name()) ) type Detail struct { @@ -234,86 +234,86 @@ func AnyToErrorDetail(a *types.Any) proto.Message { return nil } var err error - switch proto.Name(strings.TrimPrefix(a.GetTypeUrl(), typePrefix)) { - case debugInfoMessageName: + switch strings.TrimPrefix(a.GetTypeUrl(), typePrefix) { + case DebugInfoMessageName: var m DebugInfo err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case errorInfoMessageName: + case ErrorInfoMessageName: var m ErrorInfo err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case badRequestFieldViolationMessageName: + case BadRequestFieldViolationMessageName: var m BadRequestFieldViolation err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case badRequestMessageName: + case BadRequestMessageName: var m BadRequest err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case localizedMessageMessageName: + case LocalizedMessageMessageName: var m LocalizedMessage err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case preconditionFailureViolationMessageName: + case PreconditionFailureViolationMessageName: var m PreconditionFailureViolation err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case preconditionFailureMessageName: + case PreconditionFailureMessageName: var m PreconditionFailure err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case helpLinkMessageName: + case HelpLinkMessageName: var m HelpLink err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case helpMessageName: + case HelpMessageName: var m Help err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case quotaFailureViolationMessageName: + case QuotaFailureViolationMessageName: var m QuotaFailureViolation err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case quotaFailureMessageName: + case QuotaFailureMessageName: var m QuotaFailure err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case requestInfoMessageName: + case RequestInfoMessageName: var m RequestInfo err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case resourceInfoMessageName: + case ResourceInfoMessageName: var m ResourceInfo err = types.UnmarshalAny(a, &m) if err == nil { return &m } - case retryInfoMessageName: + case RetryInfoMessageName: var m RetryInfo err = types.UnmarshalAny(a, &m) if err == nil { diff --git a/internal/net/grpc/interceptor/server/logging/accesslog.go b/internal/net/grpc/interceptor/server/logging/accesslog.go index 9de30d1aaa..802960ddd3 100644 --- a/internal/net/grpc/interceptor/server/logging/accesslog.go +++ b/internal/net/grpc/interceptor/server/logging/accesslog.go @@ -19,11 +19,14 @@ package logging import ( "context" + "fmt" "path" "time" + "github.com/vdaas/vald/internal/encoding/json" "github.com/vdaas/vald/internal/log" "github.com/vdaas/vald/internal/net/grpc" + "github.com/vdaas/vald/internal/net/grpc/status" "github.com/vdaas/vald/internal/observability/trace" ) @@ -32,6 +35,7 @@ const ( grpcKindStream = "stream" rpcCompletedMessage = "rpc completed" + rpcFailedMessage = "rpc failed" ) type AccessLogEntity struct { @@ -49,6 +53,29 @@ type AccessLogGRPCEntity struct { Method string `json:"method,omitempty" yaml:"method"` } +func (e AccessLogEntity) String() (str string) { + var emsg string + if e.Error != nil { + st, ok := status.FromError(e.Error) + if ok && st != nil { + emsg = st.String() + } else { + emsg = e.Error.Error() + } + } + eb, err := json.Marshal(e) + if err != nil { + str = fmt.Sprintf("%#v,\tfailed to json.Marshal(AccessLogEntity) error: %v", e, err) + } else { + str = string(eb) + } + + if emsg != "" { + return str + ",\terror message: " + emsg + } + return str +} + func AccessLogInterceptor() grpc.UnaryServerInterceptor { return func( ctx context.Context, @@ -88,9 +115,9 @@ func AccessLogInterceptor() grpc.UnaryServerInterceptor { if err != nil { entity.Error = err - log.Warn(rpcCompletedMessage, entity) + log.Warn(rpcFailedMessage, entity.String()) } else { - log.Debug(rpcCompletedMessage, entity) + log.Debug(rpcCompletedMessage, entity.String()) } return resp, err @@ -136,9 +163,9 @@ func AccessLogStreamInterceptor() grpc.StreamServerInterceptor { if err != nil { entity.Error = err - log.Warn(rpcCompletedMessage, entity) + log.Warn(rpcFailedMessage, entity.String()) } else { - log.Debug(rpcCompletedMessage, entity) + log.Debug(rpcCompletedMessage, entity.String()) } return err diff --git a/internal/net/grpc/pool/pool.go b/internal/net/grpc/pool/pool.go index e0c3d34776..0980906c49 100644 --- a/internal/net/grpc/pool/pool.go +++ b/internal/net/grpc/pool/pool.go @@ -127,7 +127,7 @@ func New(ctx context.Context, opts ...Option) (c Conn, err error) { p.addr = net.JoinHostPort(p.host, p.port) } - conn, err := grpc.DialContext(ctx, p.addr, p.dopts...) + conn, err := grpc.NewClient(p.addr, p.dopts...) if err != nil { log.Warnf("grpc.New initial Dial check to %s returned error: %v", p.addr, err) if conn != nil { @@ -143,7 +143,7 @@ func New(ctx context.Context, opts ...Option) (c Conn, err error) { } p.port = port p.addr = net.JoinHostPort(p.host, p.port) - conn, err = grpc.DialContext(ctx, p.addr, p.dopts...) + conn, err = grpc.NewClient(p.addr, p.dopts...) if err != nil { if conn != nil { cerr := conn.Close() @@ -469,7 +469,7 @@ func (p *pool) dial(ctx context.Context, addr string) (conn *ClientConn, err err do := func() (conn *ClientConn, err error) { ctx, cancel := context.WithTimeout(ctx, p.dialTimeout) defer cancel() - conn, err = grpc.DialContext(ctx, addr, append(p.dopts, grpc.WithBlock())...) + conn, err = grpc.NewClient(addr, p.dopts...) if err != nil { if conn != nil { cerr := conn.Close() @@ -697,10 +697,7 @@ func (p *pool) scanGRPCPort(ctx context.Context) (port uint16, err error) { return 0, ctx.Err() default: // try gRPC dialing to target port - conn, err = grpc.DialContext(ctx, - net.JoinHostPort(p.host, port), - append(p.dopts, grpc.WithBlock())...) - + conn, err = grpc.NewClient(net.JoinHostPort(p.host, port), p.dopts...) if err == nil && isHealthy(ctx, conn) && conn.Close() == nil { // if no error and healthy the port is ready for gRPC return port, nil diff --git a/internal/net/grpc/pool/pool_bench_test.go b/internal/net/grpc/pool/pool_bench_test.go index c3d2b5528f..3e9a7b96a1 100644 --- a/internal/net/grpc/pool/pool_bench_test.go +++ b/internal/net/grpc/pool/pool_bench_test.go @@ -129,7 +129,7 @@ func Benchmark_ConnPool(b *testing.B) { func Benchmark_StaticDial(b *testing.B) { defer ListenAndServe(b, DefaultServerAddr)() - conn, err := grpc.DialContext(context.Background(), DefaultServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(DefaultServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { b.Error(err) } @@ -186,7 +186,7 @@ func BenchmarkParallel_ConnPool(b *testing.B) { func BenchmarkParallel_StaticDial(b *testing.B) { defer ListenAndServe(b, DefaultServerAddr)() - conn, err := grpc.DialContext(context.Background(), DefaultServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.NewClient(DefaultServerAddr, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { b.Error(err) } diff --git a/internal/net/grpc/status/status.go b/internal/net/grpc/status/status.go index cfd0ff085f..00e8c87822 100644 --- a/internal/net/grpc/status/status.go +++ b/internal/net/grpc/status/status.go @@ -18,8 +18,10 @@ package status import ( + "cmp" "context" "os" + "slices" "github.com/vdaas/vald/internal/errors" "github.com/vdaas/vald/internal/info" @@ -28,6 +30,7 @@ import ( "github.com/vdaas/vald/internal/net/grpc/errdetails" "github.com/vdaas/vald/internal/net/grpc/proto" "github.com/vdaas/vald/internal/net/grpc/types" + "github.com/vdaas/vald/internal/strings" spb "google.golang.org/genproto/googleapis/rpc/status" "google.golang.org/grpc/status" ) @@ -237,9 +240,13 @@ func FromError(err error) (st *Status, ok bool) { } func withDetails(st *Status, err error, details ...any) *Status { - msgs := make([]proto.MessageV1, 0, 1+len(details)*2) + if st != nil { + details = append(st.Details(), details...) + } + dmap := make(map[string][]proto.Message, len(details)+1) if err != nil { - msgs = append(msgs, &errdetails.ErrorInfo{ + typeName := errdetails.ErrorInfoMessageName + dmap[typeName] = []proto.Message{&errdetails.ErrorInfo{ Reason: err.Error(), Domain: func() (hostname string) { var err error @@ -249,64 +256,442 @@ func withDetails(st *Status, err error, details ...any) *Status { } return hostname }(), - }) + }} } for _, detail := range details { if detail == nil { continue } + var ( + typeName string + msg proto.Message + ) switch v := detail.(type) { case *spb.Status: if v != nil { - msgs = append(msgs, proto.ToMessageV1(v)) + for _, d := range v.GetDetails() { + typeName = d.GetTypeUrl() + if typeName != "" { + msg = errdetails.AnyToErrorDetail(d) + if msg != nil { + dm, ok := dmap[typeName] + if ok && dm != nil { + dmap[typeName] = append(dm, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } + } + } } case spb.Status: - msgs = append(msgs, proto.ToMessageV1(&v)) + for _, d := range v.GetDetails() { + typeName = d.GetTypeUrl() + if typeName != "" { + msg = errdetails.AnyToErrorDetail(d) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } + } + } case *status.Status: if v != nil { - msgs = append(msgs, proto.ToMessageV1(&spb.Status{ - Code: v.Proto().GetCode(), - Message: v.Message(), - })) - for _, d := range v.Proto().Details { - msgs = append(msgs, proto.ToMessageV1(errdetails.AnyToErrorDetail(d))) + for _, d := range v.Proto().GetDetails() { + typeName = d.GetTypeUrl() + if typeName != "" { + msg = errdetails.AnyToErrorDetail(d) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } + } } } case status.Status: - msgs = append(msgs, proto.ToMessageV1(&spb.Status{ - Code: v.Proto().GetCode(), - Message: v.Message(), - })) - for _, d := range v.Proto().Details { - msgs = append(msgs, proto.ToMessageV1(errdetails.AnyToErrorDetail(d))) + for _, d := range v.Proto().GetDetails() { + typeName = d.GetTypeUrl() + if typeName != "" { + msg = errdetails.AnyToErrorDetail(d) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } + } } case *info.Detail: if v != nil { - msgs = append(msgs, errdetails.DebugInfoFromInfoDetail(v)) + typeName = errdetails.DebugInfoMessageName + msg = errdetails.DebugInfoFromInfoDetail(v) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } } case info.Detail: - msgs = append(msgs, errdetails.DebugInfoFromInfoDetail(&v)) + typeName = errdetails.DebugInfoMessageName + msg = errdetails.DebugInfoFromInfoDetail(&v) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } case *types.Any: if v != nil { - msgs = append(msgs, proto.ToMessageV1(errdetails.AnyToErrorDetail(v))) + typeName = v.GetTypeUrl() + msg = errdetails.AnyToErrorDetail(v) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } } case types.Any: - msgs = append(msgs, proto.ToMessageV1(errdetails.AnyToErrorDetail(&v))) + typeName = v.GetTypeUrl() + msg = errdetails.AnyToErrorDetail(&v) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } case *proto.Message: if v != nil { - msgs = append(msgs, proto.ToMessageV1(*v)) + typeName = typeURL(*v) + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, *v) + } else { + dmap[typeName] = []proto.Message{*v} + } } case proto.Message: - msgs = append(msgs, proto.ToMessageV1(v)) + typeName = typeURL(v) + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, v) + } else { + dmap[typeName] = []proto.Message{v} + } case *proto.MessageV1: if v != nil { - msgs = append(msgs, *v) + msg = proto.ToMessageV2(*v) + typeName = typeURL(msg) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } } case proto.MessageV1: - msgs = append(msgs, v) + msg = proto.ToMessageV2(v) + typeName = typeURL(msg) + if msg != nil { + d, ok := dmap[typeName] + if ok && d != nil { + dmap[typeName] = append(d, msg) + } else { + dmap[typeName] = []proto.Message{msg} + } + } + } + } + msgs := make([]proto.MessageV1, 0, len(dmap)) + for typeName, ds := range dmap { + switch typeName { + case errdetails.DebugInfoMessageName: + m := new(errdetails.DebugInfo) + for _, msg := range ds { + d, ok := msg.(*errdetails.DebugInfo) + if ok && d != nil { + if m.GetDetail() == "" { + m.Detail = d.GetDetail() + } else if m.GetDetail() != d.GetDetail() && !strings.Contains(m.GetDetail(), d.GetDetail()) { + m.Detail += "\t" + d.GetDetail() + } + if len(m.GetStackEntries()) < len(d.GetStackEntries()) { + m.StackEntries = d.GetStackEntries() + } + } + } + msgs = append(msgs, m) + case errdetails.ErrorInfoMessageName: + m := new(errdetails.ErrorInfo) + for _, msg := range ds { + e, ok := msg.(*errdetails.ErrorInfo) + if ok && e != nil { + if m.GetDomain() == "" { + m.Domain = e.GetDomain() + } else if m.GetDomain() != e.GetDomain() && !strings.Contains(m.GetDomain(), e.GetDomain()) { + m.Domain += "\t" + e.GetDomain() + } + if m.GetReason() == "" { + m.Reason += e.GetReason() + } else if m.GetReason() != e.GetReason() && !strings.Contains(m.GetReason(), e.GetReason()) { + m.Reason += "\t" + e.GetReason() + } + if e.GetMetadata() != nil { + if m.GetMetadata() == nil { + m.Metadata = e.GetMetadata() + } else { + m.Metadata = appendM(m.GetMetadata(), e.GetMetadata()) + } + } + } + } + msgs = append(msgs, m) + case errdetails.BadRequestMessageName: + m := new(errdetails.BadRequest) + for _, msg := range ds { + b, ok := msg.(*errdetails.BadRequest) + if ok && b != nil && b.GetFieldViolations() != nil { + if m.GetFieldViolations() == nil { + m = b + } else { + m.FieldViolations = append(m.GetFieldViolations(), b.GetFieldViolations()...) + } + } + } + slices.SortFunc(m.FieldViolations, func(left, right *errdetails.BadRequestFieldViolation) int { + return cmp.Compare(left.GetField(), right.GetField()) + }) + m.FieldViolations = slices.CompactFunc(m.GetFieldViolations(), func(left, right *errdetails.BadRequestFieldViolation) bool { + return left.GetField() == right.GetField() + }) + msgs = append(msgs, m) + case errdetails.BadRequestFieldViolationMessageName: + m := new(errdetails.BadRequestFieldViolation) + for _, msg := range ds { + b, ok := msg.(*errdetails.BadRequestFieldViolation) + if ok && b != nil { + if m.GetField() == "" { + m.Field = b.GetField() + } else if m.GetField() != b.GetField() && !strings.Contains(m.GetField(), b.GetField()) { + m.Field += "\t" + b.GetField() + } + if m.GetDescription() == "" { + m.Description = b.GetDescription() + } else if m.GetDescription() != b.GetDescription() && !strings.Contains(m.GetDescription(), b.GetDescription()) { + m.Description += "\t" + b.GetDescription() + } + } + } + msgs = append(msgs, m) + case errdetails.LocalizedMessageMessageName: + m := new(errdetails.LocalizedMessage) + for _, msg := range ds { + l, ok := msg.(*errdetails.LocalizedMessage) + if ok && l != nil { + if m.GetLocale() == "" { + m.Locale = l.GetLocale() + } else if m.GetLocale() != l.GetLocale() && !strings.Contains(m.GetLocale(), l.GetLocale()) { + m.Locale += "\t" + l.GetLocale() + } + if m.GetMessage() == "" { + m.Message = l.GetMessage() + } else if m.GetMessage() != l.GetMessage() && !strings.Contains(m.GetMessage(), l.GetMessage()) { + m.Message += "\t" + l.GetMessage() + } + } + } + msgs = append(msgs, m) + case errdetails.PreconditionFailureMessageName: + m := new(errdetails.PreconditionFailure) + for _, msg := range ds { + p, ok := msg.(*errdetails.PreconditionFailure) + if ok && p != nil && p.GetViolations() != nil { + if m.GetViolations() == nil { + m = p + } else { + m.Violations = append(m.GetViolations(), p.GetViolations()...) + } + } + } + slices.SortFunc(m.Violations, func(left, right *errdetails.PreconditionFailureViolation) int { + return cmp.Compare(left.GetType(), right.GetType()) + }) + m.Violations = slices.CompactFunc(m.GetViolations(), func(left, right *errdetails.PreconditionFailureViolation) bool { + return left.GetType() == right.GetType() + }) + msgs = append(msgs, m) + case errdetails.PreconditionFailureViolationMessageName: + m := new(errdetails.PreconditionFailureViolation) + for _, msg := range ds { + p, ok := msg.(*errdetails.PreconditionFailureViolation) + if ok && p != nil { + if m.GetType() == "" { + m.Type = p.GetType() + } else if m.GetType() != p.GetType() && !strings.Contains(m.GetType(), p.GetType()) { + m.Type += "\t" + p.GetType() + } + if m.GetSubject() == "" { + m.Subject = p.GetSubject() + } else if m.GetSubject() != p.GetSubject() && !strings.Contains(m.GetSubject(), p.GetSubject()) { + m.Subject += "\t" + p.GetSubject() + } + if m.GetDescription() == "" { + m.Description = p.GetDescription() + } else if m.GetDescription() != p.GetDescription() && !strings.Contains(m.GetDescription(), p.GetDescription()) { + m.Description += "\t" + p.GetDescription() + } + } + } + msgs = append(msgs, m) + case errdetails.HelpMessageName: + m := new(errdetails.Help) + for _, msg := range ds { + h, ok := msg.(*errdetails.Help) + if ok && h != nil && h.GetLinks() != nil { + if m.GetLinks() == nil { + m = h + } else { + m.Links = append(m.GetLinks(), h.GetLinks()...) + } + } + } + slices.SortFunc(m.Links, func(left, right *errdetails.HelpLink) int { + return cmp.Compare(left.GetUrl(), right.GetUrl()) + }) + m.Links = slices.CompactFunc(m.GetLinks(), func(left, right *errdetails.HelpLink) bool { + return left.GetUrl() == right.GetUrl() + }) + msgs = append(msgs, m) + case errdetails.HelpLinkMessageName: + m := new(errdetails.HelpLink) + for _, msg := range ds { + h, ok := msg.(*errdetails.HelpLink) + if ok && h != nil { + if m.GetUrl() == "" { + m.Url = h.GetUrl() + } else if m.GetUrl() != h.GetUrl() && !strings.Contains(m.GetUrl(), h.GetUrl()) { + m.Url += "\t" + h.GetUrl() + } + if m.GetDescription() == "" { + m.Description = h.GetDescription() + } else if m.GetDescription() != h.GetDescription() && !strings.Contains(m.GetDescription(), h.GetDescription()) { + m.Description += "\t" + h.GetDescription() + } + } + } + msgs = append(msgs, m) + case errdetails.QuotaFailureMessageName: + m := new(errdetails.QuotaFailure) + for _, msg := range ds { + q, ok := msg.(*errdetails.QuotaFailure) + if ok && q != nil && q.GetViolations() != nil { + if m.GetViolations() == nil { + m = q + } else { + m.Violations = append(m.GetViolations(), q.GetViolations()...) + } + } + } + slices.SortFunc(m.Violations, func(left, right *errdetails.QuotaFailureViolation) int { + return cmp.Compare(left.GetSubject(), right.GetSubject()) + }) + m.Violations = slices.CompactFunc(m.GetViolations(), func(left, right *errdetails.QuotaFailureViolation) bool { + return left.GetSubject() == right.GetSubject() + }) + msgs = append(msgs, m) + case errdetails.QuotaFailureViolationMessageName: + m := new(errdetails.QuotaFailureViolation) + for _, msg := range ds { + q, ok := msg.(*errdetails.QuotaFailureViolation) + if ok && q != nil { + if m.GetSubject() == "" { + m.Subject = q.GetSubject() + } else if m.GetSubject() != q.GetSubject() && !strings.Contains(m.GetSubject(), q.GetSubject()) { + m.Subject += "\t" + q.GetSubject() + } + if m.GetDescription() == "" { + m.Description = q.GetDescription() + } else if m.GetDescription() != q.GetDescription() && !strings.Contains(m.GetDescription(), q.GetDescription()) { + m.Description += "\t" + q.GetDescription() + } + } + } + msgs = append(msgs, m) + case errdetails.RequestInfoMessageName: + m := new(errdetails.RequestInfo) + for _, msg := range ds { + r, ok := msg.(*errdetails.RequestInfo) + if ok && r != nil { + if m.GetRequestId() == "" { + m.RequestId = r.GetRequestId() + } else if m.GetRequestId() != r.GetRequestId() && !strings.Contains(m.GetRequestId(), r.GetRequestId()) { + m.RequestId += "\t" + r.GetRequestId() + } + if m.GetServingData() == "" { + m.ServingData = r.GetServingData() + } else if m.GetServingData() != r.GetServingData() && !strings.Contains(m.GetServingData(), r.GetServingData()) { + m.ServingData += "\t" + r.GetServingData() + } + } + } + msgs = append(msgs, m) + case errdetails.ResourceInfoMessageName: + m := new(errdetails.ResourceInfo) + for _, msg := range ds { + r, ok := msg.(*errdetails.ResourceInfo) + if ok && r != nil { + if m.GetResourceType() == "" { + m.ResourceType = r.GetResourceType() + } else if m.GetResourceType() != r.GetResourceType() && !strings.Contains(m.GetResourceType(), r.GetResourceType()) { + m.ResourceType += "\t" + r.GetResourceType() + } + if m.GetResourceName() == "" { + m.ResourceName = r.GetResourceName() + } else if m.GetResourceName() != r.GetResourceName() && !strings.Contains(m.GetResourceName(), r.GetResourceName()) { + m.ResourceName += "\t" + r.GetResourceName() + } + if m.GetDescription() == "" { + m.Description = r.GetDescription() + } else if m.GetDescription() != r.GetDescription() && !strings.Contains(m.GetDescription(), r.GetDescription()) { + m.Description += "\t" + r.GetDescription() + } + } + } + msgs = append(msgs, m) + case errdetails.RetryInfoMessageName: + m := new(errdetails.RetryInfo) + for _, msg := range ds { + r, ok := msg.(*errdetails.RetryInfo) + if ok && r != nil { + if m.GetRetryDelay() == nil || r.GetRetryDelay().Seconds < m.GetRetryDelay().Seconds { + m.RetryDelay = r.GetRetryDelay() + } + } + } + msgs = append(msgs, m) } } - if st == nil { if err != nil { st = New(codes.Unknown, err.Error()) @@ -314,21 +699,72 @@ func withDetails(st *Status, err error, details ...any) *Status { st = New(codes.Unknown, "") } } - - if len(msgs) != 0 { - sst, err := st.WithDetails(msgs...) - if err == nil && sst != nil { - st = sst - } else { - log.Warn("failed to set error details:", err) - } + code := st.Code() + var errMsg string + if err != nil { + errMsg = err.Error() + } else { + errMsg = st.Message() + } + sst, err := status.New(code, errMsg).WithDetails(msgs...) + if err == nil { + st = sst } - Log(st.Code(), st.Err()) - return st } +func typeURL(msg proto.Message) string { + switch msg.(type) { + case *errdetails.DebugInfo: + return errdetails.DebugInfoMessageName + case *errdetails.ErrorInfo: + return errdetails.ErrorInfoMessageName + case *errdetails.BadRequest: + return errdetails.BadRequestMessageName + case *errdetails.BadRequestFieldViolation: + return errdetails.BadRequestFieldViolationMessageName + case *errdetails.LocalizedMessage: + return errdetails.LocalizedMessageMessageName + case *errdetails.PreconditionFailure: + return errdetails.PreconditionFailureMessageName + case *errdetails.PreconditionFailureViolation: + return errdetails.PreconditionFailureViolationMessageName + case *errdetails.Help: + return errdetails.HelpMessageName + case *errdetails.HelpLink: + return errdetails.HelpLinkMessageName + case *errdetails.QuotaFailure: + return errdetails.QuotaFailureMessageName + case *errdetails.QuotaFailureViolation: + return errdetails.QuotaFailureViolationMessageName + case *errdetails.RequestInfo: + return errdetails.RequestInfoMessageName + case *errdetails.ResourceInfo: + return errdetails.ResourceInfoMessageName + case *errdetails.RetryInfo: + return errdetails.RetryInfoMessageName + } + return "unknown" +} + +func appendM[K comparable](maps ...map[K]string) (result map[K]string) { + if len(maps) == 0 { + return nil + } + result = maps[0] + for _, m := range maps[1:] { + for k, v := range m { + ev, ok := result[k] + if ok && v != ev && !strings.Contains(v, ev) { + v += "\t" + ev + } + result[k] = v + } + } + return result +} + func Log(code codes.Code, err error) { if err != nil { switch code { diff --git a/internal/observability/exporter/otlp/otlp.go b/internal/observability/exporter/otlp/otlp.go index 6d906c4e43..4edc3d6b4f 100644 --- a/internal/observability/exporter/otlp/otlp.go +++ b/internal/observability/exporter/otlp/otlp.go @@ -31,7 +31,7 @@ import ( "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.24.0" + semconv "go.opentelemetry.io/otel/semconv/v1.26.0" ) // Metrics and Trace attribute keys. diff --git a/internal/observability/trace/status.go b/internal/observability/trace/status.go index dc7390c61d..c10fe78d37 100644 --- a/internal/observability/trace/status.go +++ b/internal/observability/trace/status.go @@ -21,7 +21,7 @@ import ( "github.com/vdaas/vald/internal/net/grpc/codes" "github.com/vdaas/vald/internal/observability/attribute" ocodes "go.opentelemetry.io/otel/codes" - semconv "go.opentelemetry.io/otel/semconv/v1.24.0" + semconv "go.opentelemetry.io/otel/semconv/v1.26.0" ) type Attributes = []attribute.KeyValue diff --git a/k8s/gateway/gateway/lb/deployment.yaml b/k8s/gateway/gateway/lb/deployment.yaml index 185431d1de..4a93e880d5 100644 --- a/k8s/gateway/gateway/lb/deployment.yaml +++ b/k8s/gateway/gateway/lb/deployment.yaml @@ -58,6 +58,7 @@ spec: initContainers: - name: wait-for-discoverer image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e @@ -69,6 +70,7 @@ spec: done - name: wait-for-agent image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/gateway/gateway/mirror/deployment.yaml b/k8s/gateway/gateway/mirror/deployment.yaml index a1674d0acd..1cf20f0a12 100644 --- a/k8s/gateway/gateway/mirror/deployment.yaml +++ b/k8s/gateway/gateway/mirror/deployment.yaml @@ -55,6 +55,7 @@ spec: initContainers: - name: wait-for-gateway-lb image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/index/job/correction/cronjob.yaml b/k8s/index/job/correction/cronjob.yaml index 859d39fea3..4f8b009c58 100644 --- a/k8s/index/job/correction/cronjob.yaml +++ b/k8s/index/job/correction/cronjob.yaml @@ -53,6 +53,7 @@ spec: initContainers: - name: wait-for-agent image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e @@ -64,6 +65,7 @@ spec: done - name: wait-for-discoverer image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/index/job/creation/cronjob.yaml b/k8s/index/job/creation/cronjob.yaml index bde3814f8e..8e7b942741 100644 --- a/k8s/index/job/creation/cronjob.yaml +++ b/k8s/index/job/creation/cronjob.yaml @@ -53,6 +53,7 @@ spec: initContainers: - name: wait-for-agent image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e @@ -64,6 +65,7 @@ spec: done - name: wait-for-discoverer image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/index/job/save/cronjob.yaml b/k8s/index/job/save/cronjob.yaml index cb5efa6def..7a40181b60 100644 --- a/k8s/index/job/save/cronjob.yaml +++ b/k8s/index/job/save/cronjob.yaml @@ -53,6 +53,7 @@ spec: initContainers: - name: wait-for-agent image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e @@ -64,6 +65,7 @@ spec: done - name: wait-for-discoverer image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/index/operator/configmap.yaml b/k8s/index/operator/configmap.yaml index 97fe02f30b..85b98287fd 100644 --- a/k8s/index/operator/configmap.yaml +++ b/k8s/index/operator/configmap.yaml @@ -25,4 +25,4 @@ metadata: app.kubernetes.io/version: v1.7.13 app.kubernetes.io/component: index-operator data: - config.yaml: "---\nversion: v0.0.0\ntime_zone: UTC\nlogging:\n format: raw\n level: debug\n logger: glg\nserver_config:\n servers:\n - name: grpc\n host: 0.0.0.0\n port: 8081\n grpc:\n bidirectional_stream_concurrency: 20\n connection_timeout: \"\"\n enable_admin: true\n enable_reflection: true\n header_table_size: 0\n initial_conn_window_size: 2097152\n initial_window_size: 1048576\n interceptors:\n - RecoverInterceptor\n keepalive:\n max_conn_age: \"\"\n max_conn_age_grace: \"\"\n max_conn_idle: \"\"\n min_time: 10m\n permit_without_stream: false\n time: 3h\n timeout: 60s\n max_header_list_size: 0\n max_receive_message_size: 0\n max_send_message_size: 0\n read_buffer_size: 0\n write_buffer_size: 0\n mode: GRPC\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: false\n tcp_no_delay: false\n tcp_quick_ack: false\n socket_path: \"\"\n health_check_servers:\n - name: liveness\n host: 0.0.0.0\n port: 3000\n http:\n handler_timeout: \"\"\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: \"\"\n read_header_timeout: \"\"\n read_timeout: \"\"\n shutdown_duration: 5s\n write_timeout: \"\"\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: true\n tcp_no_delay: true\n tcp_quick_ack: true\n socket_path: \"\"\n - name: readiness\n host: 0.0.0.0\n port: 3001\n http:\n handler_timeout: \"\"\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: \"\"\n read_header_timeout: \"\"\n read_timeout: \"\"\n shutdown_duration: 0s\n write_timeout: \"\"\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: true\n tcp_no_delay: true\n tcp_quick_ack: true\n socket_path: \"\"\n metrics_servers:\n - name: pprof\n host: 0.0.0.0\n port: 6060\n http:\n handler_timeout: 5s\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: 2s\n read_header_timeout: 1s\n read_timeout: 1s\n shutdown_duration: 5s\n write_timeout: 1m\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: true\n tcp_defer_accept: false\n tcp_fast_open: false\n tcp_no_delay: false\n tcp_quick_ack: false\n socket_path: \"\"\n startup_strategy:\n - liveness\n - pprof\n - grpc\n - readiness\n shutdown_strategy:\n - readiness\n - grpc\n - pprof\n - liveness\n full_shutdown_duration: 600s\n tls:\n ca: /path/to/ca\n cert: /path/to/cert\n enabled: false\n insecure_skip_verify: false\n key: /path/to/key\nobservability:\n enabled: false\n otlp:\n collector_endpoint: \"\"\n trace_batch_timeout: \"1s\"\n trace_export_timeout: \"1m\"\n trace_max_export_batch_size: 1024\n trace_max_queue_size: 256\n metrics_export_interval: \"1s\"\n metrics_export_timeout: \"1m\"\n attribute:\n namespace: \"_MY_POD_NAMESPACE_\"\n pod_name: \"_MY_POD_NAME_\"\n node_name: \"_MY_NODE_NAME_\"\n service_name: \"vald-index-operator\"\n metrics:\n enable_cgo: true\n enable_goroutine: true\n enable_memory: true\n enable_version_info: true\n version_info_labels:\n - vald_version\n - server_name\n - git_commit\n - build_time\n - go_version\n - go_os\n - go_arch\n - algorithm_info\n trace:\n enabled: false\noperator:\n namespace: _MY_POD_NAMESPACE_\n agent_name: vald-agent\n agent_namespace: \n rotator_name: vald-readreplica-rotate\n target_read_replica_id_annotations_key: vald.vdaas.org/target-read-replica-id\n rotation_job_concurrency: 2\n read_replica_enabled: false\n read_replica_label_key: vald-readreplica-id\n job_templates:\n rotate:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-readreplica-rotate\n labels:\n app: vald-readreplica-rotate\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-readreplica-rotate\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-readreplica-rotate\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-readreplica-rotate\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-readreplica-rotate\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n containers:\n - name: vald-readreplica-rotate\n image: \"vdaas/vald-readreplica-rotate:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-readreplica-rotate-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n securityContext:\n allowPrivilegeEscalation: false\n capabilities:\n drop:\n - ALL\n privileged: false\n readOnlyRootFilesystem: true\n runAsGroup: 65532\n runAsNonRoot: true\n runAsUser: 65532\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n - name: TARGET_READREPLICA_ID_RELEASE_NAME_DEFAULT_VALD\n valueFrom:\n fieldRef:\n fieldPath: metadata.annotations['vald.vdaas.org/target-read-replica-id']\n securityContext:\n fsGroup: 65532\n fsGroupChangePolicy: OnRootMismatch\n runAsGroup: 65532\n runAsNonRoot: true\n runAsUser: 65532\n restartPolicy: OnFailure\n volumes:\n - name: vald-readreplica-rotate-config\n configMap:\n defaultMode: 420\n name: vald-readreplica-rotate-config\n serviceAccountName: vald-readreplica-rotate\n creation:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-creation\n labels:\n app: vald-index-creation\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-creation\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-creation\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-creation\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-creation\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-creation\n image: \"vdaas/vald-index-creation:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-creation-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-creation-config\n configMap:\n defaultMode: 420\n name: vald-index-creation-config\n save:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-save\n labels:\n app: vald-index-save\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-save\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-save\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-save\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-save\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-save\n image: \"vdaas/vald-index-save:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-save-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-save-config\n configMap:\n defaultMode: 420\n name: vald-index-save-config\n correction:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-correction\n labels:\n app: vald-index-correction\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-correction\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-correction\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-correction\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-correction\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-correction\n image: \"vdaas/vald-index-correction:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-correction-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-correction-config\n configMap:\n defaultMode: 420\n name: vald-index-correction-config\n" + config.yaml: "---\nversion: v0.0.0\ntime_zone: UTC\nlogging:\n format: raw\n level: debug\n logger: glg\nserver_config:\n servers:\n - name: grpc\n host: 0.0.0.0\n port: 8081\n grpc:\n bidirectional_stream_concurrency: 20\n connection_timeout: \"\"\n enable_admin: true\n enable_reflection: true\n header_table_size: 0\n initial_conn_window_size: 2097152\n initial_window_size: 1048576\n interceptors:\n - RecoverInterceptor\n keepalive:\n max_conn_age: \"\"\n max_conn_age_grace: \"\"\n max_conn_idle: \"\"\n min_time: 10m\n permit_without_stream: false\n time: 3h\n timeout: 60s\n max_header_list_size: 0\n max_receive_message_size: 0\n max_send_message_size: 0\n read_buffer_size: 0\n write_buffer_size: 0\n mode: GRPC\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: false\n tcp_no_delay: false\n tcp_quick_ack: false\n socket_path: \"\"\n health_check_servers:\n - name: liveness\n host: 0.0.0.0\n port: 3000\n http:\n handler_timeout: \"\"\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: \"\"\n read_header_timeout: \"\"\n read_timeout: \"\"\n shutdown_duration: 5s\n write_timeout: \"\"\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: true\n tcp_no_delay: true\n tcp_quick_ack: true\n socket_path: \"\"\n - name: readiness\n host: 0.0.0.0\n port: 3001\n http:\n handler_timeout: \"\"\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: \"\"\n read_header_timeout: \"\"\n read_timeout: \"\"\n shutdown_duration: 0s\n write_timeout: \"\"\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: false\n tcp_defer_accept: false\n tcp_fast_open: true\n tcp_no_delay: true\n tcp_quick_ack: true\n socket_path: \"\"\n metrics_servers:\n - name: pprof\n host: 0.0.0.0\n port: 6060\n http:\n handler_timeout: 5s\n http2:\n enabled: false\n handler_limit: 0\n max_concurrent_streams: 0\n max_decoder_header_table_size: 4096\n max_encoder_header_table_size: 4096\n max_read_frame_size: 0\n max_upload_buffer_per_connection: 0\n max_upload_buffer_per_stream: 0\n permit_prohibited_cipher_suites: true\n idle_timeout: 2s\n read_header_timeout: 1s\n read_timeout: 1s\n shutdown_duration: 5s\n write_timeout: 1m\n mode: REST\n network: tcp\n probe_wait_time: 3s\n restart: true\n socket_option:\n ip_recover_destination_addr: false\n ip_transparent: false\n reuse_addr: true\n reuse_port: true\n tcp_cork: true\n tcp_defer_accept: false\n tcp_fast_open: false\n tcp_no_delay: false\n tcp_quick_ack: false\n socket_path: \"\"\n startup_strategy:\n - liveness\n - pprof\n - grpc\n - readiness\n shutdown_strategy:\n - readiness\n - grpc\n - pprof\n - liveness\n full_shutdown_duration: 600s\n tls:\n ca: /path/to/ca\n cert: /path/to/cert\n enabled: false\n insecure_skip_verify: false\n key: /path/to/key\nobservability:\n enabled: false\n otlp:\n collector_endpoint: \"\"\n trace_batch_timeout: \"1s\"\n trace_export_timeout: \"1m\"\n trace_max_export_batch_size: 1024\n trace_max_queue_size: 256\n metrics_export_interval: \"1s\"\n metrics_export_timeout: \"1m\"\n attribute:\n namespace: \"_MY_POD_NAMESPACE_\"\n pod_name: \"_MY_POD_NAME_\"\n node_name: \"_MY_NODE_NAME_\"\n service_name: \"vald-index-operator\"\n metrics:\n enable_cgo: true\n enable_goroutine: true\n enable_memory: true\n enable_version_info: true\n version_info_labels:\n - vald_version\n - server_name\n - git_commit\n - build_time\n - go_version\n - go_os\n - go_arch\n - algorithm_info\n trace:\n enabled: false\noperator:\n namespace: _MY_POD_NAMESPACE_\n agent_name: vald-agent\n agent_namespace: \n rotator_name: vald-readreplica-rotate\n target_read_replica_id_annotations_key: vald.vdaas.org/target-read-replica-id\n rotation_job_concurrency: 2\n read_replica_enabled: false\n read_replica_label_key: vald-readreplica-id\n job_templates:\n rotate:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-readreplica-rotate\n labels:\n app: vald-readreplica-rotate\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-readreplica-rotate\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-readreplica-rotate\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-readreplica-rotate\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-readreplica-rotate\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n containers:\n - name: vald-readreplica-rotate\n image: \"vdaas/vald-readreplica-rotate:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-readreplica-rotate-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n securityContext:\n allowPrivilegeEscalation: false\n capabilities:\n drop:\n - ALL\n privileged: false\n readOnlyRootFilesystem: true\n runAsGroup: 65532\n runAsNonRoot: true\n runAsUser: 65532\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n - name: TARGET_READREPLICA_ID_RELEASE_NAME_DEFAULT_VALD\n valueFrom:\n fieldRef:\n fieldPath: metadata.annotations['vald.vdaas.org/target-read-replica-id']\n securityContext:\n fsGroup: 65532\n fsGroupChangePolicy: OnRootMismatch\n runAsGroup: 65532\n runAsNonRoot: true\n runAsUser: 65532\n restartPolicy: OnFailure\n volumes:\n - name: vald-readreplica-rotate-config\n configMap:\n defaultMode: 420\n name: vald-readreplica-rotate-config\n serviceAccountName: vald-readreplica-rotate\n creation:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-creation\n labels:\n app: vald-index-creation\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-creation\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-creation\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-creation\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-creation\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-creation\n image: \"vdaas/vald-index-creation:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-creation-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-creation-config\n configMap:\n defaultMode: 420\n name: vald-index-creation-config\n save:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-save\n labels:\n app: vald-index-save\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-save\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-save\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-save\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-save\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-save\n image: \"vdaas/vald-index-save:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-save-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-save-config\n configMap:\n defaultMode: 420\n name: vald-index-save-config\n correction:\n apiVersion: batch/v1\n kind: Job\n metadata:\n name: vald-index-correction\n labels:\n app: vald-index-correction\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-correction\n app.kubernetes.io/version: v1.7.13\n spec:\n ttlSecondsAfterFinished: 86400\n template:\n metadata:\n labels:\n app: vald-index-correction\n app.kubernetes.io/name: vald\n helm.sh/chart: vald-v1.7.13\n app.kubernetes.io/managed-by: Helm\n app.kubernetes.io/instance: release-name\n app.kubernetes.io/component: vald-index-correction\n app.kubernetes.io/version: v1.7.13\n annotations:\n pyroscope.io/scrape: \"true\"\n pyroscope.io/application-name: vald-index-correction\n pyroscope.io/profile-cpu-enabled: \"true\"\n pyroscope.io/profile-mem-enabled: \"true\"\n pyroscope.io/port: \"6060\"\n spec:\n initContainers:\n - name: wait-for-agent\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for agent to be ready...\"\n sleep 2;\n done\n - name: wait-for-discoverer\n image: busybox:stable\n imagePullPolicy: Always\n command:\n - /bin/sh\n - -e\n - -c\n - |\n until [ \"$(wget --server-response --spider --quiet http://vald-discoverer.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')\" == \"200\" ]; do\n echo \"waiting for discoverer to be ready...\"\n sleep 2;\n done\n containers:\n - name: vald-index-correction\n image: \"vdaas/vald-index-correction:nightly\"\n imagePullPolicy: Always\n volumeMounts:\n - name: vald-index-correction-config\n mountPath: /etc/server/\n livenessProbe:\n failureThreshold: 2\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n readinessProbe:\n failureThreshold: 2\n httpGet:\n path: /readiness\n port: readiness\n scheme: HTTP\n initialDelaySeconds: 10\n periodSeconds: 3\n successThreshold: 1\n timeoutSeconds: 2\n startupProbe:\n failureThreshold: 30\n httpGet:\n path: /liveness\n port: liveness\n scheme: HTTP\n initialDelaySeconds: 5\n periodSeconds: 5\n successThreshold: 1\n timeoutSeconds: 2\n ports:\n - name: liveness\n protocol: TCP\n containerPort: 3000\n - name: readiness\n protocol: TCP\n containerPort: 3001\n - name: grpc\n protocol: TCP\n containerPort: 8081\n - name: pprof\n protocol: TCP\n containerPort: 6060\n env:\n - name: MY_NODE_NAME\n valueFrom:\n fieldRef:\n fieldPath: spec.nodeName\n - name: MY_POD_NAME\n valueFrom:\n fieldRef:\n fieldPath: metadata.name\n - name: MY_POD_NAMESPACE\n valueFrom:\n fieldRef:\n fieldPath: metadata.namespace\n restartPolicy: OnFailure\n volumes:\n - name: vald-index-correction-config\n configMap:\n defaultMode: 420\n name: vald-index-correction-config\n" diff --git a/k8s/index/operator/deployment.yaml b/k8s/index/operator/deployment.yaml index ccd69b7125..643e02e9a8 100644 --- a/k8s/index/operator/deployment.yaml +++ b/k8s/index/operator/deployment.yaml @@ -46,7 +46,7 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: operator annotations: - checksum/configmap: c9c0a97792fa0594fb6ae3946f4d7294a9e2fbc782b48b82272db25754ddc5ff + checksum/configmap: ebb81f8440c4bef18e392f9dcc1023bb0fb52fff599e656767a0c8ac6e904a42 pyroscope.io/scrape: "true" pyroscope.io/application-name: vald-index-operator pyroscope.io/profile-cpu-enabled: "true" diff --git a/k8s/manager/index/deployment.yaml b/k8s/manager/index/deployment.yaml index a56659a1c4..b9b217bf1b 100644 --- a/k8s/manager/index/deployment.yaml +++ b/k8s/manager/index/deployment.yaml @@ -59,6 +59,7 @@ spec: initContainers: - name: wait-for-agent image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e @@ -70,6 +71,7 @@ spec: done - name: wait-for-discoverer image: busybox:stable + imagePullPolicy: Always command: - /bin/sh - -e diff --git a/k8s/metrics/loki/loki.yaml b/k8s/metrics/loki/loki.yaml index 6bac578c12..e5eba17f47 100644 --- a/k8s/metrics/loki/loki.yaml +++ b/k8s/metrics/loki/loki.yaml @@ -31,7 +31,7 @@ spec: - args: - -config.file=/etc/loki/loki.yaml image: grafana/loki:2.0.0 - imagePullPolicy: IfNotPresent + imagePullPolicy: Always livenessProbe: httpGet: path: /ready diff --git a/k8s/metrics/loki/promtail.yaml b/k8s/metrics/loki/promtail.yaml index cfbf993c9d..39607dbc45 100644 --- a/k8s/metrics/loki/promtail.yaml +++ b/k8s/metrics/loki/promtail.yaml @@ -40,7 +40,7 @@ spec: fieldRef: fieldPath: spec.nodeName image: grafana/promtail:1.5.0 - imagePullPolicy: IfNotPresent + imagePullPolicy: Always name: promtail ports: - containerPort: 80 diff --git a/k8s/metrics/profefe/cronjob.yaml b/k8s/metrics/profefe/cronjob.yaml index abc703fe07..959bb5a5cf 100644 --- a/k8s/metrics/profefe/cronjob.yaml +++ b/k8s/metrics/profefe/cronjob.yaml @@ -30,7 +30,7 @@ spec: - --profefe-hostport - http://profefe:10100 image: profefe/kprofefe:latest - imagePullPolicy: IfNotPresent + imagePullPolicy: Always name: kprofefe restartPolicy: Never serviceAccount: kprofefe diff --git a/k8s/metrics/pyroscope/base/deployment.yaml b/k8s/metrics/pyroscope/base/deployment.yaml index e1cb0879b1..6fa0a03314 100644 --- a/k8s/metrics/pyroscope/base/deployment.yaml +++ b/k8s/metrics/pyroscope/base/deployment.yaml @@ -48,7 +48,7 @@ spec: - "/tmp/config.yaml" securityContext: {} image: "pyroscope/pyroscope:latest" - imagePullPolicy: IfNotPresent + imagePullPolicy: Always ports: - name: api containerPort: 4040 diff --git a/k8s/metrics/tempo/tempo.yaml b/k8s/metrics/tempo/tempo.yaml index d88bb1d8ef..7e6fad25af 100644 --- a/k8s/metrics/tempo/tempo.yaml +++ b/k8s/metrics/tempo/tempo.yaml @@ -73,7 +73,7 @@ spec: - name: JAEGER_AGENT_PORT value: "" image: grafana/tempo:latest - imagePullPolicy: IfNotPresent + imagePullPolicy: Always name: tempo ports: - containerPort: 3100 @@ -91,7 +91,7 @@ spec: - name: JAEGER_AGENT_PORT value: "" image: grafana/tempo-query:latest - imagePullPolicy: IfNotPresent + imagePullPolicy: Always name: tempo-query ports: - containerPort: 16686 diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 9be8b49b26..79d4858e00 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -24,7 +24,7 @@ dependencies = [ "algorithm", "anyhow", "cargo", - "prost 0.13.2", + "prost 0.13.3", "prost-types", "proto", "tokio", @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "arc-swap" @@ -210,19 +210,19 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 0.1.2", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", ] [[package]] name = "axum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +checksum = "8f43644eed690f5374f1af436ecd6aea01cd201f6fbdf0178adaf6907afb2cec" dependencies = [ "async-trait", - "axum-core 0.4.3", + "axum-core 0.4.4", "bytes", "futures-util", "http 1.1.0", @@ -237,7 +237,7 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 1.0.1", - "tower", + "tower 0.5.1", "tower-layer", "tower-service", ] @@ -261,9 +261,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "5e6b8ba012a258d63c9adfa28b9ddcf66149da6f986c5b5452e629d5ee64bf00" dependencies = [ "async-trait", "bytes", @@ -274,7 +274,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", ] @@ -382,9 +382,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "bytesize" @@ -565,9 +565,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.18" +version = "1.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" +checksum = "07b1695e2c7e8fc85310cde85aeaab7e3097f593c91d209d3f9df76c928100f0" dependencies = [ "jobserver", "libc", @@ -582,18 +582,18 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.17" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -784,9 +784,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.75+curl-8.10.0" +version = "0.4.76+curl-8.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4fd752d337342e4314717c0d9b6586b059a120c80029ebe4d49b11fec7875e" +checksum = "00462dbe9cbb9344e1b2be34d9094d74e3b8aac59a883495b335eafd02e25120" dependencies = [ "cc", "libc", @@ -2263,7 +2263,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -2597,9 +2597,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -3135,12 +3135,12 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2ecbe40f08db5c006b5764a2645f7f3f141ce756412ac9e1dd6087e6d32995" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", - "prost-derive 0.13.2", + "prost-derive 0.13.3", ] [[package]] @@ -3158,9 +3158,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf0c195eebb4af52c752bec4f52f645da98b6e92077a04110c7f349477ae5ac" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", "itertools 0.13.0", @@ -3171,11 +3171,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60caa6738c7369b940c3d49246a8d1749323674c65cb13010134f5c9bad5b519" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ - "prost 0.13.2", + "prost 0.13.3", ] [[package]] @@ -3183,7 +3183,7 @@ name = "proto" version = "0.1.0" dependencies = [ "futures-core", - "prost 0.13.2", + "prost 0.13.3", "prost-types", "tonic 0.12.2", "tonic-types", @@ -3452,9 +3452,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -3815,18 +3815,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -3978,9 +3978,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf" dependencies = [ "indexmap 2.5.0", "serde", @@ -4010,7 +4010,7 @@ dependencies = [ "prost 0.12.6", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -4024,7 +4024,7 @@ checksum = "c6f6ba989e4b2c58ae83d862d3a3e27690b6e3ae630d0deb59f3697f32aa88ad" dependencies = [ "async-stream", "async-trait", - "axum 0.7.5", + "axum 0.7.6", "base64 0.22.1", "bytes", "h2 0.4.6", @@ -4036,11 +4036,11 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.2", + "prost 0.13.3", "socket2", "tokio", "tokio-stream", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", "tracing", @@ -4052,7 +4052,7 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d967793411bc1a5392accf4731114295f0fd122865d22cde46a8584b03402b2" dependencies = [ - "prost 0.13.2", + "prost 0.13.3", "prost-types", "tonic 0.12.2", ] @@ -4077,6 +4077,20 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" version = "0.3.3" @@ -4214,24 +4228,24 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" diff --git a/tests/e2e/operation/multi.go b/tests/e2e/operation/multi.go index 0ebacc5ea0..890f24c743 100644 --- a/tests/e2e/operation/multi.go +++ b/tests/e2e/operation/multi.go @@ -24,7 +24,7 @@ import ( ) func (c *client) MultiSearch(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -60,7 +60,7 @@ func (c *client) MultiSearch(t *testing.T, ctx context.Context, ds Dataset) erro } func (c *client) MultiSearchByID(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -96,7 +96,7 @@ func (c *client) MultiSearchByID(t *testing.T, ctx context.Context, ds Dataset) } func (c *client) MultiLinearSearch(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -130,7 +130,7 @@ func (c *client) MultiLinearSearch(t *testing.T, ctx context.Context, ds Dataset } func (c *client) MultiLinearSearchByID(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -164,7 +164,7 @@ func (c *client) MultiLinearSearchByID(t *testing.T, ctx context.Context, ds Dat } func (c *client) MultiInsert(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -201,7 +201,7 @@ func (c *client) MultiInsert(t *testing.T, ctx context.Context, ds Dataset) erro } func (c *client) MultiUpdate(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -241,7 +241,7 @@ func (c *client) MultiUpdate(t *testing.T, ctx context.Context, ds Dataset) erro } func (c *client) MultiUpsert(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -281,7 +281,7 @@ func (c *client) MultiUpsert(t *testing.T, ctx context.Context, ds Dataset) erro } func (c *client) MultiRemove(t *testing.T, ctx context.Context, ds Dataset) error { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } diff --git a/tests/e2e/operation/operation.go b/tests/e2e/operation/operation.go index 62e9a794d0..9ee24d79e9 100644 --- a/tests/e2e/operation/operation.go +++ b/tests/e2e/operation/operation.go @@ -150,7 +150,7 @@ func New(host string, port int) (Client, error) { } func (c *client) CreateIndex(t *testing.T, ctx context.Context) error { - client, err := c.getAgentClient(ctx) + client, err := c.getAgentClient() if err != nil { return err } @@ -163,7 +163,7 @@ func (c *client) CreateIndex(t *testing.T, ctx context.Context) error { } func (c *client) SaveIndex(t *testing.T, ctx context.Context) error { - client, err := c.getAgentClient(ctx) + client, err := c.getAgentClient() if err != nil { return err } @@ -174,7 +174,7 @@ func (c *client) SaveIndex(t *testing.T, ctx context.Context) error { } func (c *client) IndexInfo(t *testing.T, ctx context.Context) (*payload.Info_Index_Count, error) { - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return nil, err } @@ -182,9 +182,8 @@ func (c *client) IndexInfo(t *testing.T, ctx context.Context) (*payload.Info_Ind return client.IndexInfo(ctx, &payload.Empty{}) } -func (c *client) getGRPCConn(ctx context.Context) (*grpc.ClientConn, error) { - return grpc.DialContext( - ctx, +func (c *client) getGRPCConn() (*grpc.ClientConn, error) { + return grpc.NewClient( c.host+":"+strconv.Itoa(c.port), grpc.WithInsecure(), grpc.WithKeepaliveParams( @@ -197,8 +196,8 @@ func (c *client) getGRPCConn(ctx context.Context) (*grpc.ClientConn, error) { ) } -func (c *client) getClient(ctx context.Context) (vald.Client, error) { - conn, err := c.getGRPCConn(ctx) +func (c *client) getClient() (vald.Client, error) { + conn, err := c.getGRPCConn() if err != nil { return nil, err } @@ -206,8 +205,8 @@ func (c *client) getClient(ctx context.Context) (vald.Client, error) { return vald.NewValdClient(conn), nil } -func (c *client) getAgentClient(ctx context.Context) (core.AgentClient, error) { - conn, err := c.getGRPCConn(ctx) +func (c *client) getAgentClient() (core.AgentClient, error) { + conn, err := c.getGRPCConn() if err != nil { return nil, err } diff --git a/tests/e2e/operation/stream.go b/tests/e2e/operation/stream.go index f606c67f1a..85861399ee 100644 --- a/tests/e2e/operation/stream.go +++ b/tests/e2e/operation/stream.go @@ -93,7 +93,7 @@ func (c *client) SearchWithParameters( ) (rerr error) { t.Log("search operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -293,7 +293,7 @@ func (c *client) SearchByIDWithParameters( ) (rerr error) { t.Log("searchByID operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -413,7 +413,7 @@ func (c *client) LinearSearchWithParameters( ) (rerr error) { t.Log("linearsearch operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -531,7 +531,7 @@ func (c *client) LinearSearchByIDWithParameters( ) (rerr error) { t.Log("linearsearchByID operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -637,7 +637,7 @@ func (c *client) InsertWithParameters( ) (rerr error) { t.Log("insert operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -740,7 +740,7 @@ func (c *client) UpdateWithParameters( ) (rerr error) { t.Log("update operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -844,7 +844,7 @@ func (c *client) UpsertWithParameters( ) (rerr error) { t.Log("upsert operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -946,7 +946,7 @@ func (c *client) RemoveWithParameters( ) (rerr error) { t.Log("remove operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -1029,7 +1029,7 @@ func (c *client) RemoveWithParameters( func (c *client) Flush(t *testing.T, ctx context.Context) error { t.Log("flush operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -1047,7 +1047,7 @@ func (c *client) Flush(t *testing.T, ctx context.Context) error { func (c *client) RemoveByTimestamp(t *testing.T, ctx context.Context, timestamp int64) error { t.Log("removeByTimestamp operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -1074,7 +1074,7 @@ func (c *client) RemoveByTimestamp(t *testing.T, ctx context.Context, timestamp func (c *client) Exists(t *testing.T, ctx context.Context, id string) error { t.Log("exists operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -1096,7 +1096,7 @@ func (c *client) Exists(t *testing.T, ctx context.Context, id string) error { func (c *client) GetObject(t *testing.T, ctx context.Context, ds Dataset) (rerr error) { t.Log("getObject operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } @@ -1186,7 +1186,7 @@ func (c *client) GetObject(t *testing.T, ctx context.Context, ds Dataset) (rerr func (c *client) StreamListObject(t *testing.T, ctx context.Context, ds Dataset) error { t.Log("StreamListObject operation started") - client, err := c.getClient(ctx) + client, err := c.getClient() if err != nil { return err } diff --git a/tests/e2e/performance/max_vector_dim_test.go b/tests/e2e/performance/max_vector_dim_test.go index 9f4a361231..386dea3def 100644 --- a/tests/e2e/performance/max_vector_dim_test.go +++ b/tests/e2e/performance/max_vector_dim_test.go @@ -125,9 +125,7 @@ func TestE2EInsertOnlyWithOneVectorAndSearch(t *testing.T) { if dim > algorithm.MaximumVectorDimensionSize { t.Fatalf("Invalid argument: dimension should be equal or under than " + strconv.Itoa(algorithm.MaximumVectorDimensionSize) + ". set dim was " + strconv.Itoa(dim)) } - ctx := context.Background() - conn, err := grpc.DialContext( - ctx, + conn, err := grpc.NewClient( net.JoinHostPort(host, uint16(port)), grpc.WithInsecure(), grpc.WithKeepaliveParams( @@ -155,6 +153,7 @@ func TestE2EInsertOnlyWithOneVectorAndSearch(t *testing.T) { SkipStrictExistCheck: false, }, } + ctx := context.Background() _, err = cli.Insert(ctx, req) if err != nil { st, _ := status.FromError(err) diff --git a/versions/CHAOS_MESH_VERSION b/versions/CHAOS_MESH_VERSION index 2714f5313a..24ba9a38de 100644 --- a/versions/CHAOS_MESH_VERSION +++ b/versions/CHAOS_MESH_VERSION @@ -1 +1 @@ -2.6.4 +2.7.0 diff --git a/versions/DOCKER_VERSION b/versions/DOCKER_VERSION index 12919d2181..88ad431800 100644 --- a/versions/DOCKER_VERSION +++ b/versions/DOCKER_VERSION @@ -1 +1 @@ -v27.2.1 +v27.3.1 diff --git a/versions/HELM_VERSION b/versions/HELM_VERSION index 3490df664c..7f20715171 100644 --- a/versions/HELM_VERSION +++ b/versions/HELM_VERSION @@ -1 +1 @@ -v3.16.0 +v3.16.1 diff --git a/versions/K3S_VERSION b/versions/K3S_VERSION index e777e8936c..1ab37e2e86 100644 --- a/versions/K3S_VERSION +++ b/versions/K3S_VERSION @@ -1 +1 @@ -v1.30.2-k3s2 +v1.31.1-k3s1 diff --git a/versions/KUBECTL_VERSION b/versions/KUBECTL_VERSION index 1d37e1e347..6f986544fe 100644 --- a/versions/KUBECTL_VERSION +++ b/versions/KUBECTL_VERSION @@ -1 +1 @@ -v1.31.0 \ No newline at end of file +v1.31.1 \ No newline at end of file diff --git a/versions/OPERATOR_SDK_VERSION b/versions/OPERATOR_SDK_VERSION index 2f2ce0df61..5281a274b3 100644 --- a/versions/OPERATOR_SDK_VERSION +++ b/versions/OPERATOR_SDK_VERSION @@ -1 +1 @@ -v1.33 +v1.37 diff --git a/versions/PROMETHEUS_STACK_VERSION b/versions/PROMETHEUS_STACK_VERSION index 3f9b36de51..6fd2454de6 100644 --- a/versions/PROMETHEUS_STACK_VERSION +++ b/versions/PROMETHEUS_STACK_VERSION @@ -1 +1 @@ -62.6.0 +62.7.0 diff --git a/versions/PROTOBUF_VERSION b/versions/PROTOBUF_VERSION index ed15377162..2862be46f0 100644 --- a/versions/PROTOBUF_VERSION +++ b/versions/PROTOBUF_VERSION @@ -1 +1 @@ -28.1 +28.2 diff --git a/versions/REVIEWDOG_VERSION b/versions/REVIEWDOG_VERSION index 2c80271d5a..9c6ae028f1 100644 --- a/versions/REVIEWDOG_VERSION +++ b/versions/REVIEWDOG_VERSION @@ -1 +1 @@ -v0.20.1 +v0.20.2 diff --git a/versions/actions/ACTIONS_SETUP_NODE b/versions/actions/ACTIONS_SETUP_NODE index c4e41f9459..c5106e6d13 100644 --- a/versions/actions/ACTIONS_SETUP_NODE +++ b/versions/actions/ACTIONS_SETUP_NODE @@ -1 +1 @@ -4.0.3 +4.0.4 diff --git a/versions/actions/GITHUB_CODEQL_ACTION_ANALYZE b/versions/actions/GITHUB_CODEQL_ACTION_ANALYZE index 086b153eb6..ef0f38abe1 100644 --- a/versions/actions/GITHUB_CODEQL_ACTION_ANALYZE +++ b/versions/actions/GITHUB_CODEQL_ACTION_ANALYZE @@ -1 +1 @@ -2.18.4 +2.19.0 diff --git a/versions/actions/GITHUB_CODEQL_ACTION_AUTOBUILD b/versions/actions/GITHUB_CODEQL_ACTION_AUTOBUILD index 086b153eb6..ef0f38abe1 100644 --- a/versions/actions/GITHUB_CODEQL_ACTION_AUTOBUILD +++ b/versions/actions/GITHUB_CODEQL_ACTION_AUTOBUILD @@ -1 +1 @@ -2.18.4 +2.19.0 diff --git a/versions/actions/GITHUB_CODEQL_ACTION_INIT b/versions/actions/GITHUB_CODEQL_ACTION_INIT index 086b153eb6..ef0f38abe1 100644 --- a/versions/actions/GITHUB_CODEQL_ACTION_INIT +++ b/versions/actions/GITHUB_CODEQL_ACTION_INIT @@ -1 +1 @@ -2.18.4 +2.19.0 diff --git a/versions/actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF b/versions/actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF index 086b153eb6..ef0f38abe1 100644 --- a/versions/actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF +++ b/versions/actions/GITHUB_CODEQL_ACTION_UPLOAD_SARIF @@ -1 +1 @@ -2.18.4 +2.19.0 diff --git a/versions/actions/GITHUB_ISSUE_METRICS b/versions/actions/GITHUB_ISSUE_METRICS index a5c4c76339..afad818663 100644 --- a/versions/actions/GITHUB_ISSUE_METRICS +++ b/versions/actions/GITHUB_ISSUE_METRICS @@ -1 +1 @@ -3.9.0 +3.11.0 diff --git a/versions/actions/PETER_EVANS_CREATE_PULL_REQUEST b/versions/actions/PETER_EVANS_CREATE_PULL_REQUEST index a50da181e9..2be8aeb6b1 100644 --- a/versions/actions/PETER_EVANS_CREATE_PULL_REQUEST +++ b/versions/actions/PETER_EVANS_CREATE_PULL_REQUEST @@ -1 +1 @@ -7.0.3 +7.0.5