diff --git a/.github/workflows/e2e-chaos.yaml b/.github/workflows/e2e-chaos.yaml index 5734508c0f..73223e08f5 100644 --- a/.github/workflows/e2e-chaos.yaml +++ b/.github/workflows/e2e-chaos.yaml @@ -82,8 +82,8 @@ jobs: wait_for_selector: app=vald-lb-gateway - name: deploy Chaos Mesh run: | - make kubectl/install - curl -sSL https://mirrors.chaos-mesh.org/v2.3.0/install.sh | bash -s -- --k3s + make kubectl/install/linux/v1.23.6 + curl -sSL https://mirrors.chaos-mesh.org/v2.4.1/install.sh | bash -s -- --k3s helm install \ --set podChaos.failure.enabled=true \ vald-chaos-test tests/chaos/chart @@ -176,8 +176,8 @@ jobs: wait_for_selector: app=vald-lb-gateway - name: deploy Chaos Mesh run: | - make kubectl/install - curl -sSL https://mirrors.chaos-mesh.org/v2.3.0/install.sh | bash -s -- --k3s + make kubectl/install/linux/v1.23.6 + curl -sSL https://mirrors.chaos-mesh.org/v2.4.1/install.sh | bash -s -- --k3s helm install \ --set podChaos.kill.enabled=true \ vald-chaos-test tests/chaos/chart @@ -270,8 +270,8 @@ jobs: wait_for_selector: app=vald-lb-gateway - name: deploy Chaos Mesh run: | - make kubectl/install - curl -sSL https://mirrors.chaos-mesh.org/v2.3.0/install.sh | bash -s -- --k3s + make kubectl/install/linux/v1.23.6 + curl -sSL https://mirrors.chaos-mesh.org/v2.4.1/install.sh | bash -s -- --k3s helm install \ --set networkChaos.partition.enabled=true \ vald-chaos-test tests/chaos/chart @@ -364,8 +364,8 @@ jobs: wait_for_selector: app=vald-lb-gateway - name: deploy Chaos Mesh run: | - make kubectl/install - curl -sSL https://mirrors.chaos-mesh.org/v2.3.0/install.sh | bash -s -- --k3s + make kubectl/install/linux/v1.23.6 + curl -sSL https://mirrors.chaos-mesh.org/v2.4.1/install.sh | bash -s -- --k3s helm install \ --set networkChaos.bandwidth.enabled=true \ vald-chaos-test tests/chaos/chart diff --git a/Makefile b/Makefile index 05dc1e20c6..5e767af580 100644 --- a/Makefile +++ b/Makefile @@ -51,16 +51,16 @@ TEMP_DIR := $(eval TEMP_DIR := $(shell mktemp -d))$(TEMP_DIR) OPERATOR_SDK_VERSION := $(eval OPERATOR_SDK_VERSION := $(shell cat versions/OPERATOR_SDK_VERSION))$(OPERATOR_SDK_VERSION) -KIND_VERSION ?= v0.15.0 -HELM_VERSION ?= v3.9.4 +KIND_VERSION ?= v0.16.0 +HELM_VERSION ?= v3.10.0 HELM_DOCS_VERSION ?= 1.11.0 -YQ_VERSION ?= v4.27.3 +YQ_VERSION ?= v4.27.5 VALDCLI_VERSION ?= v1.5.6 -TELEPRESENCE_VERSION ?= 2.7.2 -KUBELINTER_VERSION ?= 0.4.0 +TELEPRESENCE_VERSION ?= 2.7.6 +KUBELINTER_VERSION ?= 0.5.0 GOLANGCILINT_VERSION ?= v1.49.0 REVIEWDOG_VERSION ?= v0.14.1 -PROTOBUF_VERSION ?= 21.5 +PROTOBUF_VERSION ?= 21.7 JAEGER_OPERATOR_VERSION ?= 2.30.0 SWAP_DEPLOYMENT_TYPE ?= deployment diff --git a/Makefile.d/k8s.mk b/Makefile.d/k8s.mk index 37438c72e4..ed6b328b68 100644 --- a/Makefile.d/k8s.mk +++ b/Makefile.d/k8s.mk @@ -332,16 +332,14 @@ ifeq ($(UNAME),Darwin) $(BINDIR)/kube-linter: mkdir -p $(BINDIR) cd $(TEMP_DIR) \ - && curl -LO https://github.com/stackrox/kube-linter/releases/download/$(KUBELINTER_VERSION)/kube-linter-darwin.zip \ - && unzip kube-linter-darwin.zip \ - && chmod a+x kube-linter \ - && mv kube-linter $(BINDIR)/kube-linter + && curl -LO https://github.com/stackrox/kube-linter/releases/download/$(KUBELINTER_VERSION)/kube-linter-darwin \ + && mv kube-linter-darwin $(BINDIR)/kube-linter \ + && chmod a+x $(BINDIR)/kube-linter else $(BINDIR)/kube-linter: mkdir -p $(BINDIR) cd $(TEMP_DIR) \ - && curl -LO https://github.com/stackrox/kube-linter/releases/download/$(KUBELINTER_VERSION)/kube-linter-linux.zip \ - && unzip kube-linter-linux.zip \ - && chmod a+x kube-linter \ - && mv kube-linter $(BINDIR)/kube-linter + && curl -LO https://github.com/stackrox/kube-linter/releases/download/$(KUBELINTER_VERSION)/kube-linter-linux \ + && mv kube-linter-linux $(BINDIR)/kube-linter \ + && chmod a+x $(BINDIR)/kube-linter endif diff --git a/Makefile.d/tools.mk b/Makefile.d/tools.mk index 9efba4c284..b9ab1baf85 100644 --- a/Makefile.d/tools.mk +++ b/Makefile.d/tools.mk @@ -62,6 +62,15 @@ $(BINDIR)/reviewdog: .PHONY: kubectl/install kubectl/install: $(BINDIR)/kubectl +## WARNING: choas-mesh install.sh check_kubernetes() +## This version information is deprecated and will be replaced with the output from kubectl version --short. +## https://github.com/chaos-mesh/chaos-mesh/blob/master/install.sh#L291 +.PHONY: kubectl/install/linux/v1.23.6 +kubectl/install/linux/v1.23.6: + curl -L "https://storage.googleapis.com/kubernetes-release/release/v1.23.6/bin/linux/amd64/kubectl" -o ./kubectl + chmod a+x ./kubectl + mv ./kubectl $(BINDIR)/kubectl + ifeq ($(UNAME),Darwin) $(BINDIR)/kubectl: curl -L "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl" -o $(BINDIR)/kubectl diff --git a/apis/grpc/v1/agent/core/agent.pb.go b/apis/grpc/v1/agent/core/agent.pb.go index 559b2e5aa9..9375569755 100644 --- a/apis/grpc/v1/agent/core/agent.pb.go +++ b/apis/grpc/v1/agent/core/agent.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/agent/core/agent.proto package core diff --git a/apis/grpc/v1/agent/sidecar/sidecar.pb.go b/apis/grpc/v1/agent/sidecar/sidecar.pb.go index d41fd398e9..d046a45780 100644 --- a/apis/grpc/v1/agent/sidecar/sidecar.pb.go +++ b/apis/grpc/v1/agent/sidecar/sidecar.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/agent/sidecar/sidecar.proto package sidecar diff --git a/apis/grpc/v1/discoverer/discoverer.pb.go b/apis/grpc/v1/discoverer/discoverer.pb.go index 6e17b2b584..a2615b8785 100644 --- a/apis/grpc/v1/discoverer/discoverer.pb.go +++ b/apis/grpc/v1/discoverer/discoverer.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/discoverer/discoverer.proto package discoverer diff --git a/apis/grpc/v1/filter/egress/egress_filter.pb.go b/apis/grpc/v1/filter/egress/egress_filter.pb.go index e5a2fce938..ffe3ce061f 100644 --- a/apis/grpc/v1/filter/egress/egress_filter.pb.go +++ b/apis/grpc/v1/filter/egress/egress_filter.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/filter/egress/egress_filter.proto package egress diff --git a/apis/grpc/v1/filter/ingress/ingress_filter.pb.go b/apis/grpc/v1/filter/ingress/ingress_filter.pb.go index d1f4901787..f163d1fe2d 100644 --- a/apis/grpc/v1/filter/ingress/ingress_filter.pb.go +++ b/apis/grpc/v1/filter/ingress/ingress_filter.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/filter/ingress/ingress_filter.proto package ingress diff --git a/apis/grpc/v1/manager/index/index_manager.pb.go b/apis/grpc/v1/manager/index/index_manager.pb.go index 37441ccfcc..900ca00da2 100644 --- a/apis/grpc/v1/manager/index/index_manager.pb.go +++ b/apis/grpc/v1/manager/index/index_manager.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/manager/index/index_manager.proto package index diff --git a/apis/grpc/v1/payload/payload.pb.go b/apis/grpc/v1/payload/payload.pb.go index 02e834e840..4299bb723b 100644 --- a/apis/grpc/v1/payload/payload.pb.go +++ b/apis/grpc/v1/payload/payload.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/payload/payload.proto package payload diff --git a/apis/grpc/v1/vald/filter.pb.go b/apis/grpc/v1/vald/filter.pb.go index c17fac8e1d..4ddb131b89 100644 --- a/apis/grpc/v1/vald/filter.pb.go +++ b/apis/grpc/v1/vald/filter.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/filter.proto package vald diff --git a/apis/grpc/v1/vald/insert.pb.go b/apis/grpc/v1/vald/insert.pb.go index 5acbf73005..d3219e9b80 100644 --- a/apis/grpc/v1/vald/insert.pb.go +++ b/apis/grpc/v1/vald/insert.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/insert.proto package vald diff --git a/apis/grpc/v1/vald/object.pb.go b/apis/grpc/v1/vald/object.pb.go index 8ccef391ac..4f7857dcd7 100644 --- a/apis/grpc/v1/vald/object.pb.go +++ b/apis/grpc/v1/vald/object.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/object.proto package vald diff --git a/apis/grpc/v1/vald/remove.pb.go b/apis/grpc/v1/vald/remove.pb.go index 865988fe51..0c45db5e7c 100644 --- a/apis/grpc/v1/vald/remove.pb.go +++ b/apis/grpc/v1/vald/remove.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/remove.proto package vald diff --git a/apis/grpc/v1/vald/search.pb.go b/apis/grpc/v1/vald/search.pb.go index f39030295c..7c8c3fc6f2 100644 --- a/apis/grpc/v1/vald/search.pb.go +++ b/apis/grpc/v1/vald/search.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/search.proto package vald diff --git a/apis/grpc/v1/vald/update.pb.go b/apis/grpc/v1/vald/update.pb.go index b77d4ca10a..3cc30d8098 100644 --- a/apis/grpc/v1/vald/update.pb.go +++ b/apis/grpc/v1/vald/update.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/update.proto package vald diff --git a/apis/grpc/v1/vald/upsert.pb.go b/apis/grpc/v1/vald/upsert.pb.go index 7344706967..281bcdec30 100644 --- a/apis/grpc/v1/vald/upsert.pb.go +++ b/apis/grpc/v1/vald/upsert.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.5 +// protoc v3.21.7 // source: apis/proto/v1/vald/upsert.proto package vald diff --git a/charts/vald-helm-operator/crds/valdrelease.yaml b/charts/vald-helm-operator/crds/valdrelease.yaml index 1bb037112a..d284673e1a 100644 --- a/charts/vald-helm-operator/crds/valdrelease.yaml +++ b/charts/vald-helm-operator/crds/valdrelease.yaml @@ -343,12 +343,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -1337,12 +1331,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -2255,12 +2243,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -3152,12 +3134,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -4594,12 +4570,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -5831,12 +5801,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: @@ -7054,12 +7018,6 @@ spec: prometheus: type: object properties: - collect_interval: - type: string - collect_timeout: - type: string - enable_in_memory_mode: - type: boolean enabled: type: boolean endpoint: diff --git a/charts/vald/README.md b/charts/vald/README.md index 0a0c4ea7ff..0843ae08a7 100644 --- a/charts/vald/README.md +++ b/charts/vald/README.md @@ -58,7 +58,7 @@ Configuration | agent.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | | agent.annotations | object | `{}` | deployment annotations | | agent.enabled | bool | `true` | agent enabled | -| agent.env | list | `[]` | environment variables | +| agent.env | list | `[{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | | agent.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | | agent.hpa.enabled | bool | `false` | HPA enabled | | agent.hpa.targetCPUUtilizationPercentage | int | `80` | HPA CPU utilization percentage | @@ -205,7 +205,7 @@ Configuration | agent.sidecar.config.restore_backoff_enabled | bool | `false` | restore backoff enabled | | agent.sidecar.config.watch_enabled | bool | `true` | auto backup triggered by file changes is enabled | | agent.sidecar.enabled | bool | `false` | sidecar enabled | -| agent.sidecar.env | list | `[{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"AWS_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"access-key","name":"aws-secret"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"secret-access-key","name":"aws-secret"}}}]` | environment variables | +| agent.sidecar.env | list | `[{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"AWS_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"access-key","name":"aws-secret"}}},{"name":"AWS_SECRET_ACCESS_KEY","valueFrom":{"secretKeyRef":{"key":"secret-access-key","name":"aws-secret"}}}]` | environment variables | | agent.sidecar.image.pullPolicy | string | `"Always"` | image pull policy | | agent.sidecar.image.repository | string | `"vdaas/vald-agent-sidecar"` | image repository | | agent.sidecar.image.tag | string | `""` | image tag (overrides defaults.image.tag) | @@ -259,6 +259,7 @@ Configuration | defaults.grpc.client.dial_option.initial_connection_window_size | int | `0` | gRPC client dial option initial connection window size | | defaults.grpc.client.dial_option.initial_window_size | int | `0` | gRPC client dial option initial window size | | defaults.grpc.client.dial_option.insecure | bool | `true` | gRPC client dial option insecure enabled | +| defaults.grpc.client.dial_option.interceptors | list | `[]` | gRPC client interceptors | | defaults.grpc.client.dial_option.keepalive.permit_without_stream | bool | `true` | gRPC client keep alive permit without stream | | defaults.grpc.client.dial_option.keepalive.time | string | `"120s"` | gRPC client keep alive time | | defaults.grpc.client.dial_option.keepalive.timeout | string | `"30s"` | gRPC client keep alive timeout | @@ -297,25 +298,28 @@ Configuration | defaults.logging.format | string | `"raw"` | logging format. logging format must be `raw` or `json` | | defaults.logging.level | string | `"debug"` | logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`. | | defaults.logging.logger | string | `"glg"` | logger name. currently logger must be `glg` or `zap`. | -| defaults.observability.collector.duration | string | `"5s"` | metrics collect duration. if it is set as 5s, enabled metrics are collected every 5 seconds. | -| defaults.observability.collector.metrics.enable_cgo | bool | `true` | CGO metrics enabled | -| defaults.observability.collector.metrics.enable_goroutine | bool | `true` | goroutine metrics enabled | -| defaults.observability.collector.metrics.enable_memory | bool | `true` | memory metrics enabled | -| defaults.observability.collector.metrics.enable_version_info | bool | `true` | version info metrics enabled | -| defaults.observability.collector.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","ngt_version"]` | enabled label names of version info | | defaults.observability.enabled | bool | `false` | observability features enabled | | defaults.observability.jaeger.agent_endpoint | string | `""` | Jaeger agent endpoint | -| defaults.observability.jaeger.buffer_max_count | int | `65000` | Jaeger buffer max count | +| defaults.observability.jaeger.agent_max_packet_size | int | `65000` | Jaeger Agent max packet size | +| defaults.observability.jaeger.agent_reconnect_interval | string | `"30s"` | Jaeger Agent reconnect interval | +| defaults.observability.jaeger.batch_timeout | string | `"5s"` | Jaeger export batch timeout | | defaults.observability.jaeger.collector_endpoint | string | `""` | Jaeger collector endpoint | | defaults.observability.jaeger.enabled | bool | `false` | Jaeger exporter enabled | +| defaults.observability.jaeger.export_timeout | string | `"5s"` | Jaeger export timeout | +| defaults.observability.jaeger.max_export_batch_size | int | `512` | Jaeger max export batch size | +| defaults.observability.jaeger.max_queue_size | int | `2048` | Jaeger max queue size | | defaults.observability.jaeger.password | string | `""` | Jaeger password | | defaults.observability.jaeger.service_name | string | `"vald"` | Jaeger service name | | defaults.observability.jaeger.username | string | `""` | Jaeger username | +| defaults.observability.metrics.enable_cgo | bool | `true` | CGO metrics enabled | +| defaults.observability.metrics.enable_goroutine | bool | `true` | goroutine metrics enabled | +| defaults.observability.metrics.enable_memory | bool | `true` | memory metrics enabled | +| defaults.observability.metrics.enable_version_info | bool | `true` | version info metrics enabled | +| defaults.observability.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","ngt_version"]` | enabled label names of version info | | defaults.observability.prometheus.enabled | bool | `false` | Prometheus exporter enabled | | defaults.observability.prometheus.endpoint | string | `"/metrics"` | Prometheus exporter endpoint | -| defaults.observability.prometheus.namespace | string | `"vald"` | prefix of exported metrics name | +| defaults.observability.prometheus.namespace | string | `"_MY_POD_NAMESPACE_"` | service namespace for metrics | | defaults.observability.trace.enabled | bool | `false` | trace enabled | -| defaults.observability.trace.sampling_rate | float | `1` | trace sampling rate. must be between 0.0 to 1.0. | | defaults.server_config.full_shutdown_duration | string | `"600s"` | server full shutdown duration | | defaults.server_config.healths.liveness.enabled | bool | `true` | liveness server enabled | | defaults.server_config.healths.liveness.host | string | `"0.0.0.0"` | liveness server host | @@ -598,7 +602,7 @@ Configuration | gateway.filter.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | | gateway.filter.annotations | object | `{}` | deployment annotations | | gateway.filter.enabled | bool | `false` | gateway enabled | -| gateway.filter.env | list | `[]` | environment variables | +| gateway.filter.env | list | `[{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | | gateway.filter.externalTrafficPolicy | string | `""` | external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local | | gateway.filter.gateway_config.egress_filter | object | `{"client":{},"distance_filters":[],"object_filters":[]}` | gRPC client config for egress filter | | gateway.filter.gateway_config.egress_filter.client | object | `{}` | gRPC client config for egress filter (overrides defaults.grpc.client) | diff --git a/charts/vald/templates/_helpers.tpl b/charts/vald/templates/_helpers.tpl index 2a097444ae..f967e78fab 100755 --- a/charts/vald/templates/_helpers.tpl +++ b/charts/vald/templates/_helpers.tpl @@ -688,9 +688,7 @@ trace: prometheus: {{- if .Values.prometheus }} enabled: {{ default .default.prometheus.enabled .Values.prometheus.enabled }} - collect_interval: {{ default .default.prometheus.collect_interval .Values.prometheus.collect_interval | quote }} - collect_timeout: {{ default .default.prometheus.collect_timeout .Values.prometheus.collect_timeout | quote }} - enable_in_memory_mode: {{ default .default.prometheus.enable_in_memory_mode .Values.prometheus.enable_in_memory_mode }} + endpoint: {{ default .default.prometheus.endpoint .Values.prometheus.endpoint | quote }} {{- else }} {{- toYaml .default.prometheus | nindent 2 }} {{- end }} diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index 12014ac82a..11000d8227 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -1 +1 @@ -{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"agent":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"agent enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment, DaemonSet or StatefulSet","enum":["StatefulSet","Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of agent deployment"},"ngt":{"type":"object","properties":{"auto_create_index_pool_size":{"type":"integer","description":"batch process pool size of automatic create index operation"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration":{"type":"string","description":"duration of automatic save index"},"bulk_insert_chunk_size":{"type":"integer","description":"bulk insert chunk size"},"creation_edge_size":{"type":"integer","description":"creation edge size"},"default_epsilon":{"type":"number","description":"default epsilon used for search"},"default_pool_size":{"type":"integer","description":"default create index batch pool size"},"default_radius":{"type":"number","description":"default radius used for search"},"dimension":{"type":"integer","description":"vector dimension","minimum":1},"distance_type":{"type":"string","description":"distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants","enum":["l1","l2","ang","angle","ham","hamming","cos","cosine","poincare","poinc","lorentz","loren","jac","jaccard","spjac","sparsejaccard","norml2","normalizedl2","normang","normalizedangle","normcos","normalizedcosine"]},"enable_copy_on_write":{"type":"boolean","description":"enable copy on write saving for more stable backup"},"enable_in_memory_mode":{"type":"boolean","description":"in-memory mode enabled"},"enable_proactive_gc":{"type":"boolean","description":"enable proactive GC call for reducing heap memory allocation"},"index_path":{"type":"string","description":"path to index data"},"initial_delay_max_duration":{"type":"string","description":"maximum duration for initial delay"},"kvsdb":{"type":"object","properties":{"concurrency":{"type":"integer","description":"kvsdb processing concurrency"}}},"load_index_timeout_factor":{"type":"string","description":"a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) * (factor)."},"max_load_index_timeout":{"type":"string","description":"maximum duration of load index timeout"},"min_load_index_timeout":{"type":"string","description":"minimum duration of load index timeout"},"object_type":{"type":"string","description":"object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference","enum":["float","float16","uint8"]},"search_edge_size":{"type":"integer","description":"search edge size"},"vqueue":{"type":"object","properties":{"delete_buffer_pool_size":{"type":"integer","description":"delete slice pool buffer size"},"insert_buffer_pool_size":{"type":"integer","description":"insert slice pool buffer size"}}}}},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"persistentVolume":{"type":"object","properties":{"accessMode":{"type":"string","description":"agent pod storage accessMode"},"enabled":{"type":"boolean","description":"enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode"},"mountPropagation":{"type":"string","description":"agent pod storage mountPropagation"},"size":{"type":"string","description":"size of agent pod volume"},"storageClass":{"type":"string","description":"storageClass name for agent pod volume"}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podManagementPolicy":{"type":"string","description":"pod management policy: OrderedReady or Parallel","enum":["OrderedReady","Parallel"]},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"},"partition":{"type":"integer","description":"StatefulSet partition"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"sidecar":{"type":"object","properties":{"config":{"type":"object","properties":{"auto_backup_duration":{"type":"string","description":"auto backup duration"},"auto_backup_enabled":{"type":"boolean","description":"auto backup triggered by timer is enabled"},"blob_storage":{"type":"object","properties":{"bucket":{"type":"string","description":"bucket name"},"cloud_storage":{"type":"object","properties":{"client":{"type":"object","properties":{"credentials_file_path":{"type":"string","description":"credentials file path"},"credentials_json":{"type":"string","description":"credentials json"}}},"url":{"type":"string","description":"cloud storage url"},"write_buffer_size":{"type":"integer","description":"bytes of the chunks for upload"},"write_cache_control":{"type":"string","description":"Cache-Control of HTTP Header"},"write_content_disposition":{"type":"string","description":"Content-Disposition of HTTP Header"},"write_content_encoding":{"type":"string","description":"the encoding of the blob's content"},"write_content_language":{"type":"string","description":"the language of blob's content"},"write_content_type":{"type":"string","description":"MIME type of the blob"}}},"s3":{"type":"object","properties":{"access_key":{"type":"string","description":"s3 access key"},"enable_100_continue":{"type":"boolean","description":"enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content."},"enable_content_md5_validation":{"type":"boolean","description":"enable the S3 client to add MD5 checksum to upload API calls."},"enable_endpoint_discovery":{"type":"boolean","description":"enable endpoint discovery"},"enable_endpoint_host_prefix":{"type":"boolean","description":"enable prefixing request endpoint hosts with modeled information"},"enable_param_validation":{"type":"boolean","description":"enables semantic parameter validation"},"enable_ssl":{"type":"boolean","description":"enable ssl for s3 session"},"endpoint":{"type":"string","description":"s3 endpoint"},"force_path_style":{"type":"boolean","description":"use path-style addressing"},"max_chunk_size":{"type":"string","description":"s3 download max chunk size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_part_size":{"type":"string","description":"s3 multipart upload max part size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_retries":{"type":"integer","description":"maximum number of retries of s3 client"},"region":{"type":"string","description":"s3 region"},"secret_access_key":{"type":"string","description":"s3 secret access key"},"token":{"type":"string","description":"s3 token"},"use_accelerate":{"type":"boolean","description":"enable s3 accelerate feature"},"use_arn_region":{"type":"boolean","description":"s3 service client to use the region specified in the ARN"},"use_dual_stack":{"type":"boolean","description":"use dual stack"}}},"storage_type":{"type":"string","description":"storage type","enum":["s3","cloud_storage"]}}},"client":{"type":"object","properties":{"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"transport":{"type":"object","properties":{"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"round_tripper":{"type":"object","properties":{"expect_continue_timeout":{"type":"string","description":"expect continue timeout"},"force_attempt_http_2":{"type":"boolean","description":"force attempt HTTP2"},"idle_conn_timeout":{"type":"string","description":"timeout for idle connections"},"max_conns_per_host":{"type":"integer","description":"maximum count of connections per host"},"max_idle_conns":{"type":"integer","description":"maximum count of idle connections"},"max_idle_conns_per_host":{"type":"integer","description":"maximum count of idle connections per host"},"max_response_header_size":{"type":"integer","description":"maximum response header size"},"read_buffer_size":{"type":"integer","description":"read buffer size"},"response_header_timeout":{"type":"string","description":"timeout for response header"},"tls_handshake_timeout":{"type":"string","description":"TLS handshake timeout"},"write_buffer_size":{"type":"integer","description":"write buffer size"}}}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","description":"compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd`","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer","description":"compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: \u003e= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress."}}},"filename":{"type":"string","description":"backup filename"},"filename_suffix":{"type":"string","description":"suffix for backup filename"},"post_stop_timeout":{"type":"string","description":"timeout for observing file changes during post stop"},"restore_backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"restore_backoff_enabled":{"type":"boolean","description":"restore backoff enabled"},"watch_enabled":{"type":"boolean","description":"auto backup triggered by file changes is enabled"}}},"enabled":{"type":"boolean","description":"sidecar enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainerEnabled":{"type":"boolean","description":"sidecar on initContainer mode enabled."},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"name":{"type":"string","description":"name of agent sidecar"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"agent sidecar service annotations"},"enabled":{"type":"boolean","description":"agent sidecar service enabled"},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"labels":{"type":"object","description":"agent sidecar service labels"},"type":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"time_zone":{"type":"string","description":"Time zone"},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"defaults":{"type":"object","properties":{"grpc":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}}}},"image":{"type":"object","properties":{"tag":{"type":"string","description":"docker image tag"}}},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"time_zone":{"type":"string","description":"Time zone"}}},"discoverer":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"clusterRole":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRole resource"},"name":{"type":"string","description":"name of clusterRole"}}},"clusterRoleBinding":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRoleBinding resource"},"name":{"type":"string","description":"name of clusterRoleBinding"}}},"discoverer":{"type":"object","properties":{"discovery_duration":{"type":"string","description":"duration to discovery"},"name":{"type":"string","description":"name to discovery"},"namespace":{"type":"string","description":"namespace to discovery"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"selectors":{"type":"object","description":"k8s resource selectors","properties":{"node":{"type":"object","description":"k8s resource selectors for node discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node discovery"},"labels":{"type":"object","description":"k8s label selectors for node discovery"}}},"node_metrics":{"type":"object","description":"k8s resource selectors for node_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for node_metrics discovery"}}},"pod":{"type":"object","description":"k8s resource selectors for pod discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod discovery"},"labels":{"type":"object","description":"k8s label selectors for pod discovery"}}},"pod_metrics":{"type":"object","description":"k8s resource selectors for pod_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for pod_metrics discovery"}}}}}}},"enabled":{"type":"boolean","description":"discoverer enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of discoverer deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceAccount":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates service account"},"name":{"type":"string","description":"name of service account"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"gateway":{"type":"object","properties":{"filter":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"egress_filter":{"type":"object","description":"gRPC client config for egress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"distance_filters":{"type":"array","description":"distance egress vector filter targets","items":{"type":"string"}},"object_filters":{"type":"array","description":"object egress vector filter targets","items":{"type":"string"}}}},"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"ingress_filter":{"type":"object","description":"gRPC client config for ingress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"insert_filters":{"type":"array","description":"insert ingress vector filter targets","items":{"type":"string"}},"search_filters":{"type":"array","description":"search ingress vector filter targets","items":{"type":"string"}},"update_filters":{"type":"array","description":"update ingress vector filter targets","items":{"type":"string"}},"upsert_filters":{"type":"array","description":"upsert ingress vector filter targets","items":{"type":"string"}},"vectorizer":{"type":"string","description":"object ingress vectorize filter targets"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of filter gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"lb":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"agent namespace"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","description":"number of index replica","minimum":1},"node_name":{"type":"string","description":"node name"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}},"manager":{"type":"object","properties":{"index":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"index manager enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"indexer":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"namespace of agent pods to manage"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration_limit":{"type":"string","description":"limit duration of automatic index saving"},"auto_save_index_wait_duration":{"type":"string","description":"duration of automatic index saving wait duration for next saving"},"concurrency":{"type":"integer","description":"concurrency","minimum":1},"creation_pool_size":{"type":"integer","description":"number of pool size of create index processing"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string","description":"refresh duration to discover"}}},"node_name":{"type":"string","description":"node name"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"name":{"type":"string","description":"name of index manager deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"collect_interval":{"type":"string","description":"Prometheus collect interval"},"collect_timeout":{"type":"string","description":"Prometheus collect timeout"},"enable_in_memory_mode":{"type":"boolean","description":"Prometheus collect with in memory"},"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"replicas":{"type":"integer","description":"number of replicas","minimum":0},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}}}} +{"$schema":"http://json-schema.org/draft-07/schema#","title":"Values","type":"object","properties":{"agent":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"agent enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment, DaemonSet or StatefulSet","enum":["StatefulSet","Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of agent deployment"},"ngt":{"type":"object","properties":{"auto_create_index_pool_size":{"type":"integer","description":"batch process pool size of automatic create index operation"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration":{"type":"string","description":"duration of automatic save index"},"bulk_insert_chunk_size":{"type":"integer","description":"bulk insert chunk size"},"creation_edge_size":{"type":"integer","description":"creation edge size"},"default_epsilon":{"type":"number","description":"default epsilon used for search"},"default_pool_size":{"type":"integer","description":"default create index batch pool size"},"default_radius":{"type":"number","description":"default radius used for search"},"dimension":{"type":"integer","description":"vector dimension","minimum":1},"distance_type":{"type":"string","description":"distance type. it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants","enum":["l1","l2","ang","angle","ham","hamming","cos","cosine","poincare","poinc","lorentz","loren","jac","jaccard","spjac","sparsejaccard","norml2","normalizedl2","normang","normalizedangle","normcos","normalizedcosine"]},"enable_copy_on_write":{"type":"boolean","description":"enable copy on write saving for more stable backup"},"enable_in_memory_mode":{"type":"boolean","description":"in-memory mode enabled"},"enable_proactive_gc":{"type":"boolean","description":"enable proactive GC call for reducing heap memory allocation"},"index_path":{"type":"string","description":"path to index data"},"initial_delay_max_duration":{"type":"string","description":"maximum duration for initial delay"},"kvsdb":{"type":"object","properties":{"concurrency":{"type":"integer","description":"kvsdb processing concurrency"}}},"load_index_timeout_factor":{"type":"string","description":"a factor of load index timeout. timeout duration will be calculated by (index count to be loaded) * (factor)."},"max_load_index_timeout":{"type":"string","description":"maximum duration of load index timeout"},"min_load_index_timeout":{"type":"string","description":"minimum duration of load index timeout"},"object_type":{"type":"string","description":"object type. it should be `float` or `uint8` or `float16`. for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference","enum":["float","float16","uint8"]},"search_edge_size":{"type":"integer","description":"search edge size"},"vqueue":{"type":"object","properties":{"delete_buffer_pool_size":{"type":"integer","description":"delete slice pool buffer size"},"insert_buffer_pool_size":{"type":"integer","description":"insert slice pool buffer size"}}}}},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"persistentVolume":{"type":"object","properties":{"accessMode":{"type":"string","description":"agent pod storage accessMode"},"enabled":{"type":"boolean","description":"enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode"},"mountPropagation":{"type":"string","description":"agent pod storage mountPropagation"},"size":{"type":"string","description":"size of agent pod volume"},"storageClass":{"type":"string","description":"storageClass name for agent pod volume"}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podManagementPolicy":{"type":"string","description":"pod management policy: OrderedReady or Parallel","enum":["OrderedReady","Parallel"]},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"},"partition":{"type":"integer","description":"StatefulSet partition"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"sidecar":{"type":"object","properties":{"config":{"type":"object","properties":{"auto_backup_duration":{"type":"string","description":"auto backup duration"},"auto_backup_enabled":{"type":"boolean","description":"auto backup triggered by timer is enabled"},"blob_storage":{"type":"object","properties":{"bucket":{"type":"string","description":"bucket name"},"cloud_storage":{"type":"object","properties":{"client":{"type":"object","properties":{"credentials_file_path":{"type":"string","description":"credentials file path"},"credentials_json":{"type":"string","description":"credentials json"}}},"url":{"type":"string","description":"cloud storage url"},"write_buffer_size":{"type":"integer","description":"bytes of the chunks for upload"},"write_cache_control":{"type":"string","description":"Cache-Control of HTTP Header"},"write_content_disposition":{"type":"string","description":"Content-Disposition of HTTP Header"},"write_content_encoding":{"type":"string","description":"the encoding of the blob's content"},"write_content_language":{"type":"string","description":"the language of blob's content"},"write_content_type":{"type":"string","description":"MIME type of the blob"}}},"s3":{"type":"object","properties":{"access_key":{"type":"string","description":"s3 access key"},"enable_100_continue":{"type":"boolean","description":"enable AWS SDK adding the 'Expect: 100-Continue' header to PUT requests over 2MB of content."},"enable_content_md5_validation":{"type":"boolean","description":"enable the S3 client to add MD5 checksum to upload API calls."},"enable_endpoint_discovery":{"type":"boolean","description":"enable endpoint discovery"},"enable_endpoint_host_prefix":{"type":"boolean","description":"enable prefixing request endpoint hosts with modeled information"},"enable_param_validation":{"type":"boolean","description":"enables semantic parameter validation"},"enable_ssl":{"type":"boolean","description":"enable ssl for s3 session"},"endpoint":{"type":"string","description":"s3 endpoint"},"force_path_style":{"type":"boolean","description":"use path-style addressing"},"max_chunk_size":{"type":"string","description":"s3 download max chunk size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_part_size":{"type":"string","description":"s3 multipart upload max part size","pattern":"^[0-9]+(kb|mb|gb)$"},"max_retries":{"type":"integer","description":"maximum number of retries of s3 client"},"region":{"type":"string","description":"s3 region"},"secret_access_key":{"type":"string","description":"s3 secret access key"},"token":{"type":"string","description":"s3 token"},"use_accelerate":{"type":"boolean","description":"enable s3 accelerate feature"},"use_arn_region":{"type":"boolean","description":"s3 service client to use the region specified in the ARN"},"use_dual_stack":{"type":"boolean","description":"use dual stack"}}},"storage_type":{"type":"string","description":"storage type","enum":["s3","cloud_storage"]}}},"client":{"type":"object","properties":{"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"transport":{"type":"object","properties":{"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"round_tripper":{"type":"object","properties":{"expect_continue_timeout":{"type":"string","description":"expect continue timeout"},"force_attempt_http_2":{"type":"boolean","description":"force attempt HTTP2"},"idle_conn_timeout":{"type":"string","description":"timeout for idle connections"},"max_conns_per_host":{"type":"integer","description":"maximum count of connections per host"},"max_idle_conns":{"type":"integer","description":"maximum count of idle connections"},"max_idle_conns_per_host":{"type":"integer","description":"maximum count of idle connections per host"},"max_response_header_size":{"type":"integer","description":"maximum response header size"},"read_buffer_size":{"type":"integer","description":"read buffer size"},"response_header_timeout":{"type":"string","description":"timeout for response header"},"tls_handshake_timeout":{"type":"string","description":"TLS handshake timeout"},"write_buffer_size":{"type":"integer","description":"write buffer size"}}}}}}},"compress":{"type":"object","properties":{"compress_algorithm":{"type":"string","description":"compression algorithm. must be `gob`, `gzip`, `lz4` or `zstd`","enum":["gob","gzip","lz4","zstd"]},"compression_level":{"type":"integer","description":"compression level. value range relies on which algorithm is used. `gob`: level will be ignored. `gzip`: -1 (default compression), 0 (no compression), or 1 (best speed) to 9 (best compression). `lz4`: \u003e= 0, higher is better compression. `zstd`: 1 (fastest) to 22 (best), however implementation relies on klauspost/compress."}}},"filename":{"type":"string","description":"backup filename"},"filename_suffix":{"type":"string","description":"suffix for backup filename"},"post_stop_timeout":{"type":"string","description":"timeout for observing file changes during post stop"},"restore_backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"restore_backoff_enabled":{"type":"boolean","description":"restore backoff enabled"},"watch_enabled":{"type":"boolean","description":"auto backup triggered by file changes is enabled"}}},"enabled":{"type":"boolean","description":"sidecar enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainerEnabled":{"type":"boolean","description":"sidecar on initContainer mode enabled."},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"name":{"type":"string","description":"name of agent sidecar"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"agent sidecar service annotations"},"enabled":{"type":"boolean","description":"agent sidecar service enabled"},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"labels":{"type":"object","description":"agent sidecar service labels"},"type":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]}}},"time_zone":{"type":"string","description":"Time zone"},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"}}},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"defaults":{"type":"object","properties":{"grpc":{"type":"object","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}}}},"image":{"type":"object","properties":{"tag":{"type":"string","description":"docker image tag"}}},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"time_zone":{"type":"string","description":"Time zone"}}},"discoverer":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"clusterRole":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRole resource"},"name":{"type":"string","description":"name of clusterRole"}}},"clusterRoleBinding":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates clusterRoleBinding resource"},"name":{"type":"string","description":"name of clusterRoleBinding"}}},"discoverer":{"type":"object","properties":{"discovery_duration":{"type":"string","description":"duration to discovery"},"name":{"type":"string","description":"name to discovery"},"namespace":{"type":"string","description":"namespace to discovery"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"selectors":{"type":"object","description":"k8s resource selectors","properties":{"node":{"type":"object","description":"k8s resource selectors for node discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node discovery"},"labels":{"type":"object","description":"k8s label selectors for node discovery"}}},"node_metrics":{"type":"object","description":"k8s resource selectors for node_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for node_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for node_metrics discovery"}}},"pod":{"type":"object","description":"k8s resource selectors for pod discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod discovery"},"labels":{"type":"object","description":"k8s label selectors for pod discovery"}}},"pod_metrics":{"type":"object","description":"k8s resource selectors for pod_metrics discovery","properties":{"fields":{"type":"object","description":"k8s field selectors for pod_metrics discovery"},"labels":{"type":"object","description":"k8s label selectors for pod_metrics discovery"}}}}}}},"enabled":{"type":"boolean","description":"discoverer enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of discoverer deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceAccount":{"type":"object","properties":{"enabled":{"type":"boolean","description":"creates service account"},"name":{"type":"string","description":"name of service account"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"gateway":{"type":"object","properties":{"filter":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"egress_filter":{"type":"object","description":"gRPC client config for egress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"distance_filters":{"type":"array","description":"distance egress vector filter targets","items":{"type":"string"}},"object_filters":{"type":"array","description":"object egress vector filter targets","items":{"type":"string"}}}},"gateway_client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"ingress_filter":{"type":"object","description":"gRPC client config for ingress filter","properties":{"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"insert_filters":{"type":"array","description":"insert ingress vector filter targets","items":{"type":"string"}},"search_filters":{"type":"array","description":"search ingress vector filter targets","items":{"type":"string"}},"update_filters":{"type":"array","description":"update ingress vector filter targets","items":{"type":"string"}},"upsert_filters":{"type":"array","description":"upsert ingress vector filter targets","items":{"type":"string"}},"vectorizer":{"type":"string","description":"object ingress vectorize filter targets"}}}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of filter gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}},"lb":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"gateway enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"gateway_config":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"agent namespace"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string"}}},"index_replica":{"type":"integer","description":"number of index replica","minimum":1},"node_name":{"type":"string","description":"node name"}}},"hpa":{"type":"object","properties":{"enabled":{"type":"boolean","description":"HPA enabled"},"targetCPUUtilizationPercentage":{"type":"integer","description":"HPA CPU utilization percentage"}}},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"ingress":{"type":"object","properties":{"annotations":{"type":"object","description":"annotations for ingress"},"enabled":{"type":"boolean","description":"gateway ingress enabled"},"host":{"type":"string","description":"ingress hostname"},"pathType":{"type":"string","description":"gateway ingress pathType"},"servicePort":{"type":"string","description":"service port to be exposed by ingress"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"internalTrafficPolicy":{"type":"string","description":"internal traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxReplicas":{"type":"integer","description":"maximum number of replicas. if HPA is disabled, this value will be ignored.","minimum":0},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"minReplicas":{"type":"integer","description":"minimum number of replicas. if HPA is disabled, the replicas will be set to this value","minimum":0},"name":{"type":"string","description":"name of gateway deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}},"manager":{"type":"object","properties":{"index":{"type":"object","properties":{"affinity":{"type":"object","properties":{"nodeAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"node affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"object","properties":{"nodeSelectorTerms":{"type":"array","description":"node affinity required node selectors","items":{"type":"object"}}}}}},"podAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod affinity required scheduling terms","items":{"type":"object"}}}},"podAntiAffinity":{"type":"object","properties":{"preferredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity preferred scheduling terms","items":{"type":"object"}},"requiredDuringSchedulingIgnoredDuringExecution":{"type":"array","description":"pod anti-affinity required scheduling terms","items":{"type":"object"}}}}}},"annotations":{"type":"object","description":"deployment annotations"},"enabled":{"type":"boolean","description":"index manager enabled"},"env":{"type":"array","description":"environment variables","items":{"type":"object"}},"externalTrafficPolicy":{"type":"string","description":"external traffic policy (can be specified when service type is LoadBalancer or NodePort) : Cluster or Local"},"image":{"type":"object","properties":{"pullPolicy":{"type":"string","description":"image pull policy","enum":["Always","Never","IfNotPresent"]},"repository":{"type":"string","description":"image repository"},"tag":{"type":"string","description":"image tag (overrides defaults.image.tag)"}}},"indexer":{"type":"object","properties":{"agent_namespace":{"type":"string","description":"namespace of agent pods to manage"},"auto_index_check_duration":{"type":"string","description":"check duration of automatic indexing"},"auto_index_duration_limit":{"type":"string","description":"limit duration of automatic indexing"},"auto_index_length":{"type":"integer","description":"number of cache to trigger automatic indexing"},"auto_save_index_duration_limit":{"type":"string","description":"limit duration of automatic index saving"},"auto_save_index_wait_duration":{"type":"string","description":"duration of automatic index saving wait duration for next saving"},"concurrency":{"type":"integer","description":"concurrency","minimum":1},"creation_pool_size":{"type":"integer","description":"number of pool size of create index processing"},"discoverer":{"type":"object","properties":{"agent_client_options":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"client":{"type":"object","properties":{"addrs":{"type":"array","description":"gRPC client addresses","items":{"type":"string"}},"backoff":{"type":"object","properties":{"backoff_factor":{"type":"number","description":"gRPC client backoff factor"},"backoff_time_limit":{"type":"string","description":"gRPC client backoff time limit"},"enable_error_log":{"type":"boolean","description":"gRPC client backoff log enabled"},"initial_duration":{"type":"string","description":"gRPC client backoff initial duration"},"jitter_limit":{"type":"string","description":"gRPC client backoff jitter limit"},"maximum_duration":{"type":"string","description":"gRPC client backoff maximum duration"},"retry_count":{"type":"integer","description":"gRPC client backoff retry count"}}},"call_option":{"type":"object"},"circuit_breaker":{"type":"object","properties":{"closed_error_rate":{"type":"number","description":"gRPC client circuitbreaker closed error rate"},"closed_refresh_timeout":{"type":"string","description":"gRPC client circuitbreaker closed refresh timeout"},"half_open_error_rate":{"type":"number","description":"gRPC client circuitbreaker half-open error rate"},"min_samples":{"type":"integer","description":"gRPC client circuitbreaker minimum sampling count"},"open_timeout":{"type":"string","description":"gRPC client circuitbreaker open timeout"}}},"connection_pool":{"type":"object","properties":{"enable_dns_resolver":{"type":"boolean","description":"enables gRPC client connection pool dns resolver, when enabled vald uses ip handshake exclude dns discovery which improves network performance"},"enable_rebalance":{"type":"boolean","description":"enables gRPC client connection pool rebalance"},"old_conn_close_duration":{"type":"string","description":"makes delay before gRPC client connection closing during connection pool rebalance"},"rebalance_duration":{"type":"string","description":"gRPC client connection pool rebalance duration"},"size":{"type":"integer","description":"gRPC client connection pool size"}}},"dial_option":{"type":"object","properties":{"backoff_base_delay":{"type":"string","description":"gRPC client dial option base backoff delay"},"backoff_jitter":{"type":"number","description":"gRPC client dial option base backoff delay"},"backoff_max_delay":{"type":"string","description":"gRPC client dial option max backoff delay"},"backoff_multiplier":{"type":"number","description":"gRPC client dial option base backoff delay"},"enable_backoff":{"type":"boolean","description":"gRPC client dial option backoff enabled"},"initial_connection_window_size":{"type":"integer","description":"gRPC client dial option initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC client dial option initial window size"},"insecure":{"type":"boolean","description":"gRPC client dial option insecure enabled"},"interceptors":{"type":"array","description":"gRPC client interceptors","items":{"type":"string","enum":["TraceInterceptor"]}},"keepalive":{"type":"object","properties":{"permit_without_stream":{"type":"boolean","description":"gRPC client keep alive permit without stream"},"time":{"type":"string","description":"gRPC client keep alive time"},"timeout":{"type":"string","description":"gRPC client keep alive timeout"}}},"max_msg_size":{"type":"integer","description":"gRPC client dial option max message size"},"min_connection_timeout":{"type":"string","description":"gRPC client dial option minimum connection timeout"},"net":{"type":"object","properties":{"dialer":{"type":"object","properties":{"dual_stack_enabled":{"type":"boolean","description":"gRPC client TCP dialer dual stack enabled"},"keepalive":{"type":"string","description":"gRPC client TCP dialer keep alive"},"timeout":{"type":"string","description":"gRPC client TCP dialer timeout"}}},"dns":{"type":"object","properties":{"cache_enabled":{"type":"boolean","description":"gRPC client TCP DNS cache enabled"},"cache_expiration":{"type":"string","description":"gRPC client TCP DNS cache expiration"},"refresh_duration":{"type":"string","description":"gRPC client TCP DNS cache refresh duration"}}},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"read_buffer_size":{"type":"integer","description":"gRPC client dial option read buffer size"},"timeout":{"type":"string","description":"gRPC client dial option timeout"},"write_buffer_size":{"type":"integer","description":"gRPC client dial option write buffer size"}}},"health_check_duration":{"type":"string","description":"gRPC client health check duration"},"max_recv_msg_size":{"type":"integer"},"max_retry_rpc_buffer_size":{"type":"integer"},"max_send_msg_size":{"type":"integer"},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}},"wait_for_ready":{"type":"boolean"}}},"duration":{"type":"string","description":"refresh duration to discover"}}},"node_name":{"type":"string","description":"node name"}}},"initContainers":{"type":"array","description":"init containers","items":{"type":"object"}},"kind":{"type":"string","description":"deployment kind: Deployment or DaemonSet","enum":["Deployment","DaemonSet"]},"logging":{"type":"object","properties":{"format":{"type":"string","description":"logging format. logging format must be `raw` or `json`","enum":["raw","json"]},"level":{"type":"string","description":"logging level. logging level must be `debug`, `info`, `warn`, `error` or `fatal`.","enum":["debug","info","warn","error","fatal"]},"logger":{"type":"string","description":"logger name. currently logger must be `glg` or `zap`.","enum":["glg","zap"]}}},"maxUnavailable":{"type":"string","description":"maximum number of unavailable replicas"},"name":{"type":"string","description":"name of index manager deployment"},"nodeName":{"type":"string","description":"node name"},"nodeSelector":{"type":"object","description":"node selector"},"observability":{"type":"object","properties":{"enabled":{"type":"boolean","description":"observability features enabled"},"jaeger":{"type":"object","properties":{"agent_endpoint":{"type":"string","description":"Jaeger agent endpoint"},"agent_max_packet_size":{"type":"integer","description":"Jaeger Agent max packet size"},"agent_reconnect_interval":{"type":"string","description":"Jaeger Agent reconnect interval"},"batch_timeout":{"type":"string","description":"Jaeger export batch timeout"},"collector_endpoint":{"type":"string","description":"Jaeger collector endpoint"},"enabled":{"type":"boolean","description":"Jaeger exporter enabled"},"export_timeout":{"type":"string","description":"Jaeger export timeout"},"max_export_batch_size":{"type":"integer","description":"Jaeger max export batch size"},"max_queue_size":{"type":"integer","description":"Jaeger max queue size"},"password":{"type":"string","description":"Jaeger password"},"service_name":{"type":"string","description":"Jaeger service name"},"username":{"type":"string","description":"Jaeger username"}}},"metrics":{"type":"object","properties":{"enable_cgo":{"type":"boolean","description":"CGO metrics enabled"},"enable_goroutine":{"type":"boolean","description":"goroutine metrics enabled"},"enable_memory":{"type":"boolean","description":"memory metrics enabled"},"enable_version_info":{"type":"boolean","description":"version info metrics enabled"},"version_info_labels":{"type":"array","description":"enabled label names of version info","items":{"type":"string","enum":["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","cgo_enabled","ngt_version","build_cpu_info_flags"]}}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Prometheus exporter enabled"},"endpoint":{"type":"string","description":"Prometheus exporter endpoint"},"namespace":{"type":"string","description":"service namespace for metrics"}}},"trace":{"type":"object","properties":{"enabled":{"type":"boolean","description":"trace enabled"}}}}},"podAnnotations":{"type":"object","description":"pod annotations"},"podPriority":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gateway pod PriorityClass enabled"},"value":{"type":"integer","description":"gateway pod PriorityClass value"}}},"podSecurityContext":{"type":"object","description":"security context for pod"},"progressDeadlineSeconds":{"type":"integer","description":"progress deadline seconds"},"replicas":{"type":"integer","description":"number of replicas","minimum":0},"resources":{"type":"object","description":"compute resources","properties":{"limits":{"type":"object"},"requests":{"type":"object"}}},"revisionHistoryLimit":{"type":"integer","description":"number of old history to retain to allow rollback","minimum":0},"rollingUpdate":{"type":"object","properties":{"maxSurge":{"type":"string","description":"max surge of rolling update"},"maxUnavailable":{"type":"string","description":"max unavailable of rolling update"}}},"securityContext":{"type":"object","description":"security context for container"},"server_config":{"type":"object","properties":{"full_shutdown_duration":{"type":"string","description":"server full shutdown duration"},"healths":{"type":"object","properties":{"liveness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"liveness server enabled"},"host":{"type":"string","description":"liveness server host"},"livenessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"liveness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"liveness probe path"},"port":{"type":"string","description":"liveness probe port"},"scheme":{"type":"string","description":"liveness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"liveness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"liveness probe period seconds"},"successThreshold":{"type":"integer","description":"liveness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"liveness probe timeout seconds"}}},"port":{"type":"integer","description":"liveness server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"liveness server handler timeout"},"idle_timeout":{"type":"string","description":"liveness server idle timeout"},"read_header_timeout":{"type":"string","description":"liveness server read header timeout"},"read_timeout":{"type":"string","description":"liveness server read timeout"},"shutdown_duration":{"type":"string","description":"liveness server shutdown duration"},"write_timeout":{"type":"string","description":"liveness server write timeout"}}},"mode":{"type":"string","description":"liveness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"liveness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"liveness server service port","maximum":65535,"minimum":0}}},"readiness":{"type":"object","properties":{"enabled":{"type":"boolean","description":"readiness server enabled"},"host":{"type":"string","description":"readiness server host"},"port":{"type":"integer","description":"readiness server port","maximum":65535,"minimum":0},"readinessProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"readiness probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"readiness probe path"},"port":{"type":"string","description":"readiness probe port"},"scheme":{"type":"string","description":"readiness probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"readiness probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"readiness probe period seconds"},"successThreshold":{"type":"integer","description":"readiness probe success threshold"},"timeoutSeconds":{"type":"integer","description":"readiness probe timeout seconds"}}},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"readiness server handler timeout"},"idle_timeout":{"type":"string","description":"readiness server idle timeout"},"read_header_timeout":{"type":"string","description":"readiness server read header timeout"},"read_timeout":{"type":"string","description":"readiness server read timeout"},"shutdown_duration":{"type":"string","description":"readiness server shutdown duration"},"write_timeout":{"type":"string","description":"readiness server write timeout"}}},"mode":{"type":"string","description":"readiness server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"readiness server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"readiness server service port","maximum":65535,"minimum":0}}},"startup":{"type":"object","properties":{"enabled":{"type":"boolean","description":"startup server enabled"},"port":{"type":"integer","description":"startup server port","maximum":65535,"minimum":0},"startupProbe":{"type":"object","properties":{"failureThreshold":{"type":"integer","description":"startup probe failure threshold"},"httpGet":{"type":"object","properties":{"path":{"type":"string","description":"startup probe path"},"port":{"type":"string","description":"startup probe port"},"scheme":{"type":"string","description":"startup probe scheme"}}},"initialDelaySeconds":{"type":"integer","description":"startup probe initial delay seconds"},"periodSeconds":{"type":"integer","description":"startup probe period seconds"},"successThreshold":{"type":"integer","description":"startup probe success threshold"},"timeoutSeconds":{"type":"integer","description":"startup probe timeout seconds"}}}}}}},"metrics":{"type":"object","properties":{"pprof":{"type":"object","properties":{"enabled":{"type":"boolean","description":"pprof server enabled"},"host":{"type":"string","description":"pprof server host"},"port":{"type":"integer","description":"pprof server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"pprof server handler timeout"},"idle_timeout":{"type":"string","description":"pprof server idle timeout"},"read_header_timeout":{"type":"string","description":"pprof server read header timeout"},"read_timeout":{"type":"string","description":"pprof server read timeout"},"shutdown_duration":{"type":"string","description":"pprof server shutdown duration"},"write_timeout":{"type":"string","description":"pprof server write timeout"}}},"mode":{"type":"string","description":"pprof server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"pprof server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"pprof server service port","maximum":65535,"minimum":0}}},"prometheus":{"type":"object","properties":{"enabled":{"type":"boolean","description":"prometheus server enabled"},"host":{"type":"string","description":"prometheus server host"},"port":{"type":"integer","description":"prometheus server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"prometheus server handler timeout"},"idle_timeout":{"type":"string","description":"prometheus server idle timeout"},"read_header_timeout":{"type":"string","description":"prometheus server read header timeout"},"read_timeout":{"type":"string","description":"prometheus server read timeout"},"shutdown_duration":{"type":"string","description":"prometheus server shutdown duration"},"write_timeout":{"type":"string","description":"prometheus server write timeout"}}},"mode":{"type":"string","description":"prometheus server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"prometheus server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"prometheus server service port","maximum":65535,"minimum":0}}}}},"servers":{"type":"object","properties":{"grpc":{"type":"object","properties":{"enabled":{"type":"boolean","description":"gRPC server enabled"},"host":{"type":"string","description":"gRPC server host"},"port":{"type":"integer","description":"gRPC server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"grpc":{"type":"object","properties":{"bidirectional_stream_concurrency":{"type":"integer","description":"gRPC server bidirectional stream concurrency"},"connection_timeout":{"type":"string","description":"gRPC server connection timeout"},"enable_reflection":{"type":"boolean","description":"gRPC server reflection option"},"header_table_size":{"type":"integer","description":"gRPC server header table size"},"initial_conn_window_size":{"type":"integer","description":"gRPC server initial connection window size"},"initial_window_size":{"type":"integer","description":"gRPC server initial window size"},"interceptors":{"type":"array","description":"gRPC server interceptors","items":{"type":"string","enum":["RecoverInterceptor","AccessLogInterceptor","TraceInterceptor","MetricInterceptor"]}},"keepalive":{"type":"object","properties":{"max_conn_age":{"type":"string","description":"gRPC server keep alive max connection age"},"max_conn_age_grace":{"type":"string","description":"gRPC server keep alive max connection age grace"},"max_conn_idle":{"type":"string","description":"gRPC server keep alive max connection idle"},"min_time":{"type":"string","description":"gRPC server keep alive min_time"},"permit_without_stream":{"type":"boolean","description":"gRPC server keep alive permit_without_stream"},"time":{"type":"string","description":"gRPC server keep alive time"},"timeout":{"type":"string","description":"gRPC server keep alive timeout"}}},"max_header_list_size":{"type":"integer","description":"gRPC server max header list size"},"max_receive_message_size":{"type":"integer","description":"gRPC server max receive message size"},"max_send_message_size":{"type":"integer","description":"gRPC server max send message size"},"read_buffer_size":{"type":"integer","description":"gRPC server read buffer size"},"write_buffer_size":{"type":"integer","description":"gRPC server write buffer size"}}},"mode":{"type":"string","description":"gRPC server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"gRPC server probe wait time"},"restart":{"type":"boolean","description":"gRPC server restart"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"gRPC server service port","maximum":65535,"minimum":0}}},"rest":{"type":"object","properties":{"enabled":{"type":"boolean","description":"REST server enabled"},"host":{"type":"string","description":"REST server host"},"port":{"type":"integer","description":"REST server port","maximum":65535,"minimum":0},"server":{"type":"object","properties":{"http":{"type":"object","properties":{"handler_timeout":{"type":"string","description":"REST server handler timeout"},"idle_timeout":{"type":"string","description":"REST server idle timeout"},"read_header_timeout":{"type":"string","description":"REST server read header timeout"},"read_timeout":{"type":"string","description":"REST server read timeout"},"shutdown_duration":{"type":"string","description":"REST server shutdown duration"},"write_timeout":{"type":"string","description":"REST server write timeout"}}},"mode":{"type":"string","description":"REST server server mode"},"network":{"type":"string","description":"mysql network","enum":["tcp","tcp4","tcp6","udp","udp4","udp6","unix","unixgram","unixpacket"]},"probe_wait_time":{"type":"string","description":"REST server probe wait time"},"socket_option":{"type":"object","properties":{"ip_recover_destination_addr":{"type":"boolean","description":"server listen socket option for ip_recover_destination_addr functionality"},"ip_transparent":{"type":"boolean","description":"server listen socket option for ip_transparent functionality"},"reuse_addr":{"type":"boolean","description":"server listen socket option for reuse_addr functionality"},"reuse_port":{"type":"boolean","description":"server listen socket option for reuse_port functionality"},"tcp_cork":{"type":"boolean","description":"server listen socket option for tcp_cork functionality"},"tcp_defer_accept":{"type":"boolean","description":"server listen socket option for tcp_defer_accept functionality"},"tcp_fast_open":{"type":"boolean","description":"server listen socket option for tcp_fast_open functionality"},"tcp_no_delay":{"type":"boolean","description":"server listen socket option for tcp_no_delay functionality"},"tcp_quick_ack":{"type":"boolean","description":"server listen socket option for tcp_quick_ack functionality"}}},"socket_path":{"type":"string","description":"mysql socket_path"}}},"servicePort":{"type":"integer","description":"REST server service port","maximum":65535,"minimum":0}}}}},"tls":{"type":"object","properties":{"ca":{"type":"string","description":"TLS ca path"},"cert":{"type":"string","description":"TLS cert path"},"enabled":{"type":"boolean","description":"TLS enabled"},"insecure_skip_verify":{"type":"boolean","description":"enable/disable skip SSL certificate verification"},"key":{"type":"string","description":"TLS key path"}}}}},"service":{"type":"object","properties":{"annotations":{"type":"object","description":"service annotations"},"labels":{"type":"object","description":"service labels"}}},"serviceType":{"type":"string","description":"service type: ClusterIP, LoadBalancer or NodePort","enum":["ClusterIP","LoadBalancer","NodePort"]},"terminationGracePeriodSeconds":{"type":"integer","description":"duration in seconds pod needs to terminate gracefully","minimum":0},"time_zone":{"type":"string","description":"Time zone"},"tolerations":{"type":"array","description":"tolerations","items":{"type":"object"}},"topologySpreadConstraints":{"type":"array","description":"topology spread constraints of gateway pods","items":{"type":"object"}},"version":{"type":"string","description":"version of gateway config","pattern":"^v[0-9]+\\.[0-9]+\\.[0-9]$"},"volumeMounts":{"type":"array","description":"volume mounts","items":{"type":"object"}},"volumes":{"type":"array","description":"volumes","items":{"type":"object"}}}}}}}} diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index acc6b11101..650e2e19d3 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -871,15 +871,6 @@ defaults: # @schema {"name": "defaults.observability.prometheus.namespace", "type": "string"} # defaults.observability.prometheus.namespace -- service namespace for metrics namespace: _MY_POD_NAMESPACE_ - # @schema {"name": "defaults.observability.prometheus.collect_interval", "type": "string"} - # defaults.observability.prometheus.collect_interval -- Prometheus collect interval - collect_interval: 500ms - # @schema {"name": "defaults.observability.prometheus.collect_timeout", "type": "string"} - # defaults.observability.prometheus.collect_timeout -- Prometheus collect timeout - collect_timeout: 10s - # @schema {"name": "defaults.observability.prometheus.enable_in_memory_mode", "type": "boolean"} - # defaults.observability.prometheus.enable_in_memory_mode -- Prometheus collect with in memory - enable_in_memory_mode: true # @schema {"name": "defaults.observability.jaeger", "type": "object"} jaeger: # @schema {"name": "defaults.observability.jaeger.enabled", "type": "boolean"} diff --git a/example/client/go.mod b/example/client/go.mod index 49e84241ac..36f271f486 100644 --- a/example/client/go.mod +++ b/example/client/go.mod @@ -3,15 +3,15 @@ module github.com/vdaas/vald/example/client go 1.18 replace ( - github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.6.7 + github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.6.12 github.com/goccy/go-json => github.com/goccy/go-json v0.9.11 github.com/golang/protobuf => github.com/golang/protobuf v1.5.2 github.com/kpango/glg => github.com/kpango/glg v1.6.13 github.com/pkg/sftp => github.com/pkg/sftp v1.13.5 - golang.org/x/crypto => golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 - golang.org/x/net => golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 + golang.org/x/crypto => golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be + golang.org/x/net => golang.org/x/net v0.0.0-20221002022538-bcab6841153b golang.org/x/text => golang.org/x/text v0.3.7 - google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220902135211-223410557253 + google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 google.golang.org/grpc => google.golang.org/grpc v1.49.0 google.golang.org/protobuf => google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.4.0 @@ -23,7 +23,7 @@ require ( github.com/kpango/glg v1.6.10 github.com/vdaas/vald-client-go v1.5.6 gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 - google.golang.org/grpc v1.48.0 + google.golang.org/grpc v1.49.0 ) require ( @@ -31,9 +31,9 @@ require ( github.com/goccy/go-json v0.9.11 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/kpango/fastime v1.1.4 // indirect - golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e // indirect - golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect + golang.org/x/net v0.0.0-20220909164309-bea034e7d591 // indirect + golang.org/x/sys v0.0.0-20220908150016-7ac13a9a928d // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90 // indirect + google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce // indirect google.golang.org/protobuf v1.28.1 // indirect ) diff --git a/example/client/go.sum b/example/client/go.sum index 4d2fdf4a44..5c471404e9 100644 --- a/example/client/go.sum +++ b/example/client/go.sum @@ -1,14 +1,219 @@ +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/protoc-gen-validate v0.6.7 h1:qcZcULcd/abmQg6dwigimCNEyi4gg31M/xaciQlDml8= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/protoc-gen-validate v0.6.12 h1:fm1ASBISy+M8UPDDwR4Wj4ZiaiGiFuO9ZTxOiw2U6oc= +github.com/envoyproxy/protoc-gen-validate v0.6.12/go.mod h1:qEySVqXrEugbHKvmhI8ZqtQi75/RHSSRNpffvB4I6Bw= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kpango/fastime v1.1.4 h1:pus9JgJBg/8Jie3ozayA4yNIV67BUPhbq0wMZY3CtYo= github.com/kpango/fastime v1.1.4/go.mod h1:tTNDbIo5qL6D7g5vh2YbkyUbOVP2kD/we3rSjN22PMY= github.com/kpango/fuid v0.0.0-20220209050620-e5987ba1ea5e h1:S07NQvXJsAHn9XyHDSD43YzUyWdKW6M9Qb/sx8JY2+U= @@ -16,59 +221,308 @@ github.com/kpango/fuid v0.0.0-20220209050620-e5987ba1ea5e/go.mod h1:nVt6Zyj+/b/k github.com/kpango/glg v1.6.13 h1:QMhxOm/Oo1k8qraMtH4SQOYIgB/SI2RW2Hvrn1kgAZw= github.com/kpango/glg v1.6.13/go.mod h1:fwP/c6NJTXe0vd9L3He6myDnO33lFVfgQGtGmlMnyws= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rs/xid v1.3.0 h1:6NjYksEUlhurdVehpc7S7dk6DAmcKv8V9gG0FsVN2U4= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/vdaas/vald-client-go v1.5.6 h1:qRUUQddXYS5CHL4+WOEsfnYWHzoqYOp9GEr8Xqzmldg= github.com/vdaas/vald-client-go v1.5.6/go.mod h1:JT0mLVsJYMs/ZkUxHPviWYl9Uz6QCQtmymUHOLO5FXY= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 h1:1WGATo9HAhkWMbfyuVU0tEFP88OIkUvwaHFveQPvzCQ= -golang.org/x/net v0.0.0-20220907135653-1e95f45603a7/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908150016-7ac13a9a928d h1:RoyzQTK76Rktm3p4xyZslc8T8I1tBz4UEjZCzeh57mM= +golang.org/x/sys v0.0.0-20220908150016-7ac13a9a928d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 h1:vJpL69PeUullhJyKtTjHjENEmZU3BkO4e+fod7nKzgM= gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946/go.mod h1:BQUWDHIAygjdt1HnUPQ0eWqLN2n5FwJycrpYUVUOx2I= -google.golang.org/genproto v0.0.0-20220902135211-223410557253 h1:vXJMM8Shg7TGaYxZsQ++A/FOSlbDmDtWhS/o+3w/hj4= -google.golang.org/genproto v0.0.0-20220902135211-223410557253/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 h1:Ezh2cpcnP5Rq60sLensUsFnxh7P6513NLvNtCm9iyJ4= +google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/go.mod b/go.mod index c7815ae4b2..dfcdf6dde0 100755 --- a/go.mod +++ b/go.mod @@ -4,17 +4,16 @@ go 1.18 replace ( cloud.google.com/go => cloud.google.com/go v0.104.0 - cloud.google.com/go/bigquery => cloud.google.com/go/bigquery v1.39.0 - cloud.google.com/go/compute => cloud.google.com/go/compute v1.9.0 + cloud.google.com/go/bigquery => cloud.google.com/go/bigquery v1.42.0 + cloud.google.com/go/compute => cloud.google.com/go/compute v1.10.0 cloud.google.com/go/datastore => cloud.google.com/go/datastore v1.8.0 cloud.google.com/go/firestore => cloud.google.com/go/firestore v1.6.1 - cloud.google.com/go/iam => cloud.google.com/go/iam v0.4.0 + cloud.google.com/go/iam => cloud.google.com/go/iam v0.5.0 cloud.google.com/go/kms => cloud.google.com/go/kms v1.4.0 cloud.google.com/go/monitoring => cloud.google.com/go/monitoring v1.6.0 - cloud.google.com/go/profiler => cloud.google.com/go/profiler v0.3.0 cloud.google.com/go/pubsub => cloud.google.com/go/pubsub v1.25.1 - cloud.google.com/go/secretmanager => cloud.google.com/go/secretmanager v1.5.0 - cloud.google.com/go/storage => cloud.google.com/go/storage v1.26.0 + cloud.google.com/go/secretmanager => cloud.google.com/go/secretmanager v1.7.0 + cloud.google.com/go/storage => cloud.google.com/go/storage v1.27.0 cloud.google.com/go/trace => cloud.google.com/go/trace v1.2.0 code.cloudfoundry.org/bytefmt => code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 contrib.go.opencensus.io/exporter/aws => contrib.go.opencensus.io/exporter/aws v0.0.0-20200617204711-c478e41e60e9 @@ -23,7 +22,6 @@ replace ( git.sr.ht/~sbinet/gg => git.sr.ht/~sbinet/gg v0.3.1 github.com/AdaLogics/go-fuzz-headers => github.com/AdaLogics/go-fuzz-headers v0.0.0-20220903154154-e8044f6e4c72 github.com/Azure/azure-amqp-common-go/v3 => github.com/Azure/azure-amqp-common-go/v3 v3.2.3 - github.com/Azure/azure-pipeline-go => github.com/Azure/azure-pipeline-go v0.2.3 github.com/Azure/azure-sdk-for-go => github.com/Azure/azure-sdk-for-go v66.0.0+incompatible github.com/Azure/azure-sdk-for-go/sdk/azcore => github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.3 github.com/Azure/azure-sdk-for-go/sdk/azidentity => github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 @@ -46,9 +44,9 @@ replace ( github.com/BurntSushi/toml => github.com/BurntSushi/toml v1.2.0 github.com/DATA-DOG/go-sqlmock => github.com/DATA-DOG/go-sqlmock v1.5.0 github.com/DataDog/datadog-go => github.com/DataDog/datadog-go v4.8.3+incompatible - github.com/GoogleCloudPlatform/cloudsql-proxy => github.com/GoogleCloudPlatform/cloudsql-proxy v1.31.2 + github.com/GoogleCloudPlatform/cloudsql-proxy => github.com/GoogleCloudPlatform/cloudsql-proxy v1.32.0 github.com/Masterminds/semver/v3 => github.com/Masterminds/semver/v3 v3.1.1 - github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.5.2 + github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.6.0 github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.9.4 github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1 github.com/ajstarks/deck => github.com/ajstarks/deck v0.0.0-20220708113203-4c766a8e1850 @@ -57,35 +55,34 @@ replace ( github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 github.com/alexflint/go-filemutex => github.com/alexflint/go-filemutex v1.2.0 github.com/antihax/optional => github.com/antihax/optional v1.0.0 - github.com/antlr/antlr4/runtime/Go/antlr => github.com/antlr/antlr4/runtime/Go/antlr v1.4.10 github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 - github.com/armon/go-metrics => github.com/armon/go-metrics v0.4.0 + github.com/armon/go-metrics => github.com/armon/go-metrics v0.4.1 github.com/armon/go-radix => github.com/armon/go-radix v1.0.0 github.com/armon/go-socks5 => github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 github.com/asaskevich/govalidator => github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d - github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.44.93 - github.com/aws/aws-sdk-go-v2 => github.com/aws/aws-sdk-go-v2 v1.16.14 - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream => github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.7 - github.com/aws/aws-sdk-go-v2/config => github.com/aws/aws-sdk-go-v2/config v1.17.5 - github.com/aws/aws-sdk-go-v2/credentials => github.com/aws/aws-sdk-go-v2/credentials v1.12.18 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds => github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.15 - github.com/aws/aws-sdk-go-v2/feature/s3/manager => github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.31 - github.com/aws/aws-sdk-go-v2/internal/configsources => github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.21 - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.15 - github.com/aws/aws-sdk-go-v2/internal/ini => github.com/aws/aws-sdk-go-v2/internal/ini v1.3.22 - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding => github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.8 - github.com/aws/aws-sdk-go-v2/service/internal/checksum => github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.16 - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url => github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.15 - github.com/aws/aws-sdk-go-v2/service/internal/s3shared => github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.15 - github.com/aws/aws-sdk-go-v2/service/kms => github.com/aws/aws-sdk-go-v2/service/kms v1.18.9 - github.com/aws/aws-sdk-go-v2/service/s3 => github.com/aws/aws-sdk-go-v2/service/s3 v1.27.9 - github.com/aws/aws-sdk-go-v2/service/secretsmanager => github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.22 - github.com/aws/aws-sdk-go-v2/service/sns => github.com/aws/aws-sdk-go-v2/service/sns v1.17.17 - github.com/aws/aws-sdk-go-v2/service/sqs => github.com/aws/aws-sdk-go-v2/service/sqs v1.19.8 - github.com/aws/aws-sdk-go-v2/service/ssm => github.com/aws/aws-sdk-go-v2/service/ssm v1.27.13 - github.com/aws/aws-sdk-go-v2/service/sso => github.com/aws/aws-sdk-go-v2/service/sso v1.11.21 - github.com/aws/aws-sdk-go-v2/service/sts => github.com/aws/aws-sdk-go-v2/service/sts v1.16.17 - github.com/aws/smithy-go => github.com/aws/smithy-go v1.13.2 + github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.44.109 + github.com/aws/aws-sdk-go-v2 => github.com/aws/aws-sdk-go-v2 v1.16.16 + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream => github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 + github.com/aws/aws-sdk-go-v2/config => github.com/aws/aws-sdk-go-v2/config v1.17.8 + github.com/aws/aws-sdk-go-v2/credentials => github.com/aws/aws-sdk-go-v2/credentials v1.12.21 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds => github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 + github.com/aws/aws-sdk-go-v2/feature/s3/manager => github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.34 + github.com/aws/aws-sdk-go-v2/internal/configsources => github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 => github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 + github.com/aws/aws-sdk-go-v2/internal/ini => github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding => github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 + github.com/aws/aws-sdk-go-v2/service/internal/checksum => github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url => github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 + github.com/aws/aws-sdk-go-v2/service/internal/s3shared => github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 + github.com/aws/aws-sdk-go-v2/service/kms => github.com/aws/aws-sdk-go-v2/service/kms v1.18.11 + github.com/aws/aws-sdk-go-v2/service/s3 => github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 + github.com/aws/aws-sdk-go-v2/service/secretsmanager => github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.16.2 + github.com/aws/aws-sdk-go-v2/service/sns => github.com/aws/aws-sdk-go-v2/service/sns v1.18.1 + github.com/aws/aws-sdk-go-v2/service/sqs => github.com/aws/aws-sdk-go-v2/service/sqs v1.19.10 + github.com/aws/aws-sdk-go-v2/service/ssm => github.com/aws/aws-sdk-go-v2/service/ssm v1.30.0 + github.com/aws/aws-sdk-go-v2/service/sso => github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 + github.com/aws/aws-sdk-go-v2/service/sts => github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 + github.com/aws/smithy-go => github.com/aws/smithy-go v1.13.3 github.com/benbjohnson/clock => github.com/benbjohnson/clock v1.3.0 github.com/beorn7/perks => github.com/beorn7/perks v1.0.1 github.com/bgentry/speakeasy => github.com/bgentry/speakeasy v0.1.0 @@ -96,21 +93,19 @@ replace ( github.com/boombuler/barcode => github.com/boombuler/barcode v1.0.1 github.com/buger/jsonparser => github.com/buger/jsonparser v1.1.1 github.com/cenkalti/backoff/v4 => github.com/cenkalti/backoff/v4 v4.1.3 - github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.3.0 + github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.4.1 github.com/certifi/gocertifi => github.com/certifi/gocertifi v0.0.0-20210507211836-431795d63e8d github.com/cespare/xxhash/v2 => github.com/cespare/xxhash/v2 v2.1.2 github.com/checkpoint-restore/go-criu/v5 => github.com/checkpoint-restore/go-criu/v5 v5.3.0 github.com/chzyer/logex => github.com/chzyer/logex v1.2.1 github.com/chzyer/readline => github.com/chzyer/readline v1.5.1 github.com/chzyer/test => github.com/chzyer/test v1.0.0 - github.com/cilium/ebpf => github.com/cilium/ebpf v0.9.1 + github.com/cilium/ebpf => github.com/cilium/ebpf v0.9.3 github.com/circonus-labs/circonus-gometrics => github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible github.com/cncf/udpa/go => github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe github.com/cncf/xds/go => github.com/cncf/xds/go v0.0.0-20220520190051-1e77728a1eaa github.com/cockroachdb/apd => github.com/cockroachdb/apd v1.1.0 github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven v1.0.2 - github.com/cockroachdb/errors => github.com/cockroachdb/errors v1.9.0 - github.com/cockroachdb/logtags => github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f github.com/containerd/aufs => github.com/containerd/aufs v1.0.0 github.com/containerd/btrfs => github.com/containerd/btrfs v1.0.0 github.com/containerd/cgroups => github.com/containerd/cgroups v1.0.4 @@ -132,7 +127,7 @@ replace ( github.com/coreos/go-iptables => github.com/coreos/go-iptables v0.6.0 github.com/coreos/go-oidc => github.com/coreos/go-oidc v2.2.1+incompatible github.com/coreos/go-semver => github.com/coreos/go-semver v0.3.0 - github.com/coreos/go-systemd/v22 => github.com/coreos/go-systemd/v22 v22.3.2 + github.com/coreos/go-systemd/v22 => github.com/coreos/go-systemd/v22 v22.4.0 github.com/cpuguy83/go-md2man/v2 => github.com/cpuguy83/go-md2man/v2 v2.0.2 github.com/creack/pty => github.com/creack/pty v1.1.18 github.com/cyphar/filepath-securejoin => github.com/cyphar/filepath-securejoin v0.2.3 @@ -145,13 +140,13 @@ replace ( github.com/devigned/tab => github.com/devigned/tab v0.1.1 github.com/dgryski/go-rendezvous => github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f github.com/dgryski/go-sip13 => github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245 - github.com/digitalocean/godo => github.com/digitalocean/godo v1.83.0 + github.com/digitalocean/godo => github.com/digitalocean/godo v1.86.0 github.com/dimchansky/utfbom => github.com/dimchansky/utfbom v1.1.1 github.com/dnaeon/go-vcr => github.com/dnaeon/go-vcr v1.2.0 - github.com/docker/cli => github.com/docker/cli v20.10.17+incompatible + github.com/docker/cli => github.com/docker/cli v20.10.18+incompatible github.com/docker/distribution => github.com/docker/distribution v2.8.1+incompatible - github.com/docker/docker => github.com/moby/moby v20.10.17+incompatible - github.com/docker/docker-credential-helpers => github.com/docker/docker-credential-helpers v0.6.4 + github.com/docker/docker => github.com/docker/docker v20.10.18+incompatible + github.com/docker/docker-credential-helpers => github.com/docker/docker-credential-helpers v0.7.0 github.com/docker/go-connections => github.com/docker/go-connections v0.4.0 github.com/docker/go-events => github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c github.com/docker/go-metrics => github.com/docker/go-metrics v0.0.1 @@ -161,8 +156,10 @@ replace ( github.com/dvyukov/go-fuzz => github.com/dvyukov/go-fuzz v0.0.0-20220726122315-1d375ef9f9f6 github.com/edsrzf/mmap-go => github.com/edsrzf/mmap-go v1.1.0 github.com/elazarl/goproxy => github.com/elazarl/goproxy v0.0.0-20220901064549-fbd10ff4f5a1 + github.com/emicklei/go-restful => github.com/emicklei/go-restful v2.16.0+incompatible + github.com/emicklei/go-restful/v3 => github.com/emicklei/go-restful/v3 v3.9.0 github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane v0.10.3 - github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.6.7 + github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v0.6.12 github.com/evanphx/json-patch => github.com/evanphx/json-patch v0.5.2 github.com/fatih/color => github.com/fatih/color v1.13.0 github.com/felixge/httpsnoop => github.com/felixge/httpsnoop v1.0.3 @@ -171,8 +168,6 @@ replace ( github.com/fortytw2/leaktest => github.com/fortytw2/leaktest v1.3.0 github.com/frankban/quicktest => github.com/frankban/quicktest v1.14.3 github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.5.4 - github.com/getkin/kin-openapi => github.com/getkin/kin-openapi v0.100.0 - github.com/getsentry/sentry-go => github.com/getsentry/sentry-go v0.13.0 github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0 github.com/gin-contrib/sse => github.com/gin-contrib/sse v0.1.0 github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.8.1 @@ -204,7 +199,7 @@ replace ( github.com/go-playground/assert/v2 => github.com/go-playground/assert/v2 v2.2.0 github.com/go-playground/locales => github.com/go-playground/locales v0.14.0 github.com/go-playground/universal-translator => github.com/go-playground/universal-translator v0.18.0 - github.com/go-playground/validator/v10 => github.com/go-playground/validator/v10 v10.11.0 + github.com/go-playground/validator/v10 => github.com/go-playground/validator/v10 v10.11.1 github.com/go-redis/redis/v8 => github.com/go-redis/redis/v8 v8.11.5 github.com/go-resty/resty/v2 => github.com/go-resty/resty/v2 v2.7.0 github.com/go-sql-driver/mysql => github.com/go-sql-driver/mysql v1.6.0 @@ -222,7 +217,7 @@ replace ( github.com/gocql/gocql => github.com/gocql/gocql v1.2.1 github.com/gocraft/dbr/v2 => github.com/gocraft/dbr/v2 v2.7.3 github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.1.0 - github.com/gofrs/uuid => github.com/gofrs/uuid v4.2.0+incompatible + github.com/gofrs/uuid => github.com/gofrs/uuid v4.3.0+incompatible github.com/gogo/googleapis => github.com/gogo/googleapis v1.4.1 github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2 github.com/golang-jwt/jwt/v4 => github.com/golang-jwt/jwt/v4 v4.4.2 @@ -235,9 +230,8 @@ replace ( github.com/golang/protobuf => github.com/golang/protobuf v1.5.2 github.com/golang/snappy => github.com/golang/snappy v0.0.4 github.com/google/btree => github.com/google/btree v1.1.2 - github.com/google/cel-go => github.com/google/cel-go v0.12.5 github.com/google/gnostic => github.com/google/gnostic v0.6.9 - github.com/google/go-cmp => github.com/google/go-cmp v0.5.8 + github.com/google/go-cmp => github.com/google/go-cmp v0.5.9 github.com/google/go-containerregistry => github.com/google/go-containerregistry v0.11.0 github.com/google/go-querystring => github.com/google/go-querystring v1.1.0 github.com/google/go-replayers/grpcreplay => github.com/google/go-replayers/grpcreplay v1.1.0 @@ -266,11 +260,11 @@ replace ( github.com/hailocab/go-hostpool => github.com/kpango/go-hostpool v0.0.0-20210303030322-aab80263dcd0 github.com/hanwen/go-fuse => github.com/hanwen/go-fuse v1.0.0 github.com/hanwen/go-fuse/v2 => github.com/hanwen/go-fuse/v2 v2.1.0 - github.com/hashicorp/consul/api => github.com/hashicorp/consul/api v1.14.0 + github.com/hashicorp/consul/api => github.com/hashicorp/consul/api v1.15.2 github.com/hashicorp/consul/sdk => github.com/hashicorp/consul/sdk v0.11.0 github.com/hashicorp/errwrap => github.com/hashicorp/errwrap v1.1.0 github.com/hashicorp/go-cleanhttp => github.com/hashicorp/go-cleanhttp v0.5.2 - github.com/hashicorp/go-hclog => github.com/hashicorp/go-hclog v1.3.0 + github.com/hashicorp/go-hclog => github.com/hashicorp/go-hclog v1.3.1 github.com/hashicorp/go-immutable-radix => github.com/hashicorp/go-immutable-radix v1.3.1 github.com/hashicorp/go-msgpack => github.com/hashicorp/go-msgpack v1.1.5 github.com/hashicorp/go-multierror => github.com/hashicorp/go-multierror v1.1.1 @@ -285,12 +279,12 @@ replace ( github.com/hashicorp/mdns => github.com/hashicorp/mdns v1.0.5 github.com/hashicorp/memberlist => github.com/hashicorp/memberlist v0.4.0 github.com/hashicorp/serf => github.com/hashicorp/serf v0.10.0 - github.com/hetznercloud/hcloud-go => github.com/hetznercloud/hcloud-go v1.35.2 + github.com/hetznercloud/hcloud-go => github.com/hetznercloud/hcloud-go v1.35.3 github.com/iancoleman/strcase => github.com/iancoleman/strcase v0.2.0 github.com/ianlancetaylor/demangle => github.com/ianlancetaylor/demangle v0.0.0-20220517205856-0058ec4f073c github.com/imdario/mergo => github.com/imdario/mergo v0.3.13 github.com/inconshreveable/mousetrap => github.com/inconshreveable/mousetrap v1.0.1 - github.com/intel/goresctrl => github.com/intel/goresctrl v0.2.0 + github.com/intel/goresctrl => github.com/intel/goresctrl v0.3.0 github.com/jackc/chunkreader/v2 => github.com/jackc/chunkreader/v2 v2.0.1 github.com/jackc/pgconn => github.com/jackc/pgconn v1.13.0 github.com/jackc/pgio => github.com/jackc/pgio v1.0.0 @@ -314,9 +308,9 @@ replace ( github.com/julienschmidt/httprouter => github.com/julienschmidt/httprouter v1.3.0 github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.6.2 github.com/kisielk/gotool => github.com/kisielk/gotool v1.0.0 - github.com/klauspost/compress => github.com/klauspost/compress v1.15.10-0.20220907083105-a63f67b75f97 + github.com/klauspost/compress => github.com/klauspost/compress v1.15.12-0.20220926082712-7db606e4f337 github.com/klauspost/cpuid/v2 => github.com/klauspost/cpuid/v2 v2.1.1 - github.com/kolo/xmlrpc => github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b + github.com/kolo/xmlrpc => github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b github.com/kpango/fastime => github.com/kpango/fastime v1.1.4 github.com/kpango/fuid => github.com/kpango/fuid v0.0.0-20220209050620-e5987ba1ea5e github.com/kpango/gache => github.com/kpango/gache v1.2.8 @@ -329,17 +323,16 @@ replace ( github.com/leodido/go-urn => github.com/leodido/go-urn v1.2.1 github.com/lib/pq => github.com/lib/pq v1.10.7 github.com/liggitt/tabwriter => github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de - github.com/linode/linodego => github.com/linode/linodego v1.9.1 + github.com/linode/linodego => github.com/linode/linodego v1.9.3 github.com/linuxkit/virtsock => github.com/linuxkit/virtsock v0.0.0-20220523201153-1a23e78aa7a2 github.com/lucasb-eyer/go-colorful => github.com/lucasb-eyer/go-colorful v1.2.0 github.com/lyft/protoc-gen-star => github.com/lyft/protoc-gen-star v0.6.1 github.com/mailru/easyjson => github.com/mailru/easyjson v0.7.7 github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.1.13 - github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy v0.0.7 github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.16 github.com/mattn/go-shellwords => github.com/mattn/go-shellwords v1.0.12 github.com/mattn/go-sqlite3 => github.com/mattn/go-sqlite3 v1.14.15 - github.com/matttproud/golang_protobuf_extensions => github.com/matttproud/golang_protobuf_extensions v1.0.1 + github.com/matttproud/golang_protobuf_extensions => github.com/matttproud/golang_protobuf_extensions v1.0.2 github.com/miekg/dns => github.com/miekg/dns v1.1.50 github.com/miekg/pkcs11 => github.com/miekg/pkcs11 v1.1.1 github.com/mistifyio/go-zfs => github.com/mistifyio/go-zfs v2.1.1+incompatible @@ -374,7 +367,7 @@ replace ( github.com/opencontainers/image-spec => github.com/opencontainers/image-spec v1.0.2 github.com/opencontainers/runc => github.com/opencontainers/runc v1.1.4 github.com/opencontainers/runtime-spec => github.com/opencontainers/runtime-spec v1.0.2 - github.com/opencontainers/selinux => github.com/opencontainers/selinux v1.10.1 + github.com/opencontainers/selinux => github.com/opencontainers/selinux v1.10.2 github.com/opentracing/opentracing-go => github.com/opentracing/opentracing-go v1.2.0 github.com/pascaldekloe/goe => github.com/pascaldekloe/goe v0.1.0 github.com/pelletier/go-toml => github.com/pelletier/go-toml v1.9.5 @@ -398,11 +391,11 @@ replace ( github.com/prometheus/common/sigv4 => github.com/prometheus/common/sigv4 v0.1.0 github.com/prometheus/exporter-toolkit => github.com/prometheus/exporter-toolkit v0.7.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.8.0 + github.com/prometheus/prometheus => github.com/prometheus/prometheus v1.99.0 github.com/prometheus/prometheus/v2 => github.com/prometheus/prometheus/v2 v2.35.0-retract - github.com/prometheus/statsd_exporter => github.com/prometheus/statsd_exporter v0.22.7 github.com/quasilyte/go-ruleguard => github.com/quasilyte/go-ruleguard v0.3.18 github.com/quasilyte/go-ruleguard/dsl => github.com/quasilyte/go-ruleguard/dsl v0.3.21 - github.com/quasilyte/gogrep => github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f + github.com/quasilyte/gogrep => github.com/quasilyte/gogrep v0.0.0-20221002170852-631b4cfd0c04 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.9.0 @@ -439,7 +432,7 @@ replace ( github.com/stretchr/testify => github.com/stretchr/testify v1.8.0 github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/tchap/go-patricia => github.com/tchap/go-patricia v2.3.0+incompatible - github.com/tidwall/pretty => github.com/tidwall/pretty v1.2.0 + github.com/tidwall/pretty => github.com/tidwall/pretty v1.2.1 github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 github.com/tv42/httpunix => github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c github.com/ugorji/go => github.com/ugorji/go v1.2.7 @@ -447,7 +440,7 @@ replace ( github.com/urfave/cli => github.com/urfave/cli v1.22.10 github.com/vdaas/vald-client-go => github.com/vdaas/vald-client-go v1.5.6 github.com/vishvananda/netlink => github.com/vishvananda/netlink v1.1.0 - github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 + github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20220913150850-18c4f4234207 github.com/xdg-go/pbkdf2 => github.com/xdg-go/pbkdf2 v1.0.0 github.com/xdg-go/scram => github.com/xdg-go/scram v1.1.1 github.com/xdg-go/stringprep => github.com/xdg-go/stringprep v1.0.3 @@ -457,37 +450,38 @@ replace ( github.com/xiang90/probing => github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 github.com/xlab/treeprint => github.com/xlab/treeprint v1.1.0 github.com/youmark/pkcs8 => github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a - github.com/yuin/goldmark => github.com/yuin/goldmark v1.4.14 + github.com/yuin/goldmark => github.com/yuin/goldmark v1.5.2 github.com/zeebo/assert => github.com/zeebo/assert v1.3.1 github.com/zeebo/xxh3 => github.com/zeebo/xxh3 v1.0.2 go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.6 - go.etcd.io/etcd/api/v3 => go.etcd.io/etcd/api/v3 v3.5.4 - go.etcd.io/etcd/client/pkg/v3 => go.etcd.io/etcd/client/pkg/v3 v3.5.4 - go.etcd.io/etcd/client/v2 => go.etcd.io/etcd/client/v2 v2.305.4 - go.etcd.io/etcd/client/v3 => go.etcd.io/etcd/client/v3 v3.5.4 - go.etcd.io/etcd/pkg/v3 => go.etcd.io/etcd/pkg/v3 v3.5.4 - go.etcd.io/etcd/raft/v3 => go.etcd.io/etcd/raft/v3 v3.5.4 - go.etcd.io/etcd/server/v3 => go.etcd.io/etcd/server/v3 v3.5.4 + go.etcd.io/etcd/api/v3 => go.etcd.io/etcd/api/v3 v3.5.5 + go.etcd.io/etcd/client/pkg/v3 => go.etcd.io/etcd/client/pkg/v3 v3.5.5 + go.etcd.io/etcd/client/v2 => go.etcd.io/etcd/client/v2 v2.305.5 + go.etcd.io/etcd/client/v3 => go.etcd.io/etcd/client/v3 v3.5.5 + go.etcd.io/etcd/pkg/v3 => go.etcd.io/etcd/pkg/v3 v3.5.5 + go.etcd.io/etcd/raft/v3 => go.etcd.io/etcd/raft/v3 v3.5.5 + go.etcd.io/etcd/server/v3 => go.etcd.io/etcd/server/v3 v3.5.5 go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver v1.10.2 go.mozilla.org/pkcs7 => go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 go.opencensus.io => go.opencensus.io v0.23.0 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.34.0 - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp => go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.34.0 - go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.9.0 - go.opentelemetry.io/otel/exporters/jaeger => go.opentelemetry.io/otel/exporters/jaeger v1.9.0 + go.opentelemetry.io/contrib => go.opentelemetry.io/contrib v1.10.0 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.1 + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp => go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.36.1 + go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.10.0 + go.opentelemetry.io/otel/exporters/jaeger => go.opentelemetry.io/otel/exporters/jaeger v1.10.0 go.opentelemetry.io/otel/exporters/otlp => go.opentelemetry.io/otel/exporters/otlp v0.20.0 - go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.9.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.9.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.9.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.9.0 - go.opentelemetry.io/otel/exporters/prometheus => go.opentelemetry.io/otel/exporters/prometheus v0.31.0 - go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.31.0 - go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.9.0 + go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.10.0 + go.opentelemetry.io/otel/exporters/prometheus => go.opentelemetry.io/otel/exporters/prometheus v0.32.1 + go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.32.1 + go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.10.0 go.opentelemetry.io/otel/sdk/export/metric => go.opentelemetry.io/otel/sdk/export/metric v0.28.0 - go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.31.0 - go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.9.0 + go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.32.1 + go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.10.0 go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp v0.19.0 - go.starlark.net => go.starlark.net v0.0.0-20220817180228-f738f5508c12 + go.starlark.net => go.starlark.net v0.0.0-20220928063852-5fccb4daaf6d go.uber.org/atomic => go.uber.org/atomic v1.10.0 go.uber.org/automaxprocs => go.uber.org/automaxprocs v1.5.1 go.uber.org/goleak => go.uber.org/goleak v1.2.0 @@ -495,42 +489,44 @@ replace ( go.uber.org/zap => go.uber.org/zap v1.23.0 go4.org/intern => go4.org/intern v0.0.0-20220617035311-6925f38cc365 go4.org/unsafe/assume-no-moving-gc => go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 - gocloud.dev => gocloud.dev v0.26.0 - golang.org/x/crypto => golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 - golang.org/x/exp => golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0 - golang.org/x/exp/typeparams => golang.org/x/exp/typeparams v0.0.0-20220907003533-145caa8ea1d0 + gocloud.dev => gocloud.dev v0.27.0 + golang.org/x/crypto => golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be + golang.org/x/exp => golang.org/x/exp v0.0.0-20221002003631-540bb7301a08 + golang.org/x/exp/typeparams => golang.org/x/exp/typeparams v0.0.0-20221002003631-540bb7301a08 golang.org/x/image => golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 golang.org/x/lint => golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 + golang.org/x/mobile => golang.org/x/mobile v0.0.0-20220928052126-fa6bcb076835 golang.org/x/mod => golang.org/x/mod v0.5.1 - golang.org/x/net => golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 - golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 - golang.org/x/sync => golang.org/x/sync v0.0.0-20220907140024-f12130a52804 - golang.org/x/sys => golang.org/x/sys v0.0.0-20220907062415-87db552b00fd - golang.org/x/term => golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 + golang.org/x/net => golang.org/x/net v0.0.0-20221002022538-bcab6841153b + golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 + golang.org/x/sync => golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 + golang.org/x/sys => golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec + golang.org/x/term => golang.org/x/term v0.0.0-20220919170432-7a66f970e087 golang.org/x/text => golang.org/x/text v0.3.7 - golang.org/x/time => golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 + golang.org/x/time => golang.org/x/time v0.0.0-20220922220347-f3bd1da661af golang.org/x/tools => golang.org/x/tools v0.1.12 golang.org/x/xerrors => golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 gomodules.xyz/jsonpatch/v2 => gomodules.xyz/jsonpatch/v2 v2.2.0 gonum.org/v1/gonum => gonum.org/v1/gonum v0.12.0 gonum.org/v1/hdf5 => gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 gonum.org/v1/plot => gonum.org/v1/plot v0.12.0 - google.golang.org/api => google.golang.org/api v0.95.0 + google.golang.org/api => google.golang.org/api v0.98.0 google.golang.org/appengine => google.golang.org/appengine v1.6.7 - google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220902135211-223410557253 + google.golang.org/genproto => google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 google.golang.org/grpc => google.golang.org/grpc v1.49.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc => google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 google.golang.org/protobuf => google.golang.org/protobuf v1.28.1 gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 v2.2.6 gopkg.in/check.v1 => gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c - gopkg.in/errgo.v2 => gopkg.in/errgo.v2 v2.1.0 + gopkg.in/gcfg.v1 => gopkg.in/gcfg.v1 v1.2.3 gopkg.in/inconshreveable/log15.v2 => gopkg.in/inconshreveable/log15.v2 v2.0.0-20200109203555-b30bc20e4fd1 gopkg.in/inf.v0 => gopkg.in/inf.v0 v0.9.1 gopkg.in/ini.v1 => gopkg.in/ini.v1 v1.67.0 gopkg.in/natefinch/lumberjack.v2 => gopkg.in/natefinch/lumberjack.v2 v2.0.0 gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 v2.6.0 - gopkg.in/telebot.v3 => gopkg.in/telebot.v3 v3.0.0 + gopkg.in/telebot.v3 => gopkg.in/telebot.v3 v3.0.1 gopkg.in/tomb.v1 => gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 + gopkg.in/warnings.v0 => gopkg.in/warnings.v0 v0.1.2 gopkg.in/yaml.v2 => gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1 gotest.tools/v3 => gotest.tools/v3 v3.3.0 @@ -542,18 +538,17 @@ replace ( k8s.io/apiserver => k8s.io/apiserver v0.25.0 k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.0 k8s.io/client-go => k8s.io/client-go v0.25.0 - k8s.io/code-generator => k8s.io/code-generator v0.25.0 k8s.io/component-base => k8s.io/component-base v0.25.0 k8s.io/cri-api => k8s.io/cri-api v0.25.0 - k8s.io/gengo => k8s.io/gengo v0.0.0-20220902162205-c0856e24416d + k8s.io/gengo => k8s.io/gengo v0.0.0-20221003092416-e83a76d3209c k8s.io/klog => k8s.io/klog v1.0.0 - k8s.io/klog/v2 => k8s.io/klog/v2 v2.80.0 - k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea + k8s.io/klog/v2 => k8s.io/klog/v2 v2.80.1 + k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20220928191237-829ce0c27909 + k8s.io/kubernetes => k8s.io/kubernetes v0.25.0 k8s.io/metrics => k8s.io/metrics v0.25.0 - k8s.io/utils => k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73 nhooyr.io/websocket => nhooyr.io/websocket v1.8.7 rsc.io/pdf => rsc.io/pdf v0.1.1 - sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.32 + sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.33 sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.13.0 sigs.k8s.io/json => sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.12.1 @@ -563,9 +558,9 @@ replace ( ) require ( - cloud.google.com/go/storage v1.23.0 + cloud.google.com/go/storage v1.24.0 code.cloudfoundry.org/bytefmt v0.0.0-20190710193110-1eb035ffe2b6 - github.com/aws/aws-sdk-go v1.43.31 + github.com/aws/aws-sdk-go v1.44.68 github.com/envoyproxy/protoc-gen-validate v0.6.7 github.com/fsnotify/fsnotify v1.5.4 github.com/go-redis/redis/v8 v8.0.0-00010101000000-000000000000 @@ -584,33 +579,34 @@ require ( github.com/leanovate/gopter v0.0.0-00010101000000-000000000000 github.com/lucasb-eyer/go-colorful v0.0.0-00010101000000-000000000000 github.com/pierrec/lz4/v3 v3.0.0-00010101000000-000000000000 + github.com/prometheus/client_golang v1.13.0 github.com/quasilyte/go-ruleguard v0.0.0-00010101000000-000000000000 github.com/quasilyte/go-ruleguard/dsl v0.3.21 github.com/scylladb/gocqlx v0.0.0-00010101000000-000000000000 github.com/vdaas/vald-client-go v0.0.0-00010101000000-000000000000 github.com/zeebo/xxh3 v1.0.2 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 - go.opentelemetry.io/otel v1.9.0 + go.opentelemetry.io/otel v1.10.0 go.opentelemetry.io/otel/exporters/jaeger v0.0.0-00010101000000-000000000000 go.opentelemetry.io/otel/exporters/prometheus v0.0.0-00010101000000-000000000000 - go.opentelemetry.io/otel/metric v0.31.0 - go.opentelemetry.io/otel/sdk v1.9.0 - go.opentelemetry.io/otel/sdk/metric v0.31.0 - go.opentelemetry.io/otel/trace v1.9.0 + go.opentelemetry.io/otel/metric v0.32.1 + go.opentelemetry.io/otel/sdk v1.10.0 + go.opentelemetry.io/otel/sdk/metric v0.32.1 + go.opentelemetry.io/otel/trace v1.10.0 go.uber.org/automaxprocs v0.0.0-00010101000000-000000000000 go.uber.org/goleak v1.1.12 go.uber.org/zap v1.23.0 gocloud.dev v0.0.0-00010101000000-000000000000 - golang.org/x/net v0.0.0-20220722155237-a158d28d115b - golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 + golang.org/x/net v0.0.0-20220909164309-bea034e7d591 + golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 - golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab + golang.org/x/sys v0.0.0-20220908150016-7ac13a9a928d golang.org/x/text v0.3.7 golang.org/x/tools v0.1.12 gonum.org/v1/hdf5 v0.0.0-00010101000000-000000000000 gonum.org/v1/plot v0.0.0-00010101000000-000000000000 - google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc - google.golang.org/grpc v1.48.0 + google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce + google.golang.org/grpc v1.49.0 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v2 v2.4.0 inet.af/netaddr v0.0.0-00010101000000-000000000000 @@ -624,7 +620,7 @@ require ( require ( cloud.google.com/go v0.104.0 // indirect - cloud.google.com/go/compute v1.7.0 // indirect + cloud.google.com/go/compute v1.9.0 // indirect cloud.google.com/go/iam v0.3.0 // indirect git.sr.ht/~sbinet/gg v0.3.1 // indirect github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect @@ -677,7 +673,6 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.13.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect @@ -689,18 +684,18 @@ require ( github.com/xlab/treeprint v1.1.0 // indirect go.opencensus.io v0.23.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect - go.uber.org/atomic v1.9.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect golang.org/x/exp/typeparams v0.0.0-20220827204233-334a2380cb91 // indirect golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 // indirect golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect - golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect - google.golang.org/api v0.94.0 // indirect + google.golang.org/api v0.97.0 // indirect google.golang.org/appengine v1.6.7 // 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 cb6139b8ae..fc56a6e5af 100644 --- a/go.sum +++ b/go.sum @@ -1,24 +1,80 @@ cloud.google.com/go v0.104.0 h1:gSmWO7DY1vOm0MVU6DNXM11BWHHsTUmsC5cv1fuW5X8= cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= -cloud.google.com/go/bigquery v1.39.0/go.mod h1:XVXHPWZICwGSvPcygubr2MeTF9SrNvU77dV2YYolyYQ= -cloud.google.com/go/compute v1.9.0 h1:ED/FP4xv8GJw63v556/ASNc1CeeLUO2Bs8nzaHchkHg= -cloud.google.com/go/compute v1.9.0/go.mod h1:lWv1h/zUWTm/LozzfTJhBSkd6ShQq8la8VeeuOEGxfY= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/compute v1.10.0 h1:aoLIYaA1fX3ywihqpBk2APQKOo20nXsp1GEZQbx5Jk4= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= cloud.google.com/go/datastore v1.8.0/go.mod h1:q1CpHVByTlXppdqTcu4LIhCsTn3fhtZ5R7+TajciO+M= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= -cloud.google.com/go/iam v0.4.0 h1:YBYU00SCDzZJdHqVc4I5d6lsklcYIjQZa1YmEz4jlSE= -cloud.google.com/go/iam v0.4.0/go.mod h1:cbaZxyScUhxl7ZAkNWiALgihfP75wS/fUsVNaa1r3vA= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/iam v0.5.0 h1:fz9X5zyTWBmamZsqvqZqD7khbifcZF/q+Z1J8pfhIUg= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= cloud.google.com/go/monitoring v1.6.0/go.mod h1:w+OY1TYCk4MtvY7WfEHlIp5mP8SV/gDSqOsvGhVa2KM= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= cloud.google.com/go/pubsub v1.25.1/go.mod h1:bY6l7rF8kCcwz6V3RaQ6kK4p5g7qc7PqjRoE9wDOqOU= -cloud.google.com/go/secretmanager v1.5.0/go.mod h1:5C9kM+RwSpkURNovKySkNvGQLUaOgyoR5W0RUx2SyHQ= -cloud.google.com/go/storage v1.26.0 h1:lYAGjknyDJirSzfwUlkv4Nsnj7od7foxQNH/fqZqles= -cloud.google.com/go/storage v1.26.0/go.mod h1:mk/N7YwIKEWyTvXAWQCIeiCTdLoRH6Pd5xmSnolQLTI= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/secretmanager v1.7.0/go.mod h1:20dYAPbj+H4+pXdBRN2z77yugQJJ30UF2kL9OWPs+L0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgyMQ= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= cloud.google.com/go/trace v1.2.0/go.mod h1:Wc8y/uYyOhPy12KEnXG9XGrvfMz5F5SrYecQlbW1rwM= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5 h1:tM5+dn2C9xZw1RzgI6WTQW1rGqdUimKB3RFbyu4h6Hc= code.cloudfoundry.org/bytefmt v0.0.0-20211005130812-5bb3c17173e5/go.mod h1:v4VVB6oBMz/c9fRY6vZrwr5xKRWOH5NPDjQZlPk0Gbs= +code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= contrib.go.opencensus.io/exporter/aws v0.0.0-20200617204711-c478e41e60e9/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= -contrib.go.opencensus.io/exporter/stackdriver v0.13.10/go.mod h1:I5htMbyta491eUxufwwZPQdcKvvgzMB4O9ni41YnIM8= +contrib.go.opencensus.io/exporter/stackdriver v0.13.13/go.mod h1:5pSSGY0Bhuk7waTHuDf4aQ8D2DrhgETRo9fy6k3Xlzc= contrib.go.opencensus.io/integrations/ocsql v0.1.7/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= eliasnaur.com/font v0.0.0-20220124212145-832bb8fc08c3/go.mod h1:OYVuxibdk9OSLX8vAqydtRPP87PyTFcT9uH3MlEGBQA= fyne.io/fyne v1.4.3/go.mod h1:8kiPBNSDmuplxs9WnKCkaWYqbcXFy0DeAzwa6PBO9Z8= @@ -30,15 +86,12 @@ gioui.org/shader v1.0.6/go.mod h1:mWdiME581d/kV7/iEhLmUgUK5iZ09XR5XpduXzbePVM= git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE4ehlXQZHpMja2OtxC2Tas= -github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= -github.com/Azure/azure-pipeline-go v0.2.3/go.mod h1:x841ezTBIMG6O3lAcl8ATHnsOPVl2bqk7S3ta6S6u4k= github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.3/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.1/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-service-bus-go v0.11.5/go.mod h1:MI6ge2CuQWBVq+ly456MY7XqNLJip5LO1iSFodbNLbU= -github.com/Azure/azure-storage-blob-go v0.15.0 h1:rXtgp8tN1p29GvpGgfJetavIG0V7OgcSXPpwp3tx6qk= -github.com/Azure/azure-storage-blob-go v0.15.0/go.mod h1:vbjsVbX0dlxnRc4FFMPsS9BsJWPcne7GB7onqlPvz58= +github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk= +github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= github.com/Azure/go-amqp v0.17.5/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= github.com/Azure/go-autorest v14.2.1-0.20220808173745-2fa44cb18b83+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.29-0.20220808173745-2fa44cb18b83/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= @@ -48,13 +101,13 @@ github.com/Azure/go-autorest/autorest/azure/cli v0.4.7-0.20220808173745-2fa44cb1 github.com/Azure/go-autorest/autorest/date v0.3.1-0.20220808173745-2fa44cb18b83/go.mod h1:CHJ5Cu2H2HOHbo8wSOidbGEk/L11sCIy/IglS16YuRI= github.com/Azure/go-autorest/autorest/mocks v0.4.3-0.20220808173745-2fa44cb18b83/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= github.com/Azure/go-autorest/autorest/to v0.4.1-0.20220808173745-2fa44cb18b83/go.mod h1:DSh3VxN6gfEglfL5RXwMuwLQrHEayq9JF/NUe+DkxCI= -github.com/Azure/go-autorest/autorest/validation v0.3.2-0.20220808173745-2fa44cb18b83/go.mod h1:y6/C2u1QjfM/lldwLunO02nDUwfTwTfJ3u/HeW7JoYs= github.com/Azure/go-autorest/logger v0.2.2-0.20220808173745-2fa44cb18b83/go.mod h1:mwDiRID/uD2cdq/qPxuXAZnmOEnn6qSn/xnC+0Q//eE= github.com/Azure/go-autorest/tracing v0.6.1-0.20220808173745-2fa44cb18b83/go.mod h1:DWJLY5/ttkqsBNafOmCvqIlik+Da9EFPSpzNnCWRjMo= +github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= -github.com/GoogleCloudPlatform/cloudsql-proxy v1.31.2/go.mod h1:qR6jVnZTKDCW3j+fC9mOEPHm++1nKDMkqbbkD6KNsfo= +github.com/GoogleCloudPlatform/cloudsql-proxy v1.32.0/go.mod h1:FjoDxLvxFAbnXFuUKkzM7rY66YaU/YHezlau786y9hs= github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9/go.mod h1:7uhhqiBaR4CpN0k9rMjOtjpcfGd6DG2m04zQxKnWQ0I= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/ajstarks/deck v0.0.0-20220708113203-4c766a8e1850/go.mod h1:8XEdKkD+Bk7YhhX9FS9Nz2eghb+Hh58w9U4OL28zd14= @@ -67,51 +120,51 @@ github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGW github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/aws/aws-sdk-go v1.44.93 h1:hAgd9fuaptBatSft27/5eBMdcA8+cIMqo96/tZ6rKl8= -github.com/aws/aws-sdk-go v1.44.93/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go-v2 v1.16.14 h1:db6GvO4Z2UqHt5gvT0lr6J5x5P+oQ7bdRzczVaRekMU= -github.com/aws/aws-sdk-go-v2 v1.16.14/go.mod h1:s/G+UV29dECbF5rf+RNj1xhlmvoNurGSr+McVSRj59w= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.7 h1:/kxQjtZc7j67TMW/aFJfpsrlvFhsq3lNbX41qN5Tro4= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.7/go.mod h1:KvHyNlxCjo9Y1Fsz+6Ex9OaN2jKijvMxzROxpW5Vctc= -github.com/aws/aws-sdk-go-v2/config v1.17.5 h1:+NS1BWvprx7nHcIk5o32LrZgifs/7Pm1V2nWjQgZ2H0= -github.com/aws/aws-sdk-go-v2/config v1.17.5/go.mod h1:H0cvPNDO3uExWts/9PDhD/0ne2esu1uaIulwn1vkwxM= -github.com/aws/aws-sdk-go-v2/credentials v1.12.18 h1:HF62tbhARhgLfvmfwUbL9qZ+dkbZYzbFdxBb3l5gr7Q= -github.com/aws/aws-sdk-go-v2/credentials v1.12.18/go.mod h1:O7n/CPagQ33rfG6h7vR/W02ammuc5CrsSM22cNZp9so= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.15 h1:nkQ+aI0OCeYfzrBipL6ja/6VEbUnHQoZHBHtoK+Nzxw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.15/go.mod h1:Oz2/qWINxIgSmoZT9adpxJy2UhpcOAI3TIyWgYMVSz0= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.31 h1:Ggf7rvFS1s3/Nauv2mokAY+RfKsCAHvfiiZJoYd0lV0= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.31/go.mod h1:Iv2xOFdy8aFIxVKEdzo9puLXFaGNnjx5xzGYIlGzhuY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.21 h1:gRIXnmAVNyoRQywdNtpAkgY+f30QNzgF53Q5OobNZZs= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.21/go.mod h1:XsmHMV9c512xgsW01q7H0ut+UQQQpWX8QsFbdLHDwaU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.15 h1:noAhOo2mMDyYhTx99aYPvQw16T3fQ/DiKAv9fzpIKH8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.15/go.mod h1:kjJ4CyD9M3Wq88GYg3IPfj67Rs0Uvz8aXK7MJ8BvE4I= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.22 h1:nF+E8HfYpOMw6M5oA9efB602VC00IHNQnB5CmFvZPvA= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.22/go.mod h1:tltHVGy977LrSOgRR5aV9+miyno/Gul/uJNPKS7FzP4= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.12 h1:i0Tig01XGhXo/ki1BZUbRMhusGVCScEvaWdlFRWxAKk= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.12/go.mod h1:QPoxYMISvteeDH4A89gGWWlCA/Bz6oUDF7hGdPdOPuE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.8 h1:NpixDFjwr1BZg2459mX07NZnVYGGp62Lb6AtVGOLNlo= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.8/go.mod h1:MJUgrBPfGB4yk2uWoImVqd9cklry1hATyJV/7gJ6JTk= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.16 h1:kHc3TqW5kJ9Vfd9YEwywrNrL87DItpvAohlP+OuzABY= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.16/go.mod h1:U/9ZCgIx6x6NTdFRt60qO3gxUxBx4gRi+S/Yc/n+7vc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.15 h1:xlf0J6DUgAj/ocvKQxCmad8Bu1lJuRbt5Wu+4G1xw1g= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.15/go.mod h1:ZVJ7ejRl4+tkWMuCwjXoy0jd8fF5u3RCyWjSVjUIvQE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.15 h1:v9f7NY7D19ssE2EM+m9yT1m5zdWHuRAsZaFh24GAkOk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.15/go.mod h1:gXfPo3nMoCbJKTZKDxv3rUhcYJjYT/K++jEqcWHjD/Q= -github.com/aws/aws-sdk-go-v2/service/kms v1.18.9/go.mod h1:8sR6O18d56mlJf0VkYD7mOtrBoM//8eym7FcfG1t9Sc= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.9 h1:imVonvre+AHMcDc3B9bPHHy5ZgjIkkYc/jyDBK8FHFw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.9/go.mod h1:0Gfmg8gjPhVPy/IXkLAmyKZbAue+2s11BWKH+oXggmg= -github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.22/go.mod h1:zT2j7Ndi+FcBX+zfYLDppqODSgSdKlquB3LPLPVDAts= -github.com/aws/aws-sdk-go-v2/service/sns v1.17.17/go.mod h1:hygPv9etah0QZWMe7TEE+PCPe1VL+1tfwYvJZz478uc= -github.com/aws/aws-sdk-go-v2/service/sqs v1.19.8/go.mod h1:nMu/p558phDp5xa1USWHcofcWvoaat4Dr46w7ruM1XQ= -github.com/aws/aws-sdk-go-v2/service/ssm v1.27.13/go.mod h1:DLGkJX+FzEhluRGOTf9eejrDPu1gZ+1GuNkgLYdnPFM= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.21 h1:7jUFr+7F4MzIjCZzy7ygRtXFQcQ0kAbT0gUvtUeAdyU= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.21/go.mod h1:q8nYq51W3gpZempYsAD83fPRlrOTMCwN+Ahg4BKFTXQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.3 h1:UTTPNP3/WzZa7hoHP3Szb/Yl0bM3NoBrf5ABy1OArUM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.3/go.mod h1:+IF75RMJh0+zqTGXGshyEGRsU2ImqWv6UuHGkHl6kEo= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.17 h1:LVM2jzEQ8mhb2dhrFl4PJ3sa5+KcKT01dsMk2Ma9/FU= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.17/go.mod h1:bQujK1n0V1D1Gz5uII1jaB1WDvhj4/T3tElsJnVXCR0= -github.com/aws/smithy-go v1.13.2 h1:TBLKyeJfXTrTXRHmsv4qWt9IQGYyWThLYaJWSahTOGE= -github.com/aws/smithy-go v1.13.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/aws-sdk-go v1.44.109 h1:+Na5JPeS0kiEHoBp5Umcuuf+IDqXqD0lXnM920E31YI= +github.com/aws/aws-sdk-go v1.44.109/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= +github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8/go.mod h1:JTnlBSot91steJeti4ryyu/tLd4Sk84O5W22L7O2EQU= +github.com/aws/aws-sdk-go-v2/config v1.17.8 h1:b9LGqNnOdg9vR4Q43tBTVWk4J6F+W774MSchvKJsqnE= +github.com/aws/aws-sdk-go-v2/config v1.17.8/go.mod h1:UkCI3kb0sCdvtjiXYiU4Zx5h07BOpgBTtkPu/49r+kA= +github.com/aws/aws-sdk-go-v2/credentials v1.12.21 h1:4tjlyCD0hRGNQivh5dN8hbP30qQhMLBE/FgQR1vHHWM= +github.com/aws/aws-sdk-go-v2/credentials v1.12.21/go.mod h1:O+4XyAt4e+oBAoIwNUYkRg3CVMscaIJdmZBOcPgJ8D8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.34 h1:1PNtaCM+2ruo1dfYL2RweUdtbuPvinjAejjNcPa/RQY= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.34/go.mod h1:+Six+CXNHYllXam32j+YW8ixk82+am345ei89kEz8p4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 h1:ZSIPAkAsCCjYrhqfw2+lNzWDzxzHXEckFkTePL5RSWQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14/go.mod h1:AyGgqiKv9ECM6IZeNQtdT8NnMvUb3/2wokeq2Fgryto= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 h1:Lh1AShsuIJTwMkoxVCAYPJgNG5H+eN6SmoUn8nOZ5wE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9/go.mod h1:a9j48l6yL5XINLHLcOKInjdvknN+vWqPBxqeIDw7ktw= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 h1:BBYoNQt2kUZUUK4bIPsKrCcjVPUMNsgQpNAwhznK/zo= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18/go.mod h1:NS55eQ4YixUJPTC+INxi2/jCqe1y2Uw3rnh9wEOVJxY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI= +github.com/aws/aws-sdk-go-v2/service/kms v1.18.11/go.mod h1:DZtboupHLNr0p6qHw9r3kR8MUnN/rc4AAVmNpe2ocuU= +github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 h1:3/gm/JTX9bX8CpzTgIlrtYpB3EVBDxyg/GY/QdcIEZw= +github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11/go.mod h1:fmgDANqTUCxciViKl9hb/zD5LFbvPINFRgWhDbR+vZo= +github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.16.2/go.mod h1:HEBBc70BYi5eUvxBqC3xXjU/04NO96X/XNUe5qhC7Bc= +github.com/aws/aws-sdk-go-v2/service/sns v1.18.1/go.mod h1:sIIc12m8ASRbCgOERccSSkTFeekFfHKEM4TKAvzJpG0= +github.com/aws/aws-sdk-go-v2/service/sqs v1.19.10/go.mod h1:65Z/rmGw/6usiOFI0Tk4ddNUmPbjjPER1WLZwnFqxFM= +github.com/aws/aws-sdk-go-v2/service/ssm v1.30.0/go.mod h1:JtkQSJFGEovwP6s+guH5Ap7iUemh3nMqHtg5liCv9ok= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.6 h1:OwhhKc1P9ElfWbMKPIbMMZBV6hzJlL2JKD76wNNVzgQ= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.6/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= +github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA= +github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benoitkugler/pstokenizer v1.0.0/go.mod h1:l1G2Voirz0q/jj0TQfabNxVsa8HZXh/VMxFSRALWTiE= @@ -124,7 +177,7 @@ github.com/bitly/go-hostpool v0.1.0/go.mod h1:4gOCgp6+NZnVqlKyZ/iBZFTAJKembaVENU github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= @@ -134,7 +187,7 @@ github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20220520190051-1e77728a1eaa/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -150,11 +203,11 @@ github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5O github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dvyukov/go-fuzz v0.0.0-20220726122315-1d375ef9f9f6/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= github.com/elazarl/goproxy v0.0.0-20220901064549-fbd10ff4f5a1 h1:ecIiM5NYeEOhy5trm8xel6wpUhYH+QWteUKnwcbCMl4= -github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= -github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE= +github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= -github.com/envoyproxy/protoc-gen-validate v0.6.7 h1:qcZcULcd/abmQg6dwigimCNEyi4gg31M/xaciQlDml8= -github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.6.12 h1:fm1ASBISy+M8UPDDwR4Wj4ZiaiGiFuO9ZTxOiw2U6oc= +github.com/envoyproxy/protoc-gen-validate v0.6.12/go.mod h1:qEySVqXrEugbHKvmhI8ZqtQi75/RHSSRNpffvB4I6Bw= github.com/evanphx/json-patch v0.5.2 h1:xVCHIVMUu1wtM/VkR9jVZ45N3FhZfYMMYGorLCR8P3k= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= @@ -203,7 +256,7 @@ github.com/go-pdf/fpdf v1.4.3/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhO github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= -github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI= github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= @@ -226,7 +279,7 @@ github.com/gocql/gocql v1.2.1/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJr github.com/gocraft/dbr/v2 v2.7.3 h1:5/PTRiBkdD2FoHpnrCMoEUw5Wf/Cl3l3PjJ02Wm+pwM= github.com/gocraft/dbr/v2 v2.7.3/go.mod h1:8IH98S8M8J0JSEiYk0MPH26ZDUKemiQ/GvmXL5jo+Uw= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff/go.mod h1:wfqRWLHRBsRgkp5dmbG56SA0DmVtwrF5N3oPdI8t+Aw= @@ -250,8 +303,8 @@ github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE= github.com/google/go-replayers/grpcreplay v1.1.0/go.mod h1:qzAvJ8/wi57zq7gWqaE6AwLM6miiXUQwP1S+I9icmhk= github.com/google/go-replayers/httpreplay v1.1.1 h1:H91sIMlt1NZzN7R+/ASswyouLJfW0WLW7fhyUFvDEkY= @@ -320,8 +373,8 @@ github.com/jstemmer/go-junit-report v1.0.0/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.15.10-0.20220907083105-a63f67b75f97 h1:IqNP9Vb1P7Cx/iHsh2a8jOXPGZtABKcWQxNcRuSdhZ0= -github.com/klauspost/compress v1.15.10-0.20220907083105-a63f67b75f97/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.15.12-0.20220926082712-7db606e4f337 h1:H3B7ZNGGHLkkZLsmBl4qlvFpt8VsH0gzpCTvDe1ROfA= +github.com/klauspost/compress v1.15.12-0.20220926082712-7db606e4f337/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/cpuid/v2 v2.1.1 h1:t0wUqjowdm8ezddV5k0tLWVklVuvLJpoHeb4WBdydm0= github.com/klauspost/cpuid/v2 v2.1.1/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/kpango/fastime v1.1.4 h1:pus9JgJBg/8Jie3ozayA4yNIV67BUPhbq0wMZY3CtYo= @@ -355,15 +408,13 @@ github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuz github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-ieproxy v0.0.7 h1:d2hBmNUJOAf2aGgzMQtz1wBByJQvRk72/1TXBiCVHXU= -github.com/mattn/go-ieproxy v0.0.7/go.mod h1:6ZpRmhBaYuBX1U2za+9rC9iCGLsSp2tftelZne7CPko= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2 h1:hAHbPm5IJGijwng3PWk09JkG9WeqChjprR5s9bBZ+OM= +github.com/matttproud/golang_protobuf_extensions v1.0.2/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/spdystream v0.2.0 h1:cjW1zVyyoiM0T7b6UoySUFqzXMoqRckQtXwGPiBhOM8= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= @@ -411,14 +462,16 @@ github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8 github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/prometheus v1.99.0/go.mod h1:Sw35iJlN8dvKz51BtqxhXpNLIfqNn9IFAo64r7XL9Bw= github.com/quasilyte/go-ruleguard v0.3.18 h1:sd+abO1PEI9fkYennwzHn9kl3nqP6M5vE7FiOzZ+5CE= github.com/quasilyte/go-ruleguard v0.3.18/go.mod h1:lOIzcYlgxrQ2sGJ735EHXmf/e9MJ516j16K/Ifcttvs= github.com/quasilyte/go-ruleguard/dsl v0.3.21 h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA= github.com/quasilyte/go-ruleguard/dsl v0.3.21/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f h1:6Gtn2i04RD0gVyYf2/IUMTIs+qYleBt4zxDqkLTcu4U= -github.com/quasilyte/gogrep v0.0.0-20220828223005-86e4605de09f/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= +github.com/quasilyte/gogrep v0.0.0-20221002170852-631b4cfd0c04 h1:k0f646qmNmESZDZ8SG5gsc2g1Nl21Z+0Kk5kB4xkG/4= +github.com/quasilyte/gogrep v0.0.0-20221002170852-631b4cfd0c04/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= +github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= @@ -452,6 +505,7 @@ github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= @@ -462,31 +516,31 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xlab/treeprint v1.1.0 h1:G/1DjNkPpfZCFt9CSh6b5/nY4VimlbHF3Rh4obvtzDk= github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= -github.com/yuin/goldmark v1.4.14/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.5.2/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.1 h1:vukIABvugfNMZMQO1ABsyQDJDTVQbn+LWSMy1ol1h6A= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.34.0 h1:PNEMW4EvpNQ7SuoPFNkvbZqi1STkTPKq+8vfoMl/6AE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.34.0/go.mod h1:fk1+icoN47ytLSgkoWHLJrtVTSQ+HgmkNgPTKrk/Nsc= -go.opentelemetry.io/otel v1.9.0 h1:8WZNQFIB2a71LnANS9JeyidJKKGOOremcUtb/OtHISw= -go.opentelemetry.io/otel v1.9.0/go.mod h1:np4EoPGzoPs3O67xUVNoPPcmSvsfOxNlNA4F4AC+0Eo= -go.opentelemetry.io/otel/exporters/jaeger v1.9.0 h1:gAEgEVGDWwFjcis9jJTOJqZNxDzoZfR12WNIxr7g9Ww= -go.opentelemetry.io/otel/exporters/jaeger v1.9.0/go.mod h1:hquezOLVAybNW6vanIxkdLXTXvzlj2Vn3wevSP15RYs= -go.opentelemetry.io/otel/exporters/prometheus v0.31.0 h1:jwtnOGBM8dIty5AVZ+9ZCzZexCea3aVKmUfZAQcHqxs= -go.opentelemetry.io/otel/exporters/prometheus v0.31.0/go.mod h1:QarXIB8L79IwIPoNgG3A6zNvBgVmcppeFogV1d8612s= -go.opentelemetry.io/otel/metric v0.31.0 h1:6SiklT+gfWAwWUR0meEMxQBtihpiEs4c+vL9spDTqUs= -go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A= -go.opentelemetry.io/otel/sdk v1.9.0 h1:LNXp1vrr83fNXTHgU8eO89mhzxb/bbWAsHG6fNf3qWo= -go.opentelemetry.io/otel/sdk v1.9.0/go.mod h1:AEZc8nt5bd2F7BC24J5R0mrjYnpEgYHyTcM/vrSple4= -go.opentelemetry.io/otel/sdk/metric v0.31.0 h1:2sZx4R43ZMhJdteKAlKoHvRgrMp53V1aRxvEf5lCq8Q= -go.opentelemetry.io/otel/sdk/metric v0.31.0/go.mod h1:fl0SmNnX9mN9xgU6OLYLMBMrNAsaZQi7qBwprwO3abk= -go.opentelemetry.io/otel/trace v1.9.0 h1:oZaCNJUjWcg60VXWee8lJKlqhPbXAPB51URuR47pQYc= -go.opentelemetry.io/otel/trace v1.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.1 h1:RQxI9u7XGv+E9x35YWa3jZhdpsphaV7VvBArNSiDtMw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.1/go.mod h1:ylJH0hLC6Bp40dYp8rctk9HIuEM/xQRbV05d9HGTktQ= +go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4= +go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= +go.opentelemetry.io/otel/exporters/jaeger v1.10.0 h1:7W3aVVjEYayu/GOqOVF4mbTvnCuxF1wWu3eRxFGQXvw= +go.opentelemetry.io/otel/exporters/jaeger v1.10.0/go.mod h1:n9IGyx0fgyXXZ/i0foLHNxtET9CzXHzZeKCucvRBFgA= +go.opentelemetry.io/otel/exporters/prometheus v0.32.1 h1:1+iSNGGCYoDAMuFDN2M+sYTwa5/wApb7yO/GpW5Vtzg= +go.opentelemetry.io/otel/exporters/prometheus v0.32.1/go.mod h1:t1ZclNSxaC2ztzbHxGU71mg3pkkaHyHcMUIK2Yvft0E= +go.opentelemetry.io/otel/metric v0.32.1 h1:ftff5LSBCIDwL0UkhBuDg8j9NNxx2IusvJ18q9h6RC4= +go.opentelemetry.io/otel/metric v0.32.1/go.mod h1:iLPP7FaKMAD5BIxJ2VX7f2KTuz//0QK2hEUyti5psqQ= +go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY= +go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE= +go.opentelemetry.io/otel/sdk/metric v0.32.1 h1:S6AqzulzGQl+sTpYeAoVLw1SJbc2LYuKCMUmfEKG+zM= +go.opentelemetry.io/otel/sdk/metric v0.32.1/go.mod h1:Nn+Nt/7cKzm5ISmvLzNO5RLf0Xuv8/Qo8fkpr0JDOzs= +go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E= +go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= -go.starlark.net v0.0.0-20220817180228-f738f5508c12 h1:xOBJXWGEDwU5xSDxH6macxO11Us0AH2fTa9rmsbbF7g= -go.starlark.net v0.0.0-20220817180228-f738f5508c12/go.mod h1:VZcBMdr3cT3PnBoWunTabuSEXwVAH+ZJ5zxfs3AdASk= +go.starlark.net v0.0.0-20220928063852-5fccb4daaf6d h1:aF+anaRVZu22kdETjLavnIn/cvD+arhmik6vMU3joW4= +go.starlark.net v0.0.0-20220928063852-5fccb4daaf6d/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/automaxprocs v1.5.1 h1:e1YG66Lrk73dn4qhg8WFSvhF0JuFQF0ERIp4rpuV8Qk= @@ -501,34 +555,34 @@ go4.org/intern v0.0.0-20220617035311-6925f38cc365 h1:t9hFvR102YlOqU0fQn1wgwhNvSb go4.org/intern v0.0.0-20220617035311-6925f38cc365/go.mod h1:WXRv3p7T6gzt0CcJm43AAKdKVZmcQbwwC7EwquU5BZU= go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 h1:FyBZqvoA/jbNzuAWLQE2kG820zMAkcilx6BMjGbL/E4= go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760/go.mod h1:FftLjUGFEDu5k8lt0ddY+HcrH/qU/0qk+H8j9/nTl3E= -gocloud.dev v0.26.0 h1:4rM/SVL0lLs+rhC0Gmc+gt/82DBpb7nbpIZKXXnfMXg= -gocloud.dev v0.26.0/go.mod h1:mkUgejbnbLotorqDyvedJO20XcZNTynmSeVSQS9btVg= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM= -golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0 h1:17k44ji3KFYG94XS5QEFC8pyuOlMh3IoR+vkmTZmJJs= -golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp/typeparams v0.0.0-20220907003533-145caa8ea1d0 h1:/w0J1vuLHutJv6sFrxOtCXQs2XiC9awfGYSYAUygcMk= -golang.org/x/exp/typeparams v0.0.0-20220907003533-145caa8ea1d0/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +gocloud.dev v0.27.0 h1:j0WTUsnKTxCsWO7y8T+YCiBZUmLl9w/WIowqAY3yo0g= +gocloud.dev v0.27.0/go.mod h1:YlYKhYsY5/1JdHGWQDkAuqkezVKowu7qbe9aIeUF6p0= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be h1:fmw3UbQh+nxngCAHrDCCztao/kbYFnWjoqop8dHx05A= +golang.org/x/crypto v0.0.0-20220926161630-eccd6366d1be/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20221002003631-540bb7301a08 h1:LtBIgSqNhkuC9gA3BFjGy5obHQT1lnmNsMDFSqWzQ5w= +golang.org/x/exp v0.0.0-20221002003631-540bb7301a08/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/exp/typeparams v0.0.0-20221002003631-540bb7301a08 h1:VpoGhesgULkabDHoDFGayS1wnkasmT95Jq2xZDwN45Q= +golang.org/x/exp/typeparams v0.0.0-20221002003631-540bb7301a08/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 h1:Lj6HJGCSn5AjxRAH2+r35Mir4icalbqku+CLUtjnvXY= golang.org/x/image v0.0.0-20220902085622-e7cb96979f69/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= -golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 h1:1WGATo9HAhkWMbfyuVU0tEFP88OIkUvwaHFveQPvzCQ= -golang.org/x/net v0.0.0-20220907135653-1e95f45603a7/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 h1:2o1E+E8TpNLklK9nHiPiK1uzIYrIHt+cQx3ynCwq9V8= -golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804 h1:0SH2R3f1b1VmIMG7BXbEZCBUu2dKmHschSmjqGUrW8A= -golang.org/x/sync v0.0.0-20220907140024-f12130a52804/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20220907062415-87db552b00fd h1:AZeIEzg+8RCELJYq8w+ODLVxFgLMMigSwO/ffKPEd9U= -golang.org/x/sys v0.0.0-20220907062415-87db552b00fd/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc= -golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b h1:6e93nYa3hNqAvLr0pD4PN1fFS+gKzp2zAXqrnTCstqU= +golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1 h1:lxqLZaMad/dJHMFZH0NiNpiEZI/nhgWhe4wgzpE+MuA= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI= +golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20220919170432-7a66f970e087 h1:tPwmk4vmvVCMdr98VgL4JH+qZxPL8fqlUOHnyOM8N3w= +golang.org/x/term v0.0.0-20220919170432-7a66f970e087/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af h1:Yx9k8YCG3dvF87UAn2tu2HQLf2dt/eR1bXxpLMWeH+Y= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= @@ -540,12 +594,12 @@ 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.12.0 h1:y1ZNmfz/xHuHvtgFe8USZVyykQo5ERXPnspQNVK15Og= gonum.org/v1/plot v0.12.0/go.mod h1:PgiMf9+3A3PnZdJIciIXmyN1FwdAA6rXELSN761oQkw= -google.golang.org/api v0.95.0 h1:d1c24AAS01DYqXreBeuVV7ewY/U8Mnhh47pwtsgVtYg= -google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.98.0 h1:yxZrcxXESimy6r6mdL5Q6EnZwmewDJK2dVg3g75s5Dg= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20220902135211-223410557253 h1:vXJMM8Shg7TGaYxZsQ++A/FOSlbDmDtWhS/o+3w/hj4= -google.golang.org/genproto v0.0.0-20220902135211-223410557253/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 h1:Ezh2cpcnP5Rq60sLensUsFnxh7P6513NLvNtCm9iyJ4= +google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= @@ -578,14 +632,14 @@ k8s.io/client-go v0.25.0 h1:CVWIaCETLMBNiTUta3d5nzRbXvY5Hy9Dpl+VvREpu5E= k8s.io/client-go v0.25.0/go.mod h1:lxykvypVfKilxhTklov0wz1FoaUZ8X4EwbhS6rpRfN8= k8s.io/component-base v0.25.0 h1:haVKlLkPCFZhkcqB6WCvpVxftrg6+FK5x1ZuaIDaQ5Y= k8s.io/component-base v0.25.0/go.mod h1:F2Sumv9CnbBlqrpdf7rKZTmmd2meJq0HizeyY/yAFxk= -k8s.io/klog/v2 v2.80.0 h1:lyJt0TWMPaGoODa8B8bUuxgHS3W/m/bNr2cca3brA/g= -k8s.io/klog/v2 v2.80.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea h1:3QOH5+2fGsY8e1qf+GIFpg+zw/JGNrgyZRQR7/m6uWg= -k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= +k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= +k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20220928191237-829ce0c27909 h1:q/70bz7C1/LGuQu/JBX7Fpi55CwcCts/wbvlehe0RRo= +k8s.io/kube-openapi v0.0.0-20220928191237-829ce0c27909/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4= k8s.io/metrics v0.25.0 h1:z/tyqXUCxvmFsKIO7GH6ulvogYvGp+pDmlz5ANSQVPE= k8s.io/metrics v0.25.0/go.mod h1:HZZrbhuRX+fsDcRc3u59o2FbrKhqD67IGnoFECNmovc= -k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73 h1:H9TCJUUx+2VA0ZiD9lvtaX8fthFsMoD+Izn93E/hm8U= -k8s.io/utils v0.0.0-20220823124924-e9cbc92d1a73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= sigs.k8s.io/controller-runtime v0.13.0 h1:iqa5RNciy7ADWnIc8QxCbOX5FEKVR3uxVxKHRMc2WIQ= diff --git a/hack/go.mod.default b/hack/go.mod.default index d7376b1d58..29dab1e341 100755 --- a/hack/go.mod.default +++ b/hack/go.mod.default @@ -11,7 +11,6 @@ replace ( cloud.google.com/go/iam => cloud.google.com/go/iam latest cloud.google.com/go/kms => cloud.google.com/go/kms latest cloud.google.com/go/monitoring => cloud.google.com/go/monitoring latest - cloud.google.com/go/profiler => cloud.google.com/go/profiler latest cloud.google.com/go/pubsub => cloud.google.com/go/pubsub latest cloud.google.com/go/secretmanager => cloud.google.com/go/secretmanager latest cloud.google.com/go/storage => cloud.google.com/go/storage latest @@ -23,7 +22,6 @@ replace ( git.sr.ht/~sbinet/gg => git.sr.ht/~sbinet/gg latest github.com/AdaLogics/go-fuzz-headers => github.com/AdaLogics/go-fuzz-headers latest github.com/Azure/azure-amqp-common-go/v3 => github.com/Azure/azure-amqp-common-go/v3 latest - github.com/Azure/azure-pipeline-go => github.com/Azure/azure-pipeline-go latest github.com/Azure/azure-sdk-for-go => github.com/Azure/azure-sdk-for-go latest github.com/Azure/azure-sdk-for-go/sdk/azcore => github.com/Azure/azure-sdk-for-go/sdk/azcore latest github.com/Azure/azure-sdk-for-go/sdk/azidentity => github.com/Azure/azure-sdk-for-go/sdk/azidentity latest @@ -57,7 +55,6 @@ replace ( github.com/alecthomas/units => github.com/alecthomas/units latest github.com/alexflint/go-filemutex => github.com/alexflint/go-filemutex latest github.com/antihax/optional => github.com/antihax/optional latest - github.com/antlr/antlr4/runtime/Go/antlr => github.com/antlr/antlr4/runtime/Go/antlr latest github.com/armon/circbuf => github.com/armon/circbuf latest github.com/armon/go-metrics => github.com/armon/go-metrics latest github.com/armon/go-radix => github.com/armon/go-radix latest @@ -109,8 +106,6 @@ replace ( github.com/cncf/xds/go => github.com/cncf/xds/go latest github.com/cockroachdb/apd => github.com/cockroachdb/apd latest github.com/cockroachdb/datadriven => github.com/cockroachdb/datadriven latest - github.com/cockroachdb/errors => github.com/cockroachdb/errors latest - github.com/cockroachdb/logtags => github.com/cockroachdb/logtags latest github.com/containerd/aufs => github.com/containerd/aufs latest github.com/containerd/btrfs => github.com/containerd/btrfs latest github.com/containerd/cgroups => github.com/containerd/cgroups latest @@ -150,7 +145,7 @@ replace ( github.com/dnaeon/go-vcr => github.com/dnaeon/go-vcr latest github.com/docker/cli => github.com/docker/cli latest github.com/docker/distribution => github.com/docker/distribution latest - github.com/docker/docker => github.com/moby/moby latest + github.com/docker/docker => github.com/docker/docker latest github.com/docker/docker-credential-helpers => github.com/docker/docker-credential-helpers latest github.com/docker/go-connections => github.com/docker/go-connections latest github.com/docker/go-events => github.com/docker/go-events latest @@ -161,6 +156,8 @@ replace ( github.com/dvyukov/go-fuzz => github.com/dvyukov/go-fuzz latest github.com/edsrzf/mmap-go => github.com/edsrzf/mmap-go latest github.com/elazarl/goproxy => github.com/elazarl/goproxy latest + github.com/emicklei/go-restful => github.com/emicklei/go-restful latest + github.com/emicklei/go-restful/v3 => github.com/emicklei/go-restful/v3 latest github.com/envoyproxy/go-control-plane => github.com/envoyproxy/go-control-plane latest github.com/envoyproxy/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate latest github.com/evanphx/json-patch => github.com/evanphx/json-patch latest @@ -171,8 +168,6 @@ replace ( github.com/fortytw2/leaktest => github.com/fortytw2/leaktest latest github.com/frankban/quicktest => github.com/frankban/quicktest latest github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify latest - github.com/getkin/kin-openapi => github.com/getkin/kin-openapi latest - github.com/getsentry/sentry-go => github.com/getsentry/sentry-go latest github.com/ghodss/yaml => github.com/ghodss/yaml latest github.com/gin-contrib/sse => github.com/gin-contrib/sse latest github.com/gin-gonic/gin => github.com/gin-gonic/gin latest @@ -235,7 +230,6 @@ replace ( github.com/golang/protobuf => github.com/golang/protobuf latest github.com/golang/snappy => github.com/golang/snappy latest github.com/google/btree => github.com/google/btree master - github.com/google/cel-go => github.com/google/cel-go latest github.com/google/gnostic => github.com/google/gnostic latest github.com/google/go-cmp => github.com/google/go-cmp latest github.com/google/go-containerregistry => github.com/google/go-containerregistry latest @@ -335,7 +329,6 @@ replace ( github.com/lyft/protoc-gen-star => github.com/lyft/protoc-gen-star latest github.com/mailru/easyjson => github.com/mailru/easyjson latest github.com/mattn/go-colorable => github.com/mattn/go-colorable latest - github.com/mattn/go-ieproxy => github.com/mattn/go-ieproxy latest github.com/mattn/go-isatty => github.com/mattn/go-isatty latest github.com/mattn/go-shellwords => github.com/mattn/go-shellwords latest github.com/mattn/go-sqlite3 => github.com/mattn/go-sqlite3 latest @@ -398,8 +391,8 @@ replace ( github.com/prometheus/common/sigv4 => github.com/prometheus/common/sigv4 latest github.com/prometheus/exporter-toolkit => github.com/prometheus/exporter-toolkit latest github.com/prometheus/procfs => github.com/prometheus/procfs latest + github.com/prometheus/prometheus => github.com/prometheus/prometheus latest github.com/prometheus/prometheus/v2 => github.com/prometheus/prometheus/v2 latest - github.com/prometheus/statsd_exporter => github.com/prometheus/statsd_exporter latest github.com/quasilyte/go-ruleguard => github.com/quasilyte/go-ruleguard latest github.com/quasilyte/go-ruleguard/dsl => github.com/quasilyte/go-ruleguard/dsl latest github.com/quasilyte/gogrep => github.com/quasilyte/gogrep latest @@ -471,6 +464,7 @@ replace ( go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver latest go.mozilla.org/pkcs7 => go.mozilla.org/pkcs7 latest go.opencensus.io => go.opencensus.io latest + go.opentelemetry.io/contrib => go.opentelemetry.io/contrib latest go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc latest go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp => go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp latest go.opentelemetry.io/otel => go.opentelemetry.io/otel latest @@ -480,6 +474,7 @@ replace ( go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace latest go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc latest go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp latest + go.opentelemetry.io/otel/exporters/prometheus => go.opentelemetry.io/otel/exporters/prometheus latest go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric latest go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk latest go.opentelemetry.io/otel/sdk/export/metric => go.opentelemetry.io/otel/sdk/export/metric latest @@ -500,6 +495,7 @@ replace ( golang.org/x/exp/typeparams => golang.org/x/exp/typeparams latest golang.org/x/image => golang.org/x/image latest golang.org/x/lint => golang.org/x/lint latest + golang.org/x/mobile => golang.org/x/mobile latest golang.org/x/mod => golang.org/x/mod latest golang.org/x/net => golang.org/x/net latest golang.org/x/oauth2 => golang.org/x/oauth2 latest @@ -522,7 +518,7 @@ replace ( google.golang.org/protobuf => google.golang.org/protobuf latest gopkg.in/alecthomas/kingpin.v2 => gopkg.in/alecthomas/kingpin.v2 latest gopkg.in/check.v1 => gopkg.in/check.v1 latest - gopkg.in/errgo.v2 => gopkg.in/errgo.v2 latest + gopkg.in/gcfg.v1 => gopkg.in/gcfg.v1 latest gopkg.in/inconshreveable/log15.v2 => gopkg.in/inconshreveable/log15.v2 latest gopkg.in/inf.v0 => gopkg.in/inf.v0 latest gopkg.in/ini.v1 => gopkg.in/ini.v1 latest @@ -530,6 +526,7 @@ replace ( gopkg.in/square/go-jose.v2 => gopkg.in/square/go-jose.v2 latest gopkg.in/telebot.v3 => gopkg.in/telebot.v3 latest gopkg.in/tomb.v1 => gopkg.in/tomb.v1 latest + gopkg.in/warnings.v0 => gopkg.in/warnings.v0 latest gopkg.in/yaml.v2 => gopkg.in/yaml.v2 latest gopkg.in/yaml.v3 => gopkg.in/yaml.v3 latest gotest.tools/v3 => gotest.tools/v3 latest @@ -541,15 +538,14 @@ replace ( k8s.io/apiserver => k8s.io/apiserver v0.25.0 k8s.io/cli-runtime => k8s.io/cli-runtime v0.25.0 k8s.io/client-go => k8s.io/client-go v0.25.0 - k8s.io/code-generator => k8s.io/code-generator v0.25.0 k8s.io/component-base => k8s.io/component-base v0.25.0 k8s.io/cri-api => k8s.io/cri-api v0.25.0 k8s.io/gengo => k8s.io/gengo latest k8s.io/klog => k8s.io/klog latest k8s.io/klog/v2 => k8s.io/klog/v2 latest k8s.io/kube-openapi => k8s.io/kube-openapi latest + k8s.io/kubernetes => k8s.io/kubernetes v0.25.0 k8s.io/metrics => k8s.io/metrics v0.25.0 - k8s.io/utils => k8s.io/utils latest nhooyr.io/websocket => nhooyr.io/websocket latest rsc.io/pdf => rsc.io/pdf latest sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client latest diff --git a/internal/config/observability.go b/internal/config/observability.go index dcb09c3887..c78e296dbd 100644 --- a/internal/config/observability.go +++ b/internal/config/observability.go @@ -42,12 +42,9 @@ type Metrics struct { // Prometheus represents the configuration for the prometheus. type Prometheus struct { - Enabled bool `json:"enabled" yaml:"enabled"` - Endpoint string `json:"endpoint" yaml:"endpoint"` - Namespace string `json:"namespace" yaml:"namespace"` - CollectInterval string `json:"collect_interval" yaml:"collect_interval"` - CollectTimeout string `json:"collect_timeout" yaml:"collect_timeout"` - EnableInMemoryMode bool `json:"enable_in_memory_mode" yaml:"enable_in_memory_mode"` + Enabled bool `json:"enabled" yaml:"enabled"` + Endpoint string `json:"endpoint" yaml:"endpoint"` + Namespace string `json:"namespace" yaml:"namespace"` } // Jaeger represents the configuration for the jaeger. @@ -85,8 +82,6 @@ func (o *Observability) Bind() *Observability { if o.Prometheus != nil { o.Prometheus.Endpoint = GetActualValue(o.Prometheus.Endpoint) o.Prometheus.Namespace = GetActualValue(o.Prometheus.Namespace) - o.Prometheus.CollectInterval = GetActualValue(o.Prometheus.CollectInterval) - o.Prometheus.CollectTimeout = GetActualValue(o.Prometheus.CollectTimeout) } else { o.Prometheus = new(Prometheus) } diff --git a/internal/net/grpc/interceptor/server/metric/metric.go b/internal/net/grpc/interceptor/server/metric/metric.go index b65aeb3141..edb3e72b2c 100644 --- a/internal/net/grpc/interceptor/server/metric/metric.go +++ b/internal/net/grpc/interceptor/server/metric/metric.go @@ -33,7 +33,7 @@ const ( gRPCStatus = "grpc_server_status" ) -func MetricInterceptor() (grpc.UnaryServerInterceptor, error) { +func MetricInterceptors() (grpc.UnaryServerInterceptor, grpc.StreamServerInterceptor, error) { meter := metrics.GetMeter() latencyHistgram, err := meter.SyncFloat64().Histogram( @@ -42,87 +42,63 @@ func MetricInterceptor() (grpc.UnaryServerInterceptor, error) { metrics.WithUnit(metrics.Milliseconds), ) if err != nil { - return nil, errors.Wrap(err, "failed to create latency metric") + return nil, nil, errors.Wrap(err, "failed to create latency metric") } - completedRPCCnt, err := meter.SyncFloat64().Counter( + completedRPCCnt, err := meter.SyncInt64().Counter( completedRPCsMetricsName, metrics.WithDescription("Count of RPCs by method and status"), metrics.WithUnit(metrics.Milliseconds), ) if err != nil { - return nil, errors.Wrap(err, "failed to create completedRPCs metric") + return nil, nil, errors.Wrap(err, "failed to create completedRPCs metric") } return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) { - now := time.Now() + now := time.Now() - resp, err = handler(ctx, req) + resp, err = handler(ctx, req) - elapsedTime := time.Since(now) + elapsedTime := time.Since(now) - code := codes.Unknown.String() - st, _ := status.FromError(err) - if st != nil { - code = st.Code().String() - } + code := codes.Unknown.String() + st, _ := status.FromError(err) + if st != nil { + code = st.Code().String() + } - latency := float64(elapsedTime) / float64(time.Millisecond) + latency := float64(elapsedTime) / float64(time.Millisecond) - attrs := []attribute.KeyValue{ - attribute.String(gRPCMethodKeyName, info.FullMethod), - attribute.String(gRPCStatus, code), - } - latencyHistgram.Record(ctx, latency, attrs...) - completedRPCCnt.Add(ctx, latency, attrs...) + attrs := []attribute.KeyValue{ + attribute.String(gRPCMethodKeyName, info.FullMethod), + attribute.String(gRPCStatus, code), + } + latencyHistgram.Record(ctx, latency, attrs...) + completedRPCCnt.Add(ctx, 1, attrs...) - return resp, err - }, nil -} - -func MetricStreamInterceptor() (grpc.StreamServerInterceptor, error) { - meter := metrics.GetMeter() - - latencyHistgram, err := meter.SyncFloat64().Histogram( - latencyMetricsName, - metrics.WithDescription("Server latency in milliseconds, by method"), - metrics.WithUnit(metrics.Milliseconds), - ) - if err != nil { - return nil, errors.Wrap(err, "failed to create latency metric") - } - - completedRPCCnt, err := meter.SyncFloat64().Counter( - completedRPCsMetricsName, - metrics.WithDescription("Count of RPCs by method and status"), - metrics.WithUnit(metrics.Milliseconds), - ) - if err != nil { - return nil, errors.Wrap(err, "failed to create completedRPCs metric") - } - - return func(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) (err error) { - now := time.Now() + return resp, err + }, func(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error { + now := time.Now() - err = handler(srv, ss) + err = handler(srv, ss) - elapsedTime := time.Since(now) + elapsedTime := time.Since(now) - code := codes.Unknown.String() - st, _ := status.FromError(err) - if st != nil { - code = st.Code().String() - } + code := codes.Unknown.String() + st, _ := status.FromError(err) + if st != nil { + code = st.Code().String() + } - latency := float64(elapsedTime) / float64(time.Millisecond) + latency := float64(elapsedTime) / float64(time.Millisecond) - attrs := []attribute.KeyValue{ - attribute.String(gRPCMethodKeyName, info.FullMethod), - attribute.String(gRPCStatus, code), - } - latencyHistgram.Record(ss.Context(), latency, attrs...) - completedRPCCnt.Add(ss.Context(), latency, attrs...) + attrs := []attribute.KeyValue{ + attribute.String(gRPCMethodKeyName, info.FullMethod), + attribute.String(gRPCStatus, code), + } + latencyHistgram.Record(ss.Context(), latency, attrs...) + completedRPCCnt.Add(ss.Context(), 1, attrs...) - return err - }, nil + return err + }, nil } diff --git a/internal/net/grpc/interceptor/server/metric/metric_test.go b/internal/net/grpc/interceptor/server/metric/metric_test.go index adf3afcb35..f5538e439a 100644 --- a/internal/net/grpc/interceptor/server/metric/metric_test.go +++ b/internal/net/grpc/interceptor/server/metric/metric_test.go @@ -22,91 +22,28 @@ import ( "github.com/vdaas/vald/internal/test/goleak" ) -func TestMetricInterceptor(t *testing.T) { +func TestMetricInterceptors(t *testing.T) { type want struct { - want grpc.UnaryServerInterceptor - err error + want grpc.UnaryServerInterceptor + want1 grpc.StreamServerInterceptor + err error } type test struct { name string want want - checkFunc func(want, grpc.UnaryServerInterceptor, error) error + checkFunc func(want, grpc.UnaryServerInterceptor, grpc.StreamServerInterceptor, error) error beforeFunc func() afterFunc func() } - defaultCheckFunc := func(w want, got grpc.UnaryServerInterceptor, err error) error { + defaultCheckFunc := func(w want, got grpc.UnaryServerInterceptor, got1 grpc.StreamServerInterceptor, err error) error { if !errors.Is(err, w.err) { return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) } if !reflect.DeepEqual(got, w.want) { return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) } - return nil - } - tests := []test{ - // TODO test cases - /* - { - name: "test_case_1", - want: want{}, - checkFunc: defaultCheckFunc, - }, - */ - - // TODO test cases - /* - func() test { - return test { - name: "test_case_2", - want: want{}, - checkFunc: defaultCheckFunc, - } - }(), - */ - } - - for _, tc := range tests { - test := tc - t.Run(test.name, func(tt *testing.T) { - tt.Parallel() - defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) - if test.beforeFunc != nil { - test.beforeFunc() - } - if test.afterFunc != nil { - defer test.afterFunc() - } - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - - got, err := MetricInterceptor() - if err := checkFunc(test.want, got, err); err != nil { - tt.Errorf("error = %v", err) - } - }) - } -} - -func TestMetricStreamInterceptor(t *testing.T) { - type want struct { - want grpc.StreamServerInterceptor - err error - } - type test struct { - name string - want want - checkFunc func(want, grpc.StreamServerInterceptor, error) error - beforeFunc func() - afterFunc func() - } - defaultCheckFunc := func(w want, got grpc.StreamServerInterceptor, err error) error { - if !errors.Is(err, w.err) { - return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) - } - if !reflect.DeepEqual(got, w.want) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + if !reflect.DeepEqual(got1, w.want1) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got1, w.want1) } return nil } @@ -148,8 +85,8 @@ func TestMetricStreamInterceptor(t *testing.T) { checkFunc = defaultCheckFunc } - got, err := MetricStreamInterceptor() - if err := checkFunc(test.want, got, err); err != nil { + got, got1, err := MetricInterceptors() + if err := checkFunc(test.want, got, got1, err); err != nil { tt.Errorf("error = %v", err) } }) diff --git a/internal/observability/exporter/prometheus/option.go b/internal/observability/exporter/prometheus/option.go index e257e6107d..1950a8ce66 100644 --- a/internal/observability/exporter/prometheus/option.go +++ b/internal/observability/exporter/prometheus/option.go @@ -14,10 +14,8 @@ package prometheus import ( - "time" - "github.com/vdaas/vald/internal/errors" - "github.com/vdaas/vald/internal/observability/exporter" + "github.com/vdaas/vald/internal/observability/metrics" ) type Option func(e *exp) error @@ -25,12 +23,6 @@ type Option func(e *exp) error var defaultOpts = []Option{ WithEndpoint("/metrics"), WithNamespace("vald"), - WithCollectInterval("500ms"), - WithCollectTimeout("10s"), - WithInMemoty(true), - WithHistogramDistribution( - exporter.DefaultMillisecondsHistogramDistribution, - ), } func WithEndpoint(ep string) Option { @@ -53,49 +45,19 @@ func WithNamespace(ns string) Option { } } -func WithCollectInterval(period string) Option { - return func(e *exp) error { - if len(period) == 0 { - return errors.NewErrInvalidOption("collectInterval", period) - } - - dur, err := time.ParseDuration(period) - if err != nil { - return errors.NewErrInvalidOption("collectInterval", period, err) - } - e.collectInterval = dur - return nil - } -} - -func WithCollectTimeout(timeout string) Option { - return func(e *exp) error { - if len(timeout) == 0 { - return errors.NewErrInvalidOption("collectTimeout", timeout) - } - - dur, err := time.ParseDuration(timeout) - if err != nil { - return errors.NewErrInvalidOption("collectTimeout", timeout, err) - } - e.collectTimeout = dur - return nil - } -} - -func WithInMemoty(ok bool) Option { - return func(e *exp) error { - e.inmemoryEnabled = ok - return nil - } -} - -func WithHistogramDistribution(fs []float64) Option { +func WithView(viewers ...metrics.Viewer) Option { return func(e *exp) error { - if len(fs) == 0 { - return errors.NewErrInvalidOption("histogramBoundarie", fs) + views := make([]metrics.View, 0, len(viewers)) + for _, viewer := range viewers { + vs, err := viewer.View() + if err != nil { + return errors.NewErrCriticalOption("view", viewer, err) + } + for _, v := range vs { + views = append(views, *v) + } } - e.histogramBoundarie = fs + e.views = append(e.views, views...) return nil } } diff --git a/internal/observability/exporter/prometheus/option_test.go b/internal/observability/exporter/prometheus/option_test.go index 4f97d603a4..a0bbf00123 100644 --- a/internal/observability/exporter/prometheus/option_test.go +++ b/internal/observability/exporter/prometheus/option_test.go @@ -16,6 +16,7 @@ package prometheus import ( "testing" + "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/internal/test/goleak" ) @@ -255,11 +256,11 @@ func TestWithNamespace(t *testing.T) { } } -func TestWithCollectInterval(t *testing.T) { +func TestWithView(t *testing.T) { // Change interface type to the type of object you are testing type T = interface{} type args struct { - period string + viewers []metrics.Viewer } type want struct { obj *T @@ -306,7 +307,7 @@ func TestWithCollectInterval(t *testing.T) { { name: "test_case_1", args: args { - period: "", + viewers: nil, }, want: want { obj: new(T), @@ -320,7 +321,7 @@ func TestWithCollectInterval(t *testing.T) { return test { name: "test_case_2", args: args { - period: "", + viewers: nil, }, want: want { obj: new(T), @@ -349,7 +350,7 @@ func TestWithCollectInterval(t *testing.T) { checkFunc = defaultCheckFunc } - got := WithCollectInterval(test.args.period) + got := WithView(test.args.viewers...) obj := new(T) if err := checkFunc(test.want, obj, got(obj)); err != nil { tt.Errorf("error = %v", err) @@ -362,361 +363,7 @@ func TestWithCollectInterval(t *testing.T) { if test.checkFunc == nil { checkFunc = defaultCheckFunc } - got := WithCollectInterval(test.args.period) - obj := new(T) - got(obj) - if err := checkFunc(test.want, obj); err != nil { - tt.Errorf("error = %v", err) - } - */ - }) - } -} - -func TestWithCollectTimeout(t *testing.T) { - // Change interface type to the type of object you are testing - type T = interface{} - type args struct { - timeout string - } - type want struct { - obj *T - // Uncomment this line if the option returns an error, otherwise delete it - // err error - } - type test struct { - name string - args args - want want - // Use the first line if the option returns an error. otherwise use the second line - // checkFunc func(want, *T, error) error - // checkFunc func(want, *T) error - beforeFunc func(args) - afterFunc func(args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T, err error) error { - if !errors.Is(err, w.err) { - return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) - } - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - // Uncomment this block if the option do not returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T) error { - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - tests := []test{ - // TODO test cases - /* - { - name: "test_case_1", - args: args { - timeout: "", - }, - want: want { - obj: new(T), - }, - }, - */ - - // TODO test cases - /* - func() test { - return test { - name: "test_case_2", - args: args { - timeout: "", - }, - want: want { - obj: new(T), - }, - } - }(), - */ - } - - for _, tc := range tests { - test := tc - t.Run(test.name, func(tt *testing.T) { - tt.Parallel() - defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) - if test.beforeFunc != nil { - test.beforeFunc(test.args) - } - if test.afterFunc != nil { - defer test.afterFunc(test.args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - - got := WithCollectTimeout(test.args.timeout) - obj := new(T) - if err := checkFunc(test.want, obj, got(obj)); err != nil { - tt.Errorf("error = %v", err) - } - */ - - // Uncomment this block if the option do not return an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - got := WithCollectTimeout(test.args.timeout) - obj := new(T) - got(obj) - if err := checkFunc(test.want, obj); err != nil { - tt.Errorf("error = %v", err) - } - */ - }) - } -} - -func TestWithInMemoty(t *testing.T) { - // Change interface type to the type of object you are testing - type T = interface{} - type args struct { - ok bool - } - type want struct { - obj *T - // Uncomment this line if the option returns an error, otherwise delete it - // err error - } - type test struct { - name string - args args - want want - // Use the first line if the option returns an error. otherwise use the second line - // checkFunc func(want, *T, error) error - // checkFunc func(want, *T) error - beforeFunc func(args) - afterFunc func(args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T, err error) error { - if !errors.Is(err, w.err) { - return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) - } - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - // Uncomment this block if the option do not returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T) error { - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - tests := []test{ - // TODO test cases - /* - { - name: "test_case_1", - args: args { - ok: false, - }, - want: want { - obj: new(T), - }, - }, - */ - - // TODO test cases - /* - func() test { - return test { - name: "test_case_2", - args: args { - ok: false, - }, - want: want { - obj: new(T), - }, - } - }(), - */ - } - - for _, tc := range tests { - test := tc - t.Run(test.name, func(tt *testing.T) { - tt.Parallel() - defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) - if test.beforeFunc != nil { - test.beforeFunc(test.args) - } - if test.afterFunc != nil { - defer test.afterFunc(test.args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - - got := WithInMemoty(test.args.ok) - obj := new(T) - if err := checkFunc(test.want, obj, got(obj)); err != nil { - tt.Errorf("error = %v", err) - } - */ - - // Uncomment this block if the option do not return an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - got := WithInMemoty(test.args.ok) - obj := new(T) - got(obj) - if err := checkFunc(test.want, obj); err != nil { - tt.Errorf("error = %v", err) - } - */ - }) - } -} - -func TestWithHistogramDistribution(t *testing.T) { - // Change interface type to the type of object you are testing - type T = interface{} - type args struct { - fs []float64 - } - type want struct { - obj *T - // Uncomment this line if the option returns an error, otherwise delete it - // err error - } - type test struct { - name string - args args - want want - // Use the first line if the option returns an error. otherwise use the second line - // checkFunc func(want, *T, error) error - // checkFunc func(want, *T) error - beforeFunc func(args) - afterFunc func(args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T, err error) error { - if !errors.Is(err, w.err) { - return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) - } - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - // Uncomment this block if the option do not returns an error, otherwise delete it - /* - defaultCheckFunc := func(w want, obj *T) error { - if !reflect.DeepEqual(obj, w.obj) { - return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", obj, w.obj) - } - return nil - } - */ - - tests := []test{ - // TODO test cases - /* - { - name: "test_case_1", - args: args { - fs: nil, - }, - want: want { - obj: new(T), - }, - }, - */ - - // TODO test cases - /* - func() test { - return test { - name: "test_case_2", - args: args { - fs: nil, - }, - want: want { - obj: new(T), - }, - } - }(), - */ - } - - for _, tc := range tests { - test := tc - t.Run(test.name, func(tt *testing.T) { - tt.Parallel() - defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) - if test.beforeFunc != nil { - test.beforeFunc(test.args) - } - if test.afterFunc != nil { - defer test.afterFunc(test.args) - } - - // Uncomment this block if the option returns an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - - got := WithHistogramDistribution(test.args.fs) - obj := new(T) - if err := checkFunc(test.want, obj, got(obj)); err != nil { - tt.Errorf("error = %v", err) - } - */ - - // Uncomment this block if the option do not return an error, otherwise delete it - /* - checkFunc := test.checkFunc - if test.checkFunc == nil { - checkFunc = defaultCheckFunc - } - got := WithHistogramDistribution(test.args.fs) + got := WithView(test.args.viewers...) obj := new(T) got(obj) if err := checkFunc(test.want, obj); err != nil { diff --git a/internal/observability/exporter/prometheus/prometheus.go b/internal/observability/exporter/prometheus/prometheus.go index d13d8feb7f..8e3f182f19 100644 --- a/internal/observability/exporter/prometheus/prometheus.go +++ b/internal/observability/exporter/prometheus/prometheus.go @@ -20,18 +20,15 @@ import ( "sync" "time" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/vdaas/vald/internal/errors" "github.com/vdaas/vald/internal/log" "github.com/vdaas/vald/internal/observability/exporter" - "go.opentelemetry.io/otel/exporters/prometheus" + "github.com/vdaas/vald/internal/observability/metrics" + otelprom "go.opentelemetry.io/otel/exporters/prometheus" "go.opentelemetry.io/otel/metric/global" - "go.opentelemetry.io/otel/sdk/metric/aggregator/histogram" - "go.opentelemetry.io/otel/sdk/metric/controller/basic" - "go.opentelemetry.io/otel/sdk/metric/export/aggregation" - processor "go.opentelemetry.io/otel/sdk/metric/processor/basic" - "go.opentelemetry.io/otel/sdk/metric/selector/simple" - "go.opentelemetry.io/otel/sdk/resource" - semconv "go.opentelemetry.io/otel/semconv/v1.12.0" + "go.opentelemetry.io/otel/sdk/metric" ) type Prometheus interface { @@ -40,7 +37,9 @@ type Prometheus interface { } type exp struct { - exporter *prometheus.Exporter + exporter otelprom.Exporter + views []metrics.View + registry *prometheus.Registry namespace string endpoint string @@ -68,33 +67,16 @@ func New(opts ...Option) (Prometheus, error) { log.Warn(oerr) } } + e.exporter = otelprom.New() - // Create controller for prometheus exporter. - controller := basic.New( - processor.NewFactory( - simple.NewWithHistogramDistribution( - histogram.WithExplicitBoundaries(e.histogramBoundarie), - ), - aggregation.CumulativeTemporalitySelector(), - processor.WithMemory(e.inmemoryEnabled), + // If implemented in the Start function, registration of global provider will be delayed, and other internal libraries may use default global provider before registration. + global.SetMeterProvider(metric.NewMeterProvider( + metric.WithReader( + e.exporter, + e.views..., ), - basic.WithCollectPeriod(e.collectInterval), - basic.WithCollectTimeout(e.collectTimeout), - basic.WithResource(resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNamespaceKey.String(e.namespace), - )), - ) - - cfg := prometheus.Config{ - DefaultHistogramBoundaries: e.histogramBoundarie, - } - - var err error - e.exporter, err = prometheus.New(cfg, controller) - if err != nil { - return nil, err - } + )) + e.registry = prometheus.NewRegistry() return e, nil } @@ -111,17 +93,23 @@ func Init(opts ...Option) (Prometheus, error) { } func (e *exp) Start(ctx context.Context) error { - global.SetMeterProvider(e.exporter.MeterProvider()) - return e.exporter.Controller().Start(ctx) + if err := e.registry.Register(e.exporter.Collector); err != nil { + return err + } + return nil } func (e *exp) Stop(ctx context.Context) error { - return e.exporter.Controller().Stop(ctx) + if err := e.exporter.Shutdown(ctx); err != nil { + return err + } + e.registry.Unregister(e.exporter.Collector) + return nil } func (e *exp) NewHTTPHandler() http.Handler { mux := http.NewServeMux() - mux.Handle(e.endpoint, e.exporter) + mux.Handle(e.endpoint, promhttp.HandlerFor(e.registry, promhttp.HandlerOpts{})) return mux } diff --git a/internal/observability/exporter/prometheus/prometheus_test.go b/internal/observability/exporter/prometheus/prometheus_test.go index 87abcf6081..d99ee098d5 100644 --- a/internal/observability/exporter/prometheus/prometheus_test.go +++ b/internal/observability/exporter/prometheus/prometheus_test.go @@ -20,9 +20,11 @@ import ( "testing" "time" + "github.com/prometheus/client_golang/prometheus" "github.com/vdaas/vald/internal/errors" + "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/internal/test/goleak" - "go.opentelemetry.io/otel/exporters/prometheus" + otelprom "go.opentelemetry.io/otel/exporters/prometheus" ) func TestNew(t *testing.T) { @@ -184,7 +186,9 @@ func Test_exp_Start(t *testing.T) { ctx context.Context } type fields struct { - exporter *prometheus.Exporter + exporter otelprom.Exporter + views []metrics.View + registry *prometheus.Registry namespace string endpoint string collectInterval time.Duration @@ -220,6 +224,8 @@ func Test_exp_Start(t *testing.T) { }, fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -242,6 +248,8 @@ func Test_exp_Start(t *testing.T) { }, fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -273,6 +281,8 @@ func Test_exp_Start(t *testing.T) { } e := &exp{ exporter: test.fields.exporter, + views: test.fields.views, + registry: test.fields.registry, namespace: test.fields.namespace, endpoint: test.fields.endpoint, collectInterval: test.fields.collectInterval, @@ -294,7 +304,9 @@ func Test_exp_Stop(t *testing.T) { ctx context.Context } type fields struct { - exporter *prometheus.Exporter + exporter otelprom.Exporter + views []metrics.View + registry *prometheus.Registry namespace string endpoint string collectInterval time.Duration @@ -330,6 +342,8 @@ func Test_exp_Stop(t *testing.T) { }, fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -352,6 +366,8 @@ func Test_exp_Stop(t *testing.T) { }, fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -383,6 +399,8 @@ func Test_exp_Stop(t *testing.T) { } e := &exp{ exporter: test.fields.exporter, + views: test.fields.views, + registry: test.fields.registry, namespace: test.fields.namespace, endpoint: test.fields.endpoint, collectInterval: test.fields.collectInterval, @@ -401,7 +419,9 @@ func Test_exp_Stop(t *testing.T) { func Test_exp_NewHTTPHandler(t *testing.T) { type fields struct { - exporter *prometheus.Exporter + exporter otelprom.Exporter + views []metrics.View + registry *prometheus.Registry namespace string endpoint string collectInterval time.Duration @@ -433,6 +453,8 @@ func Test_exp_NewHTTPHandler(t *testing.T) { name: "test_case_1", fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -452,6 +474,8 @@ func Test_exp_NewHTTPHandler(t *testing.T) { name: "test_case_2", fields: fields { exporter: nil, + views: nil, + registry: nil, namespace: "", endpoint: "", collectInterval: nil, @@ -483,6 +507,8 @@ func Test_exp_NewHTTPHandler(t *testing.T) { } e := &exp{ exporter: test.fields.exporter, + views: test.fields.views, + registry: test.fields.registry, namespace: test.fields.namespace, endpoint: test.fields.endpoint, collectInterval: test.fields.collectInterval, diff --git a/internal/observability/metrics/agent/core/ngt/ngt.go b/internal/observability/metrics/agent/core/ngt/ngt.go index deda9b87fa..b575665150 100644 --- a/internal/observability/metrics/agent/core/ngt/ngt.go +++ b/internal/observability/metrics/agent/core/ngt/ngt.go @@ -18,6 +18,34 @@ import ( "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/agent/core/ngt/service" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + indexCountMetricsName = "agent_core_ngt_index_count" + indexCountMetricsDescription = "Agent NGT index count" + + uncommittedIndexCountMetricsName = "agent_core_ngt_uncommitted_index_count" + uncommittedIndexCountMetricsDescription = "Agent NGT index count" + + insertVQueueCountMetricsName = "agent_core_ngt_insert_vqueue_count" + insertVQueueCountMetricsDescription = "Agent NGT insert vqueue count" + + deleteVQueueCountMetricsName = "agent_core_ngt_delete_vqueue_count" + deleteVQueueCountMetricsDescription = "Agent NGT delete vqueue count" + + completedCreateIndexTotalMetricsName = "agent_core_ngt_completed_create_index_total" + completedCreateIndexTotalMetricsDescription = "The cumulative count of completed create index execution" + + executedProactiveGCTotalMetricsName = "agent_core_ngt_executed_proactive_gc_total" + executedProactiveGCTotalMetricsDescription = "The cumulative count of proactive GC execution" + + isIndexingMetricsName = "agent_core_ngt_is_indexing" + isIndexingMetricsDescription = "Currently indexing or no" + + isSavingMetricsName = "agent_core_ngt_is_saving" + isSavingMetricsDescription = "Currently saving or not" ) type ngtMetrics struct { @@ -30,73 +58,158 @@ func New(n service.NGT) metrics.Metric { } } +func (n *ngtMetrics) View() ([]*metrics.View, error) { + indexCount, err := view.New( + view.MatchInstrumentName(indexCountMetricsName), + view.WithSetDescription(indexCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + uncommittedIndexCount, err := view.New( + view.MatchInstrumentName(uncommittedIndexCountMetricsName), + view.WithSetDescription(uncommittedIndexCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + insertVQueueCount, err := view.New( + view.MatchInstrumentName(insertVQueueCountMetricsName), + view.WithSetDescription(insertVQueueCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + deleteVQueueCount, err := view.New( + view.MatchInstrumentName(deleteVQueueCountMetricsName), + view.WithSetDescription(deleteVQueueCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + completedCreateIndexTotal, err := view.New( + view.MatchInstrumentName(completedCreateIndexTotalMetricsName), + view.WithSetDescription(completedCreateIndexTotalMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + executedProactiveGCTotal, err := view.New( + view.MatchInstrumentName(executedProactiveGCTotalMetricsName), + view.WithSetDescription(executedProactiveGCTotalMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + isIndexing, err := view.New( + view.MatchInstrumentName(isIndexingMetricsName), + view.WithSetDescription(isIndexingMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + isSaving, err := view.New( + view.MatchInstrumentName(isSavingMetricsName), + view.WithSetDescription(isSavingMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &indexCount, + &uncommittedIndexCount, + &insertVQueueCount, + &deleteVQueueCount, + &completedCreateIndexTotal, + &executedProactiveGCTotal, + &isIndexing, + &isSaving, + }, nil +} + func (n *ngtMetrics) Register(m metrics.Meter) error { - indexCount, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_index_count", - metrics.WithDescription("Agent NGT index count"), + indexCount, err := m.AsyncInt64().Gauge( + indexCountMetricsName, + metrics.WithDescription(indexCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - uncommittedIndexCount, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_uncommitted_index_count", - metrics.WithDescription("Agent NGT uncommitted index count"), + uncommittedIndexCount, err := m.AsyncInt64().Gauge( + uncommittedIndexCountMetricsName, + metrics.WithDescription(uncommittedIndexCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - insertVQueueCount, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_insert_vqueue_count", - metrics.WithDescription("Agent NGT insert vqueue count"), + insertVQueueCount, err := m.AsyncInt64().Gauge( + insertVQueueCountMetricsName, + metrics.WithDescription(insertVQueueCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - deleteVQueueCount, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_delete_vqueue_count", - metrics.WithDescription("Agent NGT delete vqueue count"), + deleteVQueueCount, err := m.AsyncInt64().Gauge( + deleteVQueueCountMetricsName, + metrics.WithDescription(deleteVQueueCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - completedCreateIndexTotal, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_completed_create_index_total", - metrics.WithDescription("the cumulative count of completed create index execution"), + completedCreateIndexTotal, err := m.AsyncInt64().Gauge( + completedCreateIndexTotalMetricsName, + metrics.WithDescription(completedCreateIndexTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - executedProactiveGCTotal, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_executed_proactive_gc_total", - metrics.WithDescription("the cumulative count of proactive GC execution"), + executedProactiveGCTotal, err := m.AsyncInt64().Gauge( + executedProactiveGCTotalMetricsName, + metrics.WithDescription(executedProactiveGCTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - isIndexing, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_is_indexing", - metrics.WithDescription("currently indexing or no"), + isIndexing, err := m.AsyncInt64().Gauge( + isIndexingMetricsName, + metrics.WithDescription(isIndexingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } - isSaving, err := m.AsyncInt64().UpDownCounter( - "agent_core_ngt_is_saving", - metrics.WithDescription("currently saving or not"), + isSaving, err := m.AsyncInt64().Gauge( + isSavingMetricsName, + metrics.WithDescription(isSavingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/agent/core/ngt/ngt_test.go b/internal/observability/metrics/agent/core/ngt/ngt_test.go index 185ca2b1a5..895c8af7b8 100644 --- a/internal/observability/metrics/agent/core/ngt/ngt_test.go +++ b/internal/observability/metrics/agent/core/ngt/ngt_test.go @@ -181,3 +181,83 @@ func Test_ngtMetrics_Register(t *testing.T) { }) } } + +func Test_ngtMetrics_View(t *testing.T) { + type fields struct { + ngt service.NGT + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + ngt: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + ngt: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + n := &ngtMetrics{ + ngt: test.fields.ngt, + } + + got, err := n.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/agent/sidecar/sidecar.go b/internal/observability/metrics/agent/sidecar/sidecar.go index 8c0682aa53..8c6599fd85 100644 --- a/internal/observability/metrics/agent/sidecar/sidecar.go +++ b/internal/observability/metrics/agent/sidecar/sidecar.go @@ -21,6 +21,19 @@ import ( "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/agent/sidecar/service/observer" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + uploadTotalMetricsName = "agent_sidecar_completed_upload_total" + uploadTotalMetricsDescription = "Cumulative count of completed upload execution" + + uploadBytesMetricsName = "agent_sidecar_upload_bytes" + uploadBytesMetricsDescription = "Uploaded bytes at the last backup execution" + + uploadLatencyMetricsName = "agent_sidecar_upload_latency" + uploadLatencyMetricsDescription = "Upload latency" ) type MetricsHook interface { @@ -45,26 +58,63 @@ func New() MetricsHook { } } +func (sm *sidecarMetrics) View() ([]*metrics.View, error) { + uploadTotal, err := view.New( + view.MatchInstrumentName(uploadTotalMetricsName), + view.WithSetDescription(uploadTotalMetricsDescription), + view.WithSetAggregation(aggregation.Sum{}), + ) + if err != nil { + return nil, err + } + + uploadBytes, err := view.New( + view.MatchInstrumentName(uploadBytesMetricsName), + view.WithSetDescription(uploadBytesMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + uploadLatency, err := view.New( + view.MatchInstrumentName(uploadLatencyMetricsName), + view.WithSetDescription(uploadLatencyMetricsDescription), + view.WithSetAggregation(aggregation.ExplicitBucketHistogram{ + Boundaries: metrics.RoughMillisecondsDistribution, + }), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &uploadTotal, + &uploadBytes, + &uploadLatency, + }, nil +} + func (sm *sidecarMetrics) Register(m metrics.Meter) error { uploadTotal, err := m.AsyncInt64().Counter( - "agent_sidecar_completed_upload_total", - metrics.WithDescription("cumulative count of completed upload execution"), + uploadTotalMetricsName, + metrics.WithDescription(uploadTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { return err } uploadBytes, err := m.AsyncInt64().Gauge( - "agent_sidecar_upload_bytes", - metrics.WithDescription("uploaded bytes at the last backup execution"), + uploadBytesMetricsName, + metrics.WithDescription(uploadBytesMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { return err } - uploadLatency, err := m.AsyncFloat64().UpDownCounter( // TODO: - "agent_sidecar_upload_latency", - metrics.WithDescription("upload latency"), + uploadLatency, err := m.AsyncFloat64().Gauge( + uploadLatencyMetricsName, + metrics.WithDescription(uploadLatencyMetricsDescription), metrics.WithUnit(metrics.Milliseconds), ) if err != nil { diff --git a/internal/observability/metrics/agent/sidecar/sidecar_test.go b/internal/observability/metrics/agent/sidecar/sidecar_test.go index 62906a8041..600f52502b 100644 --- a/internal/observability/metrics/agent/sidecar/sidecar_test.go +++ b/internal/observability/metrics/agent/sidecar/sidecar_test.go @@ -403,3 +403,99 @@ func Test_sidecarMetrics_AfterProcess(t *testing.T) { }) } } + +func Test_sidecarMetrics_View(t *testing.T) { + type fields struct { + storageTypeKey string + bucketNameKey string + filenameKey string + mu sync.Mutex + info *observer.BackupInfo + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + storageTypeKey: "", + bucketNameKey: "", + filenameKey: "", + mu: nil, + info: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + storageTypeKey: "", + bucketNameKey: "", + filenameKey: "", + mu: nil, + info: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + sm := &sidecarMetrics{ + storageTypeKey: test.fields.storageTypeKey, + bucketNameKey: test.fields.bucketNameKey, + filenameKey: test.fields.filenameKey, + mu: test.fields.mu, + info: test.fields.info, + } + + got, err := sm.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/backoff/backoff.go b/internal/observability/metrics/backoff/backoff.go index ceff2ceba4..df74fe5de5 100644 --- a/internal/observability/metrics/backoff/backoff.go +++ b/internal/observability/metrics/backoff/backoff.go @@ -19,6 +19,13 @@ import ( "github.com/vdaas/vald/internal/backoff" "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + metricsName = "backoff_retry_count" + metricsDescription = "Backoff retry count" ) type backoffMetrics struct { @@ -31,10 +38,24 @@ func New() metrics.Metric { } } +func (bm *backoffMetrics) View() ([]*metrics.View, error) { + retryCount, err := view.New( + view.MatchInstrumentName(metricsName), + view.WithSetDescription(metricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + return []*metrics.View{ + &retryCount, + }, nil +} + func (bm *backoffMetrics) Register(m metrics.Meter) error { retryCount, err := m.AsyncInt64().Gauge( - "backoff_retry_count", - metrics.WithDescription("Backoff retry count"), + metricsName, + metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/backoff/backoff_test.go b/internal/observability/metrics/backoff/backoff_test.go index d7c236130d..6ac3995032 100644 --- a/internal/observability/metrics/backoff/backoff_test.go +++ b/internal/observability/metrics/backoff/backoff_test.go @@ -170,3 +170,83 @@ func Test_backoffMetrics_Register(t *testing.T) { }) } } + +func Test_backoffMetrics_View(t *testing.T) { + type fields struct { + backoffNameKey string + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + backoffNameKey: "", + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + backoffNameKey: "", + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + bm := &backoffMetrics{ + backoffNameKey: test.fields.backoffNameKey, + } + + got, err := bm.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/circuitbreaker/circuitbreaker.go b/internal/observability/metrics/circuitbreaker/circuitbreaker.go index d93b32d7af..05b7584593 100644 --- a/internal/observability/metrics/circuitbreaker/circuitbreaker.go +++ b/internal/observability/metrics/circuitbreaker/circuitbreaker.go @@ -19,6 +19,13 @@ import ( "github.com/vdaas/vald/internal/circuitbreaker" "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + metricsName = "circuit_breaker_state" + metricsDescription = "Current circuit breaker state" ) type breakerMetrics struct { @@ -33,10 +40,25 @@ func New() metrics.Metric { } } +func (bm *breakerMetrics) View() ([]*metrics.View, error) { + breakerState, err := view.New( + view.MatchInstrumentName(metricsName), + view.WithSetDescription(metricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &breakerState, + }, nil +} + func (bm *breakerMetrics) Register(m metrics.Meter) error { breakerState, err := m.AsyncInt64().Gauge( - "circuit_breaker_state", - metrics.WithDescription("current circuit breaker state"), + metricsName, + metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/circuitbreaker/circuitbreaker_test.go b/internal/observability/metrics/circuitbreaker/circuitbreaker_test.go index 09295ece1f..c0fd67860f 100644 --- a/internal/observability/metrics/circuitbreaker/circuitbreaker_test.go +++ b/internal/observability/metrics/circuitbreaker/circuitbreaker_test.go @@ -174,3 +174,87 @@ func Test_breakerMetrics_Register(t *testing.T) { }) } } + +func Test_breakerMetrics_View(t *testing.T) { + type fields struct { + breakerNameKey string + stateKey string + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + breakerNameKey: "", + stateKey: "", + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + breakerNameKey: "", + stateKey: "", + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + bm := &breakerMetrics{ + breakerNameKey: test.fields.breakerNameKey, + stateKey: test.fields.stateKey, + } + + got, err := bm.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/grpc/grpc.go b/internal/observability/metrics/grpc/grpc.go new file mode 100644 index 0000000000..88fe048da0 --- /dev/null +++ b/internal/observability/metrics/grpc/grpc.go @@ -0,0 +1,66 @@ +// Copyright (C) 2019-2022 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package grpc + +import ( + "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + latencyMetricsName = "server_latency" + latencyMetricsDesctiption = "Server latency in milliseconds, by method" + + completedRPCsMetricsName = "server_completed_rpcs" + completedRPCsMetricsDescription = "Count of RPCs by method and status" +) + +type grpcServerMetrics struct{} + +func New() metrics.Metric { + return &grpcServerMetrics{} +} + +func (gm *grpcServerMetrics) View() ([]*metrics.View, error) { + latencyHistgram, err := view.New( + view.MatchInstrumentName(latencyMetricsName), + view.WithSetDescription(latencyMetricsDesctiption), + view.WithSetAggregation(aggregation.ExplicitBucketHistogram{ + Boundaries: metrics.DefaultMillisecondsDistribution, + }), + ) + if err != nil { + return nil, err + } + + completedRPCCnt, err := view.New( + view.MatchInstrumentName(completedRPCsMetricsName), + view.WithSetDescription(completedRPCsMetricsDescription), + view.WithSetAggregation(aggregation.Sum{}), + ) + if err != nil { + return nil, err + } + return []*metrics.View{ + &latencyHistgram, + &completedRPCCnt, + }, nil +} + +func (gm *grpcServerMetrics) Register(m metrics.Meter) error { + // The metrics are dynamically registered at the grpc server interceptor package, + // so do nothing in this part + return nil +} diff --git a/internal/observability/metrics/grpc/grpc_test.go b/internal/observability/metrics/grpc/grpc_test.go new file mode 100644 index 0000000000..c574810c76 --- /dev/null +++ b/internal/observability/metrics/grpc/grpc_test.go @@ -0,0 +1,230 @@ +// Copyright (C) 2019-2022 vdaas.org vald team +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package grpc + +import ( + "reflect" + "testing" + + "github.com/vdaas/vald/internal/errors" + "github.com/vdaas/vald/internal/observability/metrics" + "github.com/vdaas/vald/internal/test/goleak" +) + +func TestNew(t *testing.T) { + type want struct { + want metrics.Metric + } + type test struct { + name string + want want + checkFunc func(want, metrics.Metric) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got metrics.Metric) error { + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + + got := New() + if err := checkFunc(test.want, got); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_grpcServerMetrics_View(t *testing.T) { + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + gm *grpcServerMetrics + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + gm := &grpcServerMetrics{} + + got, err := gm.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + +func Test_grpcServerMetrics_Register(t *testing.T) { + type args struct { + m metrics.Meter + } + type want struct { + err error + } + type test struct { + name string + args args + gm *grpcServerMetrics + want want + checkFunc func(want, error) error + beforeFunc func(args) + afterFunc func(args) + } + 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 nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + args: args { + m: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + args: args { + m: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc(test.args) + } + if test.afterFunc != nil { + defer test.afterFunc(test.args) + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + gm := &grpcServerMetrics{} + + err := gm.Register(test.args.m) + if err := checkFunc(test.want, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/info/info.go b/internal/observability/metrics/info/info.go index a7b9fa9b94..b0e64a2a33 100644 --- a/internal/observability/metrics/info/info.go +++ b/internal/observability/metrics/info/info.go @@ -21,6 +21,8 @@ import ( "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" ) type info struct { @@ -81,6 +83,21 @@ func labelKVs(i interface{}) map[string]string { return kvs } +func (i *info) View() ([]*metrics.View, error) { + info, err := view.New( + view.MatchInstrumentName(i.name), + view.WithSetDescription(i.description), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &info, + }, nil +} + func (i *info) Register(m metrics.Meter) error { info, err := m.AsyncInt64().Gauge( i.name, diff --git a/internal/observability/metrics/info/info_test.go b/internal/observability/metrics/info/info_test.go index d7313c389e..c2b326a5fb 100644 --- a/internal/observability/metrics/info/info_test.go +++ b/internal/observability/metrics/info/info_test.go @@ -267,3 +267,91 @@ func Test_info_Register(t *testing.T) { }) } } + +func Test_info_View(t *testing.T) { + type fields struct { + name string + description string + kvs map[string]string + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + name: "", + description: "", + kvs: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + name: "", + description: "", + kvs: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + i := &info{ + name: test.fields.name, + description: test.fields.description, + kvs: test.fields.kvs, + } + + got, err := i.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/manager/index/index.go b/internal/observability/metrics/manager/index/index.go index 550dd77f36..7e4062ba1b 100644 --- a/internal/observability/metrics/manager/index/index.go +++ b/internal/observability/metrics/manager/index/index.go @@ -18,6 +18,19 @@ import ( "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/manager/index/service" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + uuidCountMetricsName = "indexer_uuid_count" + uuidCountMetricsDescription = "UUID count" + + uncommittedUUIDCountMetricsName = "indexer_uncommitted_uuid_count" + uncommittedUUIDCountMetricsDescription = "Uncommitted UUID count" + + isIndexingMetricsName = "indexer_is_indexing" + isIndexingMetricsDescription = "Currently indexing or not" ) type indexerMetrics struct { @@ -30,10 +43,45 @@ func New(i service.Indexer) metrics.Metric { } } +func (im *indexerMetrics) View() ([]*metrics.View, error) { + uuidCount, err := view.New( + view.MatchInstrumentName(uuidCountMetricsName), + view.WithSetDescription(uuidCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + uncommittedUUIDCount, err := view.New( + view.MatchInstrumentName(uncommittedUUIDCountMetricsName), + view.WithSetDescription(uncommittedUUIDCountMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + isIndexing, err := view.New( + view.MatchInstrumentName(isIndexingMetricsName), + view.WithSetDescription(isIndexingMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &uuidCount, + &uncommittedUUIDCount, + &isIndexing, + }, nil +} + func (im *indexerMetrics) Register(m metrics.Meter) error { uuidCount, err := m.AsyncInt64().Gauge( - "indexer_uuid_count", - metrics.WithDescription("UUID count"), + uuidCountMetricsName, + metrics.WithDescription(uuidCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { @@ -41,8 +89,8 @@ func (im *indexerMetrics) Register(m metrics.Meter) error { } uncommittedUUIDCount, err := m.AsyncInt64().Gauge( - "indexer_uncommitted_uuid_count", - metrics.WithDescription("uncommitted UUID count"), + uncommittedUUIDCountMetricsName, + metrics.WithDescription(uncommittedUUIDCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { @@ -50,8 +98,8 @@ func (im *indexerMetrics) Register(m metrics.Meter) error { } isIndexing, err := m.AsyncInt64().Gauge( - "indexer_is_indexing", - metrics.WithDescription("currently indexing or not"), + isIndexingMetricsName, + metrics.WithDescription(isIndexingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/manager/index/index_test.go b/internal/observability/metrics/manager/index/index_test.go index fe52ee08d1..50be581f84 100644 --- a/internal/observability/metrics/manager/index/index_test.go +++ b/internal/observability/metrics/manager/index/index_test.go @@ -181,3 +181,83 @@ func Test_indexerMetrics_Register(t *testing.T) { }) } } + +func Test_indexerMetrics_View(t *testing.T) { + type fields struct { + indexer service.Indexer + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + indexer: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + indexer: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + im := &indexerMetrics{ + indexer: test.fields.indexer, + } + + got, err := im.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/mem/index/index.go b/internal/observability/metrics/mem/index/index.go index 02bc30ae9e..a40b0dcb4f 100644 --- a/internal/observability/metrics/mem/index/index.go +++ b/internal/observability/metrics/mem/index/index.go @@ -19,6 +19,52 @@ import ( "time" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + allocMetricsName = "alloc_bytes" + allocMetricsDescription = "Currently allocated number of bytes on the heap" + + totalAllocMetricsName = "alloc_bytes_total" + totalAllocMetricsDescription = "Cumulative bytes allocated for heap objects" + + sysMetricsName = "sys_bytes" + sysMetricsDescription = "Total bytes of memory obtained from the OS" + + mallocsMetricsName = "mallocs_total" + mallocsMetricsDescription = "The cumulative count of heap objects allocated" + + freesMetricsName = "frees_total" + freesMetricsDescription = "The cumulative count of heap objects freed" + + heapAllocMetricsName = "heap_alloc_bytes" + heapAllocMetricsDescription = "Bytes of allocated heap object" + + heapSysMetricsName = "heap_sys_bytes" + heapSysMetricsDescription = "Bytes of heap memory obtained from the OS" + + heapIdleMetricsName = "heap_idle_bytes" + heapIdleMetricsDescription = "Bytes in idle (unused) spans" + + heapInuseMetricsName = "heap_inuse_bytes" + heapInuseMetricsDescription = "Bytes in in-use spans" + + heapReleasedMetricsName = "heap_released_bytes" + heapReleasedMetricsDescription = "Bytes of physical memory returned to the OS" + + stackInuseMetricsName = "stack_inuse_bytes" + stackInuseMetricsDescription = "Bytes in stack spans" + + stackSysMetricsName = "stack_sys_bytes" + stackSysMetricsDescription = "Bytes of stack memory obtained from the OS" + + pauseTotalMsMetricsName = "pause_ms_total" + pauseTotalMsMetricsDescription = "The cumulative milliseconds in GC" + + numGCMetricsName = "gc_count" + numGCMetricsDescription = "The number of completed GC cycles" ) type memoryMetrics struct{} @@ -27,10 +73,155 @@ func New() metrics.Metric { return &memoryMetrics{} } +func (mm *memoryMetrics) View() ([]*metrics.View, error) { + alloc, err := view.New( + view.MatchInstrumentName(allocMetricsDescription), + view.WithSetDescription(allocMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + totalAlloc, err := view.New( + view.MatchInstrumentName(totalAllocMetricsDescription), + view.WithSetDescription(totalAllocMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + sys, err := view.New( + view.MatchInstrumentName(sysMetricsName), + view.WithSetDescription(sysMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + mallocs, err := view.New( + view.MatchInstrumentName(mallocsMetricsName), + view.WithSetDescription(mallocsMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + frees, err := view.New( + view.MatchInstrumentName(freesMetricsName), + view.WithSetDescription(freesMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + heapAlloc, err := view.New( + view.MatchInstrumentName(heapAllocMetricsName), + view.WithSetDescription(heapAllocMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + heapSys, err := view.New( + view.MatchInstrumentName(heapSysMetricsName), + view.WithSetDescription(heapSysMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + heapIdle, err := view.New( + view.MatchInstrumentName(heapIdleMetricsName), + view.WithSetDescription(heapIdleMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + heapInuse, err := view.New( + view.MatchInstrumentName(heapInuseMetricsName), + view.WithSetDescription(heapInuseMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + heapReleased, err := view.New( + view.MatchInstrumentName(heapReleasedMetricsName), + view.WithSetDescription(heapReleasedMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + stackInuse, err := view.New( + view.MatchInstrumentName(stackInuseMetricsName), + view.WithSetDescription(stackInuseMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + stackSys, err := view.New( + view.MatchInstrumentName(stackSysMetricsName), + view.WithSetDescription(stackSysMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + pauseTotalMs, err := view.New( + view.MatchInstrumentName(pauseTotalMsMetricsName), + view.WithSetDescription(pauseTotalMsMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + numGC, err := view.New( + view.MatchInstrumentName(numGCMetricsName), + view.WithSetDescription(numGCMetricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &alloc, + &totalAlloc, + &sys, + &mallocs, + &frees, + &heapAlloc, + &heapSys, + &heapIdle, + &heapInuse, + &heapReleased, + &stackInuse, + &stackSys, + &pauseTotalMs, + &numGC, + }, nil +} + func (mm *memoryMetrics) Register(m metrics.Meter) error { alloc, err := m.AsyncInt64().Gauge( - "alloc_bytes", - metrics.WithDescription("currently allocated number of bytes on the heap"), + allocMetricsName, + metrics.WithDescription(allocMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -38,8 +229,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } totalAlloc, err := m.AsyncInt64().Gauge( - "alloc_bytes_total", - metrics.WithDescription("cumulative bytes allocated for heap objects"), + totalAllocMetricsDescription, + metrics.WithDescription(totalAllocMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -47,8 +238,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } sys, err := m.AsyncInt64().Gauge( - "sys_bytes", - metrics.WithDescription("total bytes of memory obtained from the OS"), + sysMetricsName, + metrics.WithDescription(sysMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -56,8 +247,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } mallocs, err := m.AsyncInt64().Gauge( - "mallocs_total", - metrics.WithDescription("the cumulative count of heap objects allocated"), + mallocsMetricsName, + metrics.WithDescription(mallocsMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { @@ -65,8 +256,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } frees, err := m.AsyncInt64().Gauge( - "frees_total", - metrics.WithDescription("the cumulative count of heap objects freed"), + freesMetricsName, + metrics.WithDescription(freesMetricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { @@ -74,8 +265,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } heapAlloc, err := m.AsyncInt64().Gauge( - "heap_alloc_bytes", - metrics.WithDescription("bytes of allocated heap object"), + heapAllocMetricsName, + metrics.WithDescription(heapAllocMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -83,8 +274,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } heapSys, err := m.AsyncInt64().Gauge( - "heap_sys_bytes", - metrics.WithDescription("bytes of heap memory obtained from the OS"), + heapSysMetricsName, + metrics.WithDescription(heapSysMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -92,8 +283,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } heapIdle, err := m.AsyncInt64().Gauge( - "heap_idle_bytes", - metrics.WithDescription("bytes in idle (unused) spans"), + heapIdleMetricsName, + metrics.WithDescription(heapIdleMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -101,8 +292,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } heapInuse, err := m.AsyncInt64().Gauge( - "heap_inuse_bytes", - metrics.WithDescription("bytes in in-use spans"), + heapInuseMetricsName, + metrics.WithDescription(heapInuseMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -110,8 +301,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } heapReleased, err := m.AsyncInt64().Gauge( - "heap_released_bytes", - metrics.WithDescription("bytes of physical memory returned to the OS"), + heapReleasedMetricsName, + metrics.WithDescription(heapReleasedMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -119,8 +310,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } stackInuse, err := m.AsyncInt64().Gauge( - "stack_inuse_bytes", - metrics.WithDescription("bytes in stack spans"), + stackInuseMetricsName, + metrics.WithDescription(stackInuseMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { @@ -128,17 +319,17 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } stackSys, err := m.AsyncInt64().Gauge( - "stack_sys_bytes", - metrics.WithDescription("bytes of stack memory obtained from the OS"), + stackSysMetricsName, + metrics.WithDescription(stackSysMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { return err } - pauseTotalMs, err := m.AsyncInt64().Gauge( // TODO - "pause_ms_total", - metrics.WithDescription("the cumulative milliseconds in GC"), + pauseTotalMs, err := m.AsyncInt64().Gauge( + pauseTotalMsMetricsName, + metrics.WithDescription(pauseTotalMsMetricsDescription), metrics.WithUnit(metrics.Milliseconds), ) if err != nil { @@ -146,8 +337,8 @@ func (mm *memoryMetrics) Register(m metrics.Meter) error { } numGC, err := m.AsyncInt64().Gauge( - "gc_count", - metrics.WithDescription("the number of completed GC cycles"), + numGCMetricsName, + metrics.WithDescription(numGCMetricsDescription), metrics.WithUnit(metrics.Bytes), ) if err != nil { diff --git a/internal/observability/metrics/mem/index/index_test.go b/internal/observability/metrics/mem/index/index_test.go index 0543a08117..9829ff7848 100644 --- a/internal/observability/metrics/mem/index/index_test.go +++ b/internal/observability/metrics/mem/index/index_test.go @@ -159,3 +159,72 @@ func Test_memoryMetrics_Register(t *testing.T) { }) } } + +func Test_memoryMetrics_View(t *testing.T) { + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + mm *memoryMetrics + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + mm := &memoryMetrics{} + + got, err := mm.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/metrics.go b/internal/observability/metrics/metrics.go index c31724faff..6c42dd6da9 100644 --- a/internal/observability/metrics/metrics.go +++ b/internal/observability/metrics/metrics.go @@ -18,10 +18,97 @@ import ( "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument" "go.opentelemetry.io/otel/metric/unit" + "go.opentelemetry.io/otel/sdk/metric/view" ) -const ( - ValdOrg = "vald.vdaas.org" +const ValdOrg = "vald.vdaas.org" + +var ( + RoughMillisecondsDistribution = []float64{ + 1, + 5, + 10, + 30, + 60, + 8, + 100, + 200, + 300, + 400, + 500, + 600, + 800, + 1000, + 1300, + 1600, + 2000, + 2500, + 3000, + 4000, + 5000, + 6500, + 8000, + 10000, + 13000, + 16000, + 20000, + 25000, + 30000, + 40000, + 50000, + 65000, + 80000, + 100000, + 200000, + 500000, + 1000000, + 2000000, + 5000000, + 10000000, + } + + DefaultMillisecondsDistribution = []float64{ + 0.01, + 0.05, + 0.1, + 0.3, + 0.6, + 0.8, + 1, + 2, + 3, + 4, + 5, + 6, + 8, + 10, + 13, + 16, + 20, + 25, + 30, + 40, + 50, + 65, + 80, + 100, + 130, + 160, + 200, + 250, + 300, + 400, + 500, + 650, + 800, + 1000, + 2000, + 5000, + 10000, + 20000, + 50000, + 100000, + } ) // Meter is type alias of metrics.Meter. @@ -62,7 +149,14 @@ func WithDescription(desc string) instrument.Option { return instrument.WithDescription(desc) } +type View = view.View + +type Viewer interface { + View() ([]*View, error) +} + // Metric represents an interface for metric. type Metric interface { - Register(metric.Meter) error + Viewer + Register(Meter) error } diff --git a/internal/observability/metrics/runtime/cgo/cgo.go b/internal/observability/metrics/runtime/cgo/cgo.go index b07ba47b44..855bf0d97f 100644 --- a/internal/observability/metrics/runtime/cgo/cgo.go +++ b/internal/observability/metrics/runtime/cgo/cgo.go @@ -18,6 +18,13 @@ import ( "runtime" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + metricsName = "cgo_call_count" + metricsDescription = "Number of cgo call" ) type cgo struct{} @@ -26,10 +33,24 @@ func New() metrics.Metric { return &cgo{} } +func (c *cgo) View() ([]*metrics.View, error) { + count, err := view.New( + view.MatchInstrumentName(metricsName), + view.WithSetDescription(metricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + return []*metrics.View{ + &count, + }, nil +} + func (c *cgo) Register(m metrics.Meter) error { - conter, err := m.AsyncInt64().UpDownCounter( - "cgo_call_count", - metrics.WithDescription("number of cgo call"), + count, err := m.AsyncInt64().Gauge( + metricsName, + metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { @@ -37,10 +58,10 @@ func (c *cgo) Register(m metrics.Meter) error { } return m.RegisterCallback( []metrics.AsynchronousInstrument{ - conter, + count, }, func(ctx context.Context) { - conter.Observe(ctx, int64(runtime.NumGoroutine())) + count.Observe(ctx, int64(runtime.NumGoroutine())) }, ) } diff --git a/internal/observability/metrics/runtime/cgo/cgo_test.go b/internal/observability/metrics/runtime/cgo/cgo_test.go index 62783f8c3e..c43d3ff66a 100644 --- a/internal/observability/metrics/runtime/cgo/cgo_test.go +++ b/internal/observability/metrics/runtime/cgo/cgo_test.go @@ -159,3 +159,72 @@ func Test_cgo_Register(t *testing.T) { }) } } + +func Test_cgo_View(t *testing.T) { + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + c *cgo + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + c := &cgo{} + + got, err := c.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/metrics/runtime/goroutine/goroutine.go b/internal/observability/metrics/runtime/goroutine/goroutine.go index b9c1a6bce4..64866f2300 100644 --- a/internal/observability/metrics/runtime/goroutine/goroutine.go +++ b/internal/observability/metrics/runtime/goroutine/goroutine.go @@ -18,6 +18,13 @@ import ( "runtime" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + metricsName = "goroutine_count" + metricsDescription = "Number of goroutines" ) type goroutine struct{} @@ -26,10 +33,25 @@ func New() metrics.Metric { return &goroutine{} } +func (g *goroutine) View() ([]*metrics.View, error) { + count, err := view.New( + view.MatchInstrumentName(metricsName), + view.WithSetDescription(metricsDescription), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + + return []*metrics.View{ + &count, + }, nil +} + func (g *goroutine) Register(m metrics.Meter) error { conter, err := m.AsyncInt64().Gauge( - "goroutine_count", - metrics.WithDescription("number of goroutines"), + metricsName, + metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/runtime/goroutine/goroutine_test.go b/internal/observability/metrics/runtime/goroutine/goroutine_test.go index 5ef6967ba7..321b991a88 100644 --- a/internal/observability/metrics/runtime/goroutine/goroutine_test.go +++ b/internal/observability/metrics/runtime/goroutine/goroutine_test.go @@ -85,6 +85,75 @@ func TestNew(t *testing.T) { } } +func Test_goroutine_View(t *testing.T) { + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + g *goroutine + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + g := &goroutine{} + + got, err := g.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} + func Test_goroutine_Register(t *testing.T) { type args struct { m metrics.Meter diff --git a/internal/observability/metrics/version/version.go b/internal/observability/metrics/version/version.go index 17e33aa49a..436b60b54e 100644 --- a/internal/observability/metrics/version/version.go +++ b/internal/observability/metrics/version/version.go @@ -22,6 +22,13 @@ import ( "github.com/vdaas/vald/internal/info" "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + "go.opentelemetry.io/otel/sdk/metric/aggregation" + "go.opentelemetry.io/otel/sdk/metric/view" +) + +const ( + name = "app_version_info" + description = "app version info" ) var reps = strings.NewReplacer("_", " ", ",omitempty", "") @@ -69,10 +76,24 @@ func labelKVs(labels ...string) map[string]string { return info } +func (v *version) View() ([]*metrics.View, error) { + otlv, err := view.New( + view.MatchInstrumentName(name), + view.WithSetDescription(description), + view.WithSetAggregation(aggregation.LastValue{}), + ) + if err != nil { + return nil, err + } + return []*metrics.View{ + &otlv, + }, nil +} + func (v *version) Register(m metrics.Meter) error { info, err := m.AsyncInt64().Gauge( - "app_version_info", - metrics.WithDescription("app version info"), + name, + metrics.WithDescription(description), metrics.WithUnit(metrics.Dimensionless), ) if err != nil { diff --git a/internal/observability/metrics/version/version_test.go b/internal/observability/metrics/version/version_test.go index c6684c5cb7..e577a2a01a 100644 --- a/internal/observability/metrics/version/version_test.go +++ b/internal/observability/metrics/version/version_test.go @@ -253,3 +253,83 @@ func Test_version_Register(t *testing.T) { }) } } + +func Test_version_View(t *testing.T) { + type fields struct { + kvs map[string]string + } + type want struct { + want []*metrics.View + err error + } + type test struct { + name string + fields fields + want want + checkFunc func(want, []*metrics.View, error) error + beforeFunc func() + afterFunc func() + } + defaultCheckFunc := func(w want, got []*metrics.View, err error) error { + if !errors.Is(err, w.err) { + return errors.Errorf("got_error: \"%#v\",\n\t\t\t\twant: \"%#v\"", err, w.err) + } + if !reflect.DeepEqual(got, w.want) { + return errors.Errorf("got: \"%#v\",\n\t\t\t\twant: \"%#v\"", got, w.want) + } + return nil + } + tests := []test{ + // TODO test cases + /* + { + name: "test_case_1", + fields: fields { + kvs: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + }, + */ + + // TODO test cases + /* + func() test { + return test { + name: "test_case_2", + fields: fields { + kvs: nil, + }, + want: want{}, + checkFunc: defaultCheckFunc, + } + }(), + */ + } + + for _, tc := range tests { + test := tc + t.Run(test.name, func(tt *testing.T) { + tt.Parallel() + defer goleak.VerifyNone(tt, goleak.IgnoreCurrent()) + if test.beforeFunc != nil { + test.beforeFunc() + } + if test.afterFunc != nil { + defer test.afterFunc() + } + checkFunc := test.checkFunc + if test.checkFunc == nil { + checkFunc = defaultCheckFunc + } + v := &version{ + kvs: test.fields.kvs, + } + + got, err := v.View() + if err := checkFunc(test.want, got, err); err != nil { + tt.Errorf("error = %v", err) + } + }) + } +} diff --git a/internal/observability/observability.go b/internal/observability/observability.go index ea349ed805..d504df3b6c 100644 --- a/internal/observability/observability.go +++ b/internal/observability/observability.go @@ -13,7 +13,6 @@ // limitations under the License. package observability -// TODO: Fix observability-v2 to observability import ( "context" "reflect" @@ -26,6 +25,7 @@ import ( "github.com/vdaas/vald/internal/observability/exporter/jaeger" "github.com/vdaas/vald/internal/observability/exporter/prometheus" "github.com/vdaas/vald/internal/observability/metrics" + "github.com/vdaas/vald/internal/observability/metrics/grpc" "github.com/vdaas/vald/internal/observability/metrics/mem/index" "github.com/vdaas/vald/internal/observability/metrics/runtime/cgo" "github.com/vdaas/vald/internal/observability/metrics/runtime/goroutine" @@ -46,22 +46,23 @@ type observability struct { metrics []metrics.Metric } -func NewWithConfig(cfg *config.Observability, metrics ...metrics.Metric) (Observability, error) { +func NewWithConfig(cfg *config.Observability, ms ...metrics.Metric) (Observability, error) { opts := make([]Option, 0) exps := make([]exporter.Exporter, 0) if cfg.Metrics != nil { + ms = append(ms, grpc.New()) if cfg.Metrics.EnableCGO { - metrics = append(metrics, cgo.New()) + ms = append(ms, cgo.New()) } if cfg.Metrics.EnableGoroutine { - metrics = append(metrics, goroutine.New()) + ms = append(ms, goroutine.New()) } if cfg.Metrics.EnableMemory { - metrics = append(metrics, index.New()) + ms = append(ms, index.New()) } if cfg.Metrics.EnableVersionInfo { - metrics = append(metrics, version.New(cfg.Metrics.VersionInfoLabels...)) + ms = append(ms, version.New(cfg.Metrics.VersionInfoLabels...)) } } @@ -74,12 +75,14 @@ func NewWithConfig(cfg *config.Observability, metrics ...metrics.Metric) (Observ } if cfg.Prometheus.Enabled { + views := make([]metrics.Viewer, 0, len(ms)) + for _, m := range ms { + views = append(views, m) + } prom, err := prometheus.Init( prometheus.WithEndpoint(cfg.Prometheus.Endpoint), prometheus.WithNamespace(cfg.Prometheus.Namespace), - prometheus.WithCollectInterval(cfg.Prometheus.CollectInterval), - prometheus.WithCollectTimeout(cfg.Prometheus.CollectTimeout), - prometheus.WithInMemoty(cfg.Prometheus.EnableInMemoryMode), + prometheus.WithView(views...), ) if err != nil { return nil, err @@ -111,7 +114,7 @@ func NewWithConfig(cfg *config.Observability, metrics ...metrics.Metric) (Observ opts = append( opts, WithExporters(exps...), - WithMetrics(metrics...), + WithMetrics(ms...), ) return New(opts...) @@ -152,8 +155,10 @@ func (o *observability) PreStart(ctx context.Context) error { } } - if err := o.tracer.Start(ctx); err != nil { - return err + if o.tracer != nil { + if err := o.tracer.Start(ctx); err != nil { + return err + } } return nil } diff --git a/internal/servers/server/option.go b/internal/servers/server/option.go index 6430b517e4..971918b2a2 100644 --- a/internal/servers/server/option.go +++ b/internal/servers/server/option.go @@ -547,13 +547,9 @@ func WithGRPCInterceptors(names ...string) Option { grpc.ChainStreamInterceptor(trace.TraceStreamInterceptor()), ) case "metricinterceptor", "metric": - mi, err := metric.MetricInterceptor() + mi, msi, err := metric.MetricInterceptors() if err != nil { - return errors.NewErrCriticalOption("gRPCInterceptors", "metric", errors.Wrap(err, "failed to create UnaryInterceptor")) - } - msi, err := metric.MetricStreamInterceptor() - if err != nil { - return errors.NewErrCriticalOption("gRPCInterceptors", "metric", errors.Wrap(err, "failed to create StreamInterceptor")) + return errors.NewErrCriticalOption("gRPCInterceptors", "metric", errors.Wrap(err, "failed to create Interceptor")) } s.grpc.opts = append( s.grpc.opts, diff --git a/k8s/agent/configmap.yaml b/k8s/agent/configmap.yaml index 8e13cd3db4..7d19888601 100644 --- a/k8s/agent/configmap.yaml +++ b/k8s/agent/configmap.yaml @@ -164,37 +164,39 @@ data: key: /path/to/key observability: enabled: false - collector: - duration: 5s - metrics: - enable_cgo: true - enable_goroutine: true - enable_memory: true - enable_version_info: true - version_info_labels: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - ngt_version + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - ngt_version trace: enabled: false - sampling_rate: 1 prometheus: enabled: false endpoint: /metrics - namespace: vald + namespace: _MY_POD_NAMESPACE_ jaeger: enabled: false collector_endpoint: "" agent_endpoint: "" + agent_reconnect_interval: "30s" username: "" password: "" service_name: "vald-agent-ngt" - buffer_max_count: 65000 + agent_max_packet_size: 65000 + batch_timeout: "5s" + export_timeout: "5s" + max_export_batch_size: 512 + max_queue_size: 2048 ngt: auto_create_index_pool_size: 10000 auto_index_check_duration: 30m diff --git a/k8s/agent/statefulset.yaml b/k8s/agent/statefulset.yaml index 7cc76a7113..1f194c7507 100644 --- a/k8s/agent/statefulset.yaml +++ b/k8s/agent/statefulset.yaml @@ -137,6 +137,11 @@ spec: runAsGroup: 65532 runAsNonRoot: true runAsUser: 65532 + env: + - name: MY_POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace volumeMounts: - name: vald-agent-ngt-config mountPath: /etc/server/ diff --git a/k8s/discoverer/configmap.yaml b/k8s/discoverer/configmap.yaml index 2c2eec2750..cd31c0c9d1 100644 --- a/k8s/discoverer/configmap.yaml +++ b/k8s/discoverer/configmap.yaml @@ -164,37 +164,39 @@ data: key: /path/to/key observability: enabled: false - collector: - duration: 5s - metrics: - enable_cgo: true - enable_goroutine: true - enable_memory: true - enable_version_info: true - version_info_labels: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - ngt_version + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - ngt_version trace: enabled: false - sampling_rate: 1 prometheus: enabled: false endpoint: /metrics - namespace: vald + namespace: _MY_POD_NAMESPACE_ jaeger: enabled: false collector_endpoint: "" agent_endpoint: "" + agent_reconnect_interval: "30s" username: "" password: "" service_name: "vald-discoverer" - buffer_max_count: 65000 + agent_max_packet_size: 65000 + batch_timeout: "5s" + export_timeout: "5s" + max_export_batch_size: 512 + max_queue_size: 2048 discoverer: name: "" namespace: "_MY_POD_NAMESPACE_" diff --git a/k8s/discoverer/deployment.yaml b/k8s/discoverer/deployment.yaml index e8fc6faedf..54c5058c36 100644 --- a/k8s/discoverer/deployment.yaml +++ b/k8s/discoverer/deployment.yaml @@ -47,7 +47,7 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: discoverer annotations: - checksum/configmap: 1caeea02a35bb347cfcba71e4dd54eb4620568090584c42e19e63be181a56803 + checksum/configmap: 87040ce4fce3b1168f200efcaa9cd3e42c0039732ab83ab6846d0c6662292b44 profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-discoverer diff --git a/k8s/gateway/lb/configmap.yaml b/k8s/gateway/lb/configmap.yaml index d08836ef94..2f6f0c0bc4 100644 --- a/k8s/gateway/lb/configmap.yaml +++ b/k8s/gateway/lb/configmap.yaml @@ -164,37 +164,39 @@ data: key: /path/to/key observability: enabled: false - collector: - duration: 5s - metrics: - enable_cgo: true - enable_goroutine: true - enable_memory: true - enable_version_info: true - version_info_labels: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - ngt_version + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - ngt_version trace: enabled: false - sampling_rate: 1 prometheus: enabled: false endpoint: /metrics - namespace: vald + namespace: _MY_POD_NAMESPACE_ jaeger: enabled: false collector_endpoint: "" agent_endpoint: "" + agent_reconnect_interval: "30s" username: "" password: "" service_name: "vald-lb-gateway" - buffer_max_count: 65000 + agent_max_packet_size: 65000 + batch_timeout: "5s" + export_timeout: "5s" + max_export_batch_size: 512 + max_queue_size: 2048 gateway: agent_port: 8081 agent_name: "vald-agent-ngt" @@ -242,6 +244,7 @@ data: initial_connection_window_size: 0 initial_window_size: 0 insecure: true + interceptors: [] keepalive: permit_without_stream: true time: 120s @@ -319,6 +322,7 @@ data: initial_connection_window_size: 0 initial_window_size: 0 insecure: true + interceptors: [] keepalive: permit_without_stream: true time: 120s diff --git a/k8s/gateway/lb/deployment.yaml b/k8s/gateway/lb/deployment.yaml index bcd0d8710b..ef78bb05bd 100644 --- a/k8s/gateway/lb/deployment.yaml +++ b/k8s/gateway/lb/deployment.yaml @@ -46,7 +46,7 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: gateway-lb annotations: - checksum/configmap: 90ebfb3ed5ea5108b5d91075350ebad07f21806c595296929c79360738822449 + checksum/configmap: 2a940b9f6ee985f911cae9c1f27335a030272bba922488f868d6317646fb9c06 profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-lb-gateway diff --git a/k8s/manager/index/configmap.yaml b/k8s/manager/index/configmap.yaml index 2b9c106475..064111e989 100644 --- a/k8s/manager/index/configmap.yaml +++ b/k8s/manager/index/configmap.yaml @@ -164,37 +164,39 @@ data: key: /path/to/key observability: enabled: false - collector: - duration: 5s - metrics: - enable_cgo: true - enable_goroutine: true - enable_memory: true - enable_version_info: true - version_info_labels: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - ngt_version + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - ngt_version trace: enabled: false - sampling_rate: 1 prometheus: enabled: false endpoint: /metrics - namespace: vald + namespace: _MY_POD_NAMESPACE_ jaeger: enabled: false collector_endpoint: "" agent_endpoint: "" + agent_reconnect_interval: "30s" username: "" password: "" service_name: "vald-manager-index" - buffer_max_count: 65000 + agent_max_packet_size: 65000 + batch_timeout: "5s" + export_timeout: "5s" + max_export_batch_size: 512 + max_queue_size: 2048 indexer: agent_port: 8081 agent_name: "vald-agent-ngt" @@ -241,6 +243,7 @@ data: initial_connection_window_size: 0 initial_window_size: 0 insecure: true + interceptors: [] keepalive: permit_without_stream: true time: 120s @@ -323,6 +326,7 @@ data: enable_backoff: false insecure: true timeout: "" + interceptors: [] net: dns: cache_enabled: true diff --git a/k8s/manager/index/deployment.yaml b/k8s/manager/index/deployment.yaml index 684489ed14..e9a7d3ead5 100644 --- a/k8s/manager/index/deployment.yaml +++ b/k8s/manager/index/deployment.yaml @@ -47,7 +47,7 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: manager-index annotations: - checksum/configmap: b283b402fa17a91515bd1f095675a1e717c5c337e3cc65197a758bbf18957b46 + checksum/configmap: 426204633a20aea7fcfa5e8ebaa1d1fb7a7e82592413c1908f84773d9fad184a profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-manager-index diff --git a/k8s/operator/helm/crds/valdrelease.yaml b/k8s/operator/helm/crds/valdrelease.yaml index fad7008481..82f65944c1 100644 --- a/k8s/operator/helm/crds/valdrelease.yaml +++ b/k8s/operator/helm/crds/valdrelease.yaml @@ -285,37 +285,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -323,18 +292,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -349,8 +354,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number persistentVolume: type: object properties: @@ -821,7 +824,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -1269,37 +1273,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -1307,18 +1280,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -1333,8 +1342,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number resources: type: object properties: @@ -1757,7 +1764,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -2045,6 +2053,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -2171,37 +2185,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -2209,18 +2192,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -2235,8 +2254,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number server_config: type: object properties: @@ -2650,7 +2667,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -3058,37 +3076,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -3096,18 +3083,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -3122,8 +3145,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number podAnnotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -3574,7 +3595,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -3923,6 +3945,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -4100,6 +4128,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -4272,6 +4306,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -4472,37 +4512,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -4510,18 +4519,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -4536,8 +4581,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number podAnnotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -4988,7 +5031,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -5329,6 +5373,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -5498,6 +5548,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -5687,37 +5743,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -5725,18 +5750,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -5751,8 +5812,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number podAnnotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -6203,7 +6262,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: @@ -6575,6 +6635,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -6744,6 +6810,12 @@ spec: type: integer insecure: type: boolean + interceptors: + type: array + items: + type: string + enum: + - TraceInterceptor keepalive: type: object properties: @@ -6888,37 +6960,6 @@ spec: observability: type: object properties: - collector: - type: object - properties: - duration: - type: string - metrics: - type: object - properties: - enable_cgo: - type: boolean - enable_goroutine: - type: boolean - enable_memory: - type: boolean - enable_version_info: - type: boolean - version_info_labels: - type: array - items: - type: string - enum: - - vald_version - - server_name - - git_commit - - build_time - - go_version - - go_os - - go_arch - - cgo_enabled - - ngt_version - - build_cpu_info_flags enabled: type: boolean jaeger: @@ -6926,18 +6967,54 @@ spec: properties: agent_endpoint: type: string - buffer_max_count: + agent_max_packet_size: type: integer + agent_reconnect_interval: + type: string + batch_timeout: + type: string collector_endpoint: type: string enabled: type: boolean + export_timeout: + type: string + max_export_batch_size: + type: integer + max_queue_size: + type: integer password: type: string service_name: type: string username: type: string + metrics: + type: object + properties: + enable_cgo: + type: boolean + enable_goroutine: + type: boolean + enable_memory: + type: boolean + enable_version_info: + type: boolean + version_info_labels: + type: array + items: + type: string + enum: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - cgo_enabled + - ngt_version + - build_cpu_info_flags prometheus: type: object properties: @@ -6952,8 +7029,6 @@ spec: properties: enabled: type: boolean - sampling_rate: - type: number podAnnotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -7407,7 +7482,8 @@ spec: enum: - RecoverInterceptor - AccessLogInterceptor - - TracePayloadInterceptor + - TraceInterceptor + - MetricInterceptor keepalive: type: object properties: diff --git a/versions/NGT_VERSION b/versions/NGT_VERSION index 52e779f28f..9be7846722 100644 --- a/versions/NGT_VERSION +++ b/versions/NGT_VERSION @@ -1 +1 @@ -1.14.7 +1.14.8