diff --git a/.gitfiles b/.gitfiles
index 2dd023e7da4..91d38e7d074 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 58d750ba12d..55143b8fda4 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 94536a7445b..8e7fc2d081d 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 cc053c521a1..a534bf495f4 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 e55f5e975ef..e7f3c2a26bc 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,32 @@ $(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: $(USR_LOCAL)/include/usearch.h
+$(USR_LOCAL)/include/usearch.h:
+ 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_c.a
+ cp $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build/libusearch_static_c.a $(LIB_PATH)/libusearch_static_c.a
+ cp $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/build/libusearch_c.so $(LIB_PATH)/libusearch_c.so
+ cp $(TEMP_DIR)/usearch-$(USEARCH_VERSION)/c/usearch.h $(USR_LOCAL)/include/usearch.h
+ rm -rf $(TEMP_DIR)/usearch-$(USEARCH_VERSION)
ldconfig
-endif
.PHONY: cmake/install
## install CMAKE
@@ -710,7 +723,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 f60d8f002fb..3e7fb5da060 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/charts/vald/README.md b/charts/vald/README.md
index 3f574e605a2..377f8954572 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 2edc19e03cd..6de2c34bb5f 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 02f2bb634aa..8df795ee670 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/dev/Dockerfile b/dockers/dev/Dockerfile
index 8ac6845f435..a45fcbbe0f3 100644
--- a/dockers/dev/Dockerfile
+++ b/dockers/dev/Dockerfile
@@ -142,7 +142,6 @@ RUN --mount=type=bind,target=.,rw \
&& make telepresence/install \
&& make ngt/install \
&& make faiss/install \
- && make usearch/install \
&& rm -rf ${GOPATH}/src/github.com/${ORG}/${REPO}/*
# skipcq: DOK-DL3002
USER root:root
diff --git a/docs/tutorial/get-started-with-faiss-agent.md b/docs/tutorial/get-started-with-faiss-agent.md
index 2abad816da0..e47e3b1659b 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 5f14077cffc..203379f444d 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 669e03f2853..13238002f4c 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 578910b77f8..3abac4d34d1 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 b2d864b093d..05f7673bfc0 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 77cf7eee483..d3eaa9d9bc3 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 198e9840840..89d400e897a 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 8fd1e3660a1..61bfcf517b5 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 c323a1e3ba5..f8a051d86e4 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 8e8f4b074ea..3bd03181662 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 1821334bac8..1e730fc5859 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.37
+ github.com/aws/aws-sdk-go-v2/credentials => github.com/aws/aws-sdk-go-v2/credentials v1.17.35
+ 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.23
+ 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.1
+ github.com/aws/aws-sdk-go-v2/service/s3 => github.com/aws/aws-sdk-go-v2/service/s3 v1.63.1
+ github.com/aws/aws-sdk-go-v2/service/secretsmanager => github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.33.1
+ github.com/aws/aws-sdk-go-v2/service/sns => github.com/aws/aws-sdk-go-v2/service/sns v1.32.1
+ github.com/aws/aws-sdk-go-v2/service/sqs => github.com/aws/aws-sdk-go-v2/service/sqs v1.35.1
+ github.com/aws/aws-sdk-go-v2/service/ssm => github.com/aws/aws-sdk-go-v2/service/ssm v1.54.1
+ github.com/aws/aws-sdk-go-v2/service/sso => github.com/aws/aws-sdk-go-v2/service/sso v1.23.1
+ github.com/aws/aws-sdk-go-v2/service/sts => github.com/aws/aws-sdk-go-v2/service/sts v1.31.1
+ 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.11-0.20240923131516-13a1ce6df1e0
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
@@ -247,7 +247,7 @@ replace (
github.com/quasilyte/gogrep => github.com/quasilyte/gogrep v0.5.0
github.com/quasilyte/stdinfo => github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567
github.com/rogpeppe/fastuuid => github.com/rogpeppe/fastuuid v1.2.0
- github.com/rogpeppe/go-internal => github.com/rogpeppe/go-internal v1.12.0
+ github.com/rogpeppe/go-internal => github.com/rogpeppe/go-internal v1.13.1
github.com/rs/xid => github.com/rs/xid v1.6.0
github.com/rs/zerolog => github.com/rs/zerolog v1.33.0
github.com/russross/blackfriday/v2 => github.com/russross/blackfriday/v2 v2.1.0
@@ -289,7 +289,7 @@ replace (
go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp v1.3.1
go.starlark.net => go.starlark.net v0.0.0-20240725214946-42030a7cedce
go.uber.org/atomic => go.uber.org/atomic v1.11.0
- go.uber.org/automaxprocs => go.uber.org/automaxprocs v1.5.3
+ go.uber.org/automaxprocs => go.uber.org/automaxprocs v1.6.0
go.uber.org/goleak => go.uber.org/goleak v1.3.0
go.uber.org/multierr => go.uber.org/multierr v1.11.0
go.uber.org/zap => go.uber.org/zap v1.27.0
@@ -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 85b80572f03..f913f0e01f2 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.37 h1:xaoIwzHVuRWRHFI0jhgEdEGc8xE1l91KaeRDsWEIncU=
+github.com/aws/aws-sdk-go-v2/config v1.27.37/go.mod h1:S2e3ax9/8KnMSyRVNd3sWTKs+1clJ2f1U6nE0lpvQRg=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.35 h1:7QknrZhYySEB1lEXJxGAmuD5sWwys5ZXNr4m5oEz0IE=
+github.com/aws/aws-sdk-go-v2/credentials v1.17.35/go.mod h1:8Vy4kk7at4aPSmibr7K+nLTzG6qUQAUO4tW49fzUV4E=
+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.23 h1:DIheXDgLzIUyZNB9BKM+9OGbvwbxitX0N6b6qNbMmNU=
+github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.23/go.mod h1:5QQZmD2ttfnDs7GzIjdQTcF2fo27mecoEIL63H8IDBE=
+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.1 h1:TR96r56VwELV0qguNFCuz+/bEpRfnR3ZsS9/IG05C7Q=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.63.1/go.mod h1:NLTqRLe3pUNu3nTEHI6XlHLKYmc8fbHUdMxAB6+s41Q=
+github.com/aws/aws-sdk-go-v2/service/sso v1.23.1 h1:2jrVsMHqdLD1+PA4BA6Nh1eZp0Gsy3mFSB5MxDvcJtU=
+github.com/aws/aws-sdk-go-v2/service/sso v1.23.1/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.1 h1:8K0UNOkZiK9Uh3HIF6Bx0rcNCftqGCeKmOaR7Gp5BSo=
+github.com/aws/aws-sdk-go-v2/service/sts v1.31.1/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.11-0.20240923131516-13a1ce6df1e0 h1:YNGbURX+AQoK0BmPSNoJrHLjfNQw8NvNOqLshq3hcpo=
+github.com/klauspost/compress v1.17.11-0.20240923131516-13a1ce6df1e0/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=
@@ -602,8 +602,8 @@ github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
-github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
-github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk=
github.com/schollz/progressbar/v2 v2.15.0/go.mod h1:UdPq3prGkfQ7MOzZKlDRpYKcFqEMczbD7YmbPgpzKMI=
@@ -684,8 +684,8 @@ go.starlark.net v0.0.0-20240725214946-42030a7cedce h1:YyGqCjZtGZJ+mRPaenEiB87afE
go.starlark.net v0.0.0-20240725214946-42030a7cedce/go.mod h1:YKMCv9b1WrfWmeqdV5MAuEHWsu5iC+fe6kYl2sQjdI8=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
-go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
-go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
+go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
+go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -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 bf0d575c285..3cd50d9f815 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
@@ -674,8 +674,7 @@ func main() {
Preprocess: append(devContainerPreprocess,
append(ciContainerPreprocess,
ngtPreprocess,
- faissPreprocess,
- usearchPreprocess)...),
+ faissPreprocess)...),
},
"vald-buildbase": {
AppName: "buildbase",
diff --git a/internal/core/algorithm/usearch/usearch_test.go b/internal/core/algorithm/usearch/usearch_test.go
index 8ec0f3941e0..bcd03fee5bf 100644
--- a/internal/core/algorithm/usearch/usearch_test.go
+++ b/internal/core/algorithm/usearch/usearch_test.go
@@ -147,34 +147,6 @@ func Test_usearch_Search(t *testing.T) {
return u, nil
}
tests := []test{
- {
- name: "return vector id after the same vector inserted",
- args: args{
- q: []float32{0, 1, 2, 3, 4, 5, 6, 7, 8},
- k: 5,
- },
- fields: fields{
- idxPath: idxTempDir(t),
- quantizationType: "F32",
- metricType: "cosine",
- dimension: 9,
- connectivity: 0,
- expansionAdd: 0,
- expansionSearch: 0,
- multi: false,
- },
- createFunc: func(t *testing.T, fields fields) (Usearch, error) {
- t.Helper()
- vec := []float32{0, 1, 2, 3, 4, 5, 6, 7, 8}
-
- return insertCreateFunc(t, fields, [][]float32{vec}, 1)
- },
- want: want{
- want: []algorithm.SearchResult{
- {ID: uint32(1), Distance: 0},
- },
- },
- },
{
name: "resturn vector id after the nearby vector inserted",
args: args{
@@ -279,8 +251,8 @@ func Test_usearch_Search(t *testing.T) {
},
want: want{
want: []algorithm.SearchResult{
- {ID: uint32(9), Distance: 2.384185791015625e-07},
- {ID: uint32(10), Distance: 5.364418029785156e-07},
+ {ID: uint32(10), Distance: 2.384185791015625e-07},
+ {ID: uint32(9), Distance: 5.364418029785156e-07},
{ID: uint32(6), Distance: 3},
{ID: uint32(4), Distance: 3},
{ID: uint32(2), Distance: 3},
diff --git a/internal/net/grpc/client.go b/internal/net/grpc/client.go
index de6b1ab2855..d5aef913ec0 100644
--- a/internal/net/grpc/client.go
+++ b/internal/net/grpc/client.go
@@ -167,7 +167,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 ad84b6c0b2e..ad042f38bad 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 9de30d1aaae..802960ddd31 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 e0c3d347767..0980906c495 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 c3d2b5528f6..3e9a7b96a13 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 cfd0ff085fa..958e17440d8 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,457 @@ 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))
+ visited := make(map[string]bool, 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 && !visited[d.String()] {
+ visited[d.String()] = true
+ 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 && !visited[e.String()] {
+ visited[e.String()] = true
+ 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 && !visited[b.String()] {
+ visited[b.String()] = true
+ 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 && !visited[b.String()] {
+ visited[b.String()] = true
+ 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 && !visited[l.String()] {
+ visited[l.String()] = true
+ 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 && !visited[p.String()] {
+ visited[p.String()] = true
+ 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 && !visited[p.String()] {
+ visited[p.String()] = true
+ 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 && !visited[h.String()] {
+ visited[h.String()] = true
+ 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 && !visited[h.String()] {
+ visited[h.String()] = true
+ 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 && !visited[q.String()] {
+ visited[q.String()] = true
+ 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 && !visited[q.String()] {
+ visited[q.String()] = true
+ 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 && !visited[r.String()] {
+ visited[r.String()] = true
+ 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 && !visited[r.String()] {
+ visited[r.String()] = true
+ 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 && !visited[r.String()] {
+ visited[r.String()] = true
+ 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 +714,67 @@ 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 {
+ if msgs != nil {
+ sst, err := status.New(st.Code(), st.Message()).WithDetails(msgs...)
+ if err == nil {
st = sst
- } else {
- log.Warn("failed to set error details:", err)
}
}
-
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 6d906c4e43d..4edc3d6b4f1 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 dc7390c61d4..c10fe78d37e 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/ing.yaml b/k8s/gateway/gateway/ing.yaml
index 4851f24477b..6214517e3e2 100644
--- a/k8s/gateway/gateway/ing.yaml
+++ b/k8s/gateway/gateway/ing.yaml
@@ -38,7 +38,22 @@ spec:
- host: lb.gateway.vald.vdaas.org
http:
paths:
- - backend:
+ - path: "/"
+ backend:
+ service:
+ name: vald-lb-gateway
+ port:
+ name: grpc
+ pathType: ImplementationSpecific
+ - path: "/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo"
+ backend:
+ service:
+ name: vald-lb-gateway
+ port:
+ name: grpc
+ pathType: ImplementationSpecific
+ - path: "/grpc.reflection.v1.ServerReflection/ServerReflectionInfo"
+ backend:
service:
name: vald-lb-gateway
port:
diff --git a/k8s/gateway/gateway/lb/deployment.yaml b/k8s/gateway/gateway/lb/deployment.yaml
index 185431d1de9..4a93e880d56 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 a1674d0acd7..1cf20f0a12e 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 859d39fea3c..4f8b009c584 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 bde3814f8e0..8e7b942741e 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 cb5efa6def6..7a40181b600 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 97fe02f30b7..85b98287fd2 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 ccd69b71256..643e02e9a83 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 a56659a1c45..b9b217bf1b2 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 6bac578c128..e5eba17f47c 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 cfbf993c9da..39607dbc459 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 abc703fe07a..959bb5a5cf9 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 e1cb0879b1f..6fa0a03314a 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 d88bb1d8ef0..7e6fad25af1 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/pkg/index/job/save/service/indexer_test.go b/pkg/index/job/save/service/indexer_test.go
index b15437a1552..b1d98816256 100644
--- a/pkg/index/job/save/service/indexer_test.go
+++ b/pkg/index/job/save/service/indexer_test.go
@@ -53,7 +53,7 @@ func Test_index_Start(t *testing.T) {
}
defaultCheckFunc := func(w want, err error) error {
if !errors.Is(err, w.err) {
- return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err)
+ return errors.Errorf("got_error: \"%s\",\n\t\t\t\twant: \"%s\"", err.Error(), w.err.Error())
}
return nil
}
diff --git a/rust/Cargo.lock b/rust/Cargo.lock
index 9be8b49b26e..adfed6d1f0f 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",
]
@@ -3077,9 +3077,9 @@ dependencies = [
[[package]]
name = "pkg-config"
-version = "0.3.30"
+version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
[[package]]
name = "powerfmt"
@@ -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 0ebacc5ea09..890f24c7431 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 62e9a794d03..9ee24d79e91 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 f606c67f1a5..85861399ee2 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 9f4a3612312..386dea3defb 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 2714f5313ae..24ba9a38de6 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 12919d21817..88ad4318008 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 3490df664c7..7f207151713 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 e777e8936cb..1ab37e2e868 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 1d37e1e3475..6f986544fec 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 2f2ce0df61a..5281a274b3e 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 3f9b36de511..6fd2454de6b 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 ed153771624..2862be46f01 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 2c80271d5ae..9c6ae028f1a 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 c4e41f94594..c5106e6d139 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 086b153eb67..ef0f38abe16 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 086b153eb67..ef0f38abe16 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 086b153eb67..ef0f38abe16 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 086b153eb67..ef0f38abe16 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 a5c4c763394..afad818663d 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 a50da181e9b..2be8aeb6b14 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