This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-helm.git
The following commit(s) were added to refs/heads/master by this push:
new dfae017 Remove etcd dependency and support schema registry (#54)
dfae017 is described below
commit dfae017f1bc079ddf5084851ba2ea5995a1f4d1d
Author: mrproliu <[email protected]>
AuthorDate: Fri Mar 6 10:30:09 2026 +0800
Remove etcd dependency and support schema registry (#54)
* Remove etcd dependency and support schema registry
---------
Co-authored-by: Copilot <[email protected]>
---
.github/workflows/e2e.ci.yaml | 8 +-
chart/Chart.lock | 6 -
chart/Chart.yaml | 5 -
chart/templates/_helpers.tpl | 152 ++++++++++++++-
chart/templates/cluster_data_statefulset.yaml | 76 +++-----
chart/templates/cluster_liaison_statefulset.yaml | 40 ++--
chart/templates/cluster_ui_deployment.yaml | 28 +--
chart/values-lifecycle.yaml | 205 ++++++++++----------
chart/values.yaml | 206 +++++++++++----------
doc/parameters.md | 102 +++++-----
....yaml => e2e-banyandb-cluster-schema-etcd.yaml} | 74 ++++++--
...l => e2e-banyandb-cluster-schema-property.yaml} | 61 ++++--
test/e2e/e2e-banyandb-cluster.yaml | 20 +-
test/e2e/e2e-banyandb-fodc-proxy-service.yaml | 20 +-
test/e2e/e2e-banyandb-lifecycle.yaml | 20 +-
test/e2e/e2e-banyandb-node-registry-dns.yaml | 7 +-
test/e2e/e2e-banyandb-standalone.yaml | 5 -
test/e2e/expected/nodes-data.yaml | 4 +
test/e2e/expected/nodes-liaison.yaml | 10 +-
...gistry.yaml => values.cluster-schema-etcd.yaml} | 61 ++----
...ry.yaml => values.cluster-schema-property.yaml} | 50 +----
test/e2e/values.cluster.yaml | 32 +---
test/e2e/values.dns.registry.yaml | 27 +--
test/e2e/values.fodc.yaml | 29 +--
test/e2e/values.lifecycle.yaml | 41 ++--
test/e2e/values.standalone.yaml | 5 +-
26 files changed, 692 insertions(+), 602 deletions(-)
diff --git a/.github/workflows/e2e.ci.yaml b/.github/workflows/e2e.ci.yaml
index 208b2c7..f42d1ac 100644
--- a/.github/workflows/e2e.ci.yaml
+++ b/.github/workflows/e2e.ci.yaml
@@ -45,11 +45,15 @@ jobs:
config: test/e2e/e2e-banyandb-fodc-proxy-service.yaml
- name: Run Skywalking E2E Test (BanyanDB DNS node registry)
config: test/e2e/e2e-banyandb-node-registry-dns.yaml
+ - name: Run Skywalking E2E Test (BanyanDB cluster schema etcd)
+ config: test/e2e/e2e-banyandb-cluster-schema-etcd.yaml
+ - name: Run Skywalking E2E Test (BanyanDB cluster schema property)
+ config: test/e2e/e2e-banyandb-cluster-schema-property.yaml
name: ${{ matrix.test.name }}
env:
- OAP_TAG: 79860ca5c76a77bbd93e76ce4861b24707dd5ee3
+ OAP_TAG: 65137fc27fd765bb44007bad7fcbe59a185fa617
OAP_REPO: ghcr.io/apache/skywalking/oap
- UI_TAG: 79860ca5c76a77bbd93e76ce4861b24707dd5ee3
+ UI_TAG: 65137fc27fd765bb44007bad7fcbe59a185fa617
UI_REPO: ghcr.io/apache/skywalking/ui
steps:
- uses: actions/checkout@v2
diff --git a/chart/Chart.lock b/chart/Chart.lock
deleted file mode 100644
index 8d8b05b..0000000
--- a/chart/Chart.lock
+++ /dev/null
@@ -1,6 +0,0 @@
-dependencies:
-- name: etcd
- repository: oci://registry-1.docker.io/bitnamicharts
- version: 12.0.18
-digest: sha256:428d19828d309ec37ac9e569328eda161160b9a42cb7af3b6a3a44c738720fb2
-generated: "2026-02-08T23:49:42.822193635Z"
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 5252cdf..1da7826 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -21,8 +21,3 @@ description: Helm Chart for Apache SkyWalking BanyanDB
icon:
https://raw.githubusercontent.com/apache/skywalking-kubernetes/master/logo/sw-logo-for-chart.jpg
sources:
- https://github.com/apache/skywalking-banyandb-helm
-dependencies:
-- name: etcd
- version: 12.0.18
- repository: oci://registry-1.docker.io/bitnamicharts
- condition: etcd.enabled
diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl
index 8b44843..5267ddc 100644
--- a/chart/templates/_helpers.tpl
+++ b/chart/templates/_helpers.tpl
@@ -88,18 +88,150 @@ Create the name of the service account to use
EtcdEndpoints
*/}}
{{- define "banyandb.etcdEndpoints" -}}
-{{- $endpoints := list }}
-{{- $replicaCount := int .Values.etcd.replicaCount }}
-{{- $releaseName := .Release.Name }}
-{{- $namespace := .Release.Namespace }}
-{{- range $i := until $replicaCount }}
- {{- $endpoint := printf "%s-etcd-%d.%s-etcd-headless.%s:2379" $releaseName
$i $releaseName $namespace }}
- {{- $endpoints = append $endpoints $endpoint }}
-{{- end }}
+{{- $etcdClient := index .Values "etcd-client" | default dict }}
+{{- if $etcdClient.endpoints }}
- name: BYDB_ETCD_ENDPOINTS
- value: "{{- $endpoints | join "," -}}"
+ value: "{{- $etcdClient.endpoints | join "," -}}"
+{{- end }}
+{{- end }}
+
+{{/*
+EtcdEnv - injects all etcd-related env vars (endpoints, auth, TLS)
+Only rendered when schema storage mode is "etcd" or node discovery mode is
"etcd"
+*/}}
+{{- define "banyandb.etcdEnv" -}}
+{{- $schemaMode := (default dict .Values.cluster.schemaStorage).mode | default
"property" }}
+{{- $nodeDiscoveryMode := (default dict .Values.cluster.nodeDiscovery).mode |
default "dns" }}
+{{- if or (eq $schemaMode "etcd") (eq $nodeDiscoveryMode "etcd") }}
+{{- $etcdClient := index .Values "etcd-client" | default dict }}
+{{- if not $etcdClient.endpoints }}
+{{- fail "etcd-client.endpoints must be set when schemaStorage or
nodeDiscovery mode is 'etcd'" }}
+{{- end }}
+{{- $auth := $etcdClient.auth | default dict }}
+{{- $tls := $auth.tls | default dict }}
+{{- include "banyandb.etcdEndpoints" . }}
+{{- if $auth.username }}
+- name: BYDB_ETCD_USERNAME
+ value: {{ $auth.username | quote }}
+{{- end }}
+{{- if $auth.password }}
+- name: BYDB_ETCD_PASSWORD
+ value: {{ $auth.password | quote }}
+{{- end }}
+{{- if $tls.enabled }}
+{{- if $tls.secretName }}
+- name: BYDB_ETCD_TLS_CA_FILE
+ value: "/etc/tls/{{ $tls.secretName }}/{{ $tls.caFilename | default "ca.crt"
}}"
+- name: BYDB_ETCD_TLS_CERT_FILE
+ value: "/etc/tls/{{ $tls.secretName }}/{{ $tls.certFilename | default
"tls.crt" }}"
+- name: BYDB_ETCD_TLS_KEY_FILE
+ value: "/etc/tls/{{ $tls.secretName }}/{{ $tls.keyFilename | default
"tls.key" }}"
+{{- end }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+SchemaStorageEnv - injects schema storage env vars
+*/}}
+{{- define "banyandb.schemaStorageEnv" -}}
+{{- $schemaMode := (default dict .Values.cluster.schemaStorage).mode | default
"property" }}
+- name: BYDB_SCHEMA_REGISTRY_MODE
+ value: {{ $schemaMode | quote }}
+{{- end }}
+
+{{/*
+SchemaStoragePropertyServerEnv - injects property server env vars (data node
only)
+Includes: repair cron, schema server parameters, schema server TLS
+*/}}
+{{- define "banyandb.schemaStoragePropertyServerEnv" -}}
+{{- $schemaMode := (default dict .Values.cluster.schemaStorage).mode | default
"property" }}
+{{- if eq $schemaMode "property" }}
+{{- $property := ((default dict .Values.cluster.schemaStorage).property) |
default dict }}
+{{- if $property.serverRepairCron }}
+- name: BYDB_SCHEMA_PROPERTY_REPAIR_TRIGGER_CRON
+ value: {{ $property.serverRepairCron | quote }}
+{{- end }}
+{{- $server := $property.server | default dict }}
+{{- if $server.grpcHost }}
+- name: BYDB_SCHEMA_SERVER_GRPC_HOST
+ value: {{ $server.grpcHost | quote }}
+{{- end }}
+{{- if $server.grpcPort }}
+- name: BYDB_SCHEMA_SERVER_GRPC_PORT
+ value: {{ $server.grpcPort | quote }}
+{{- end }}
+{{- if $server.flushTimeout }}
+- name: BYDB_SCHEMA_SERVER_FLUSH_TIMEOUT
+ value: {{ $server.flushTimeout | quote }}
+{{- end }}
+{{- if $server.expireDeleteTimeout }}
+- name: BYDB_SCHEMA_SERVER_EXPIRE_DELETE_TIMEOUT
+ value: {{ $server.expireDeleteTimeout | quote }}
+{{- end }}
+{{- if $server.maxRecvMsgSize }}
+- name: BYDB_SCHEMA_SERVER_MAX_RECV_MSG_SIZE
+ value: {{ $server.maxRecvMsgSize | quote }}
+{{- end }}
+{{- if $server.repairTreeSlotCount }}
+- name: BYDB_SCHEMA_SERVER_REPAIR_TREE_SLOT_COUNT
+ value: {{ $server.repairTreeSlotCount | quote }}
+{{- end }}
+{{- if $server.repairBuildTreeCron }}
+- name: BYDB_SCHEMA_SERVER_REPAIR_BUILD_TREE_CRON
+ value: {{ $server.repairBuildTreeCron | quote }}
+{{- end }}
+{{- if $server.repairQuickBuildTreeTime }}
+- name: BYDB_SCHEMA_SERVER_REPAIR_QUICK_BUILD_TREE_TIME
+ value: {{ $server.repairQuickBuildTreeTime | quote }}
+{{- end }}
+{{- if $server.maxFileSnapshotNum }}
+- name: BYDB_SCHEMA_SERVER_MAX_FILE_SNAPSHOT_NUM
+ value: {{ $server.maxFileSnapshotNum | quote }}
+{{- end }}
+{{- if $server.minFileSnapshotAge }}
+- name: BYDB_SCHEMA_SERVER_MIN_FILE_SNAPSHOT_AGE
+ value: {{ $server.minFileSnapshotAge | quote }}
+{{- end }}
+{{- $serverTls := $server.tls | default dict }}
+{{- if $serverTls.secretName }}
+- name: BYDB_SCHEMA_SERVER_TLS
+ value: "true"
+- name: BYDB_SCHEMA_SERVER_CERT_FILE
+ value: "/etc/tls/{{ $serverTls.secretName }}/tls.crt"
+- name: BYDB_SCHEMA_SERVER_KEY_FILE
+ value: "/etc/tls/{{ $serverTls.secretName }}/tls.key"
+{{- end }}
+{{- end }}
{{- end }}
+{{/*
+SchemaStoragePropertyClientEnv - injects property client env vars (data +
liaison nodes)
+Includes: sync interval, max recv msg size, client TLS
+*/}}
+{{- define "banyandb.schemaStoragePropertyClientEnv" -}}
+{{- $schemaMode := (default dict .Values.cluster.schemaStorage).mode | default
"property" }}
+{{- if eq $schemaMode "property" }}
+{{- $property := ((default dict .Values.cluster.schemaStorage).property) |
default dict }}
+{{- if $property.clientSyncInterval }}
+- name: BYDB_SCHEMA_PROPERTY_CLIENT_SYNC_INTERVAL
+ value: {{ $property.clientSyncInterval | quote }}
+{{- end }}
+{{- if $property.clientMaxRecvMsgSize }}
+- name: BYDB_SCHEMA_PROPERTY_CLIENT_MAX_RECV_MSG_SIZE
+ value: {{ $property.clientMaxRecvMsgSize | quote }}
+{{- end }}
+{{- $clientTls := $property.tls | default dict }}
+{{- if $clientTls.secretName }}
+- name: BYDB_SCHEMA_PROPERTY_CLIENT_TLS
+ value: "true"
+- name: BYDB_SCHEMA_PROPERTY_CLIENT_CA_CERT
+ value: "/etc/tls/{{ $clientTls.secretName }}/ca.crt"
+{{- end }}
+{{- end }}
+{{- end }}
+
+
{{- define "banyandb.hasDataNodeListValue" -}}
{{- $dataNodeList := include "banyandb.dataNodeListValue" . }}
{{- if ne $dataNodeList "" }}true{{- end }}
@@ -180,7 +312,7 @@ Generate node discovery environment variables for a
component
value: {{ $etcdClient.namespace | quote }}
{{- end }}
{{- if $etcdClient.nodeDiscoveryTimeout }}
-- name: BYDB_NODE_DISCOVERY_TIMEOUT
+- name: BYDB_NODE_REGISTRY_TIMEOUT
value: {{ $etcdClient.nodeDiscoveryTimeout | quote }}
{{- end }}
{{- if $etcdClient.fullSyncInterval }}
diff --git a/chart/templates/cluster_data_statefulset.yaml
b/chart/templates/cluster_data_statefulset.yaml
index c10d15a..60411c8 100644
--- a/chart/templates/cluster_data_statefulset.yaml
+++ b/chart/templates/cluster_data_statefulset.yaml
@@ -174,28 +174,10 @@ spec:
value: "/etc/tls/{{ $roleConfig.tls.grpcSecretName }}/tls.crt"
{{- end }}
{{- end }}
- {{- if and $.Values.etcd.auth.rbac.create (not
$.Values.etcd.auth.rbac.allowNoneAuthentication) }}
- - name: BYDB_ETCD_USERNAME
- value: "root"
- - name: BYDB_ETCD_PASSWORD
- value: "{{ $.Values.etcd.auth.rbac.rootPassword }}"
- {{- end }}
- {{- if $.Values.etcd.auth.client.secureTransport }}
- - name: BYDB_ETCD_TLS_CA_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/ca.crt"
- {{- end }}
- {{- if $.Values.etcd.auth.client.enableAuthentication }}
- - name: BYDB_ETCD_TLS_CERT_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/tls.crt"
- - name: BYDB_ETCD_TLS_KEY_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/tls.key"
- {{- end }}
- {{- if and (not $.Values.etcd.enabled)
$.Values.cluster.etcdEndpoints }}
- - name: BYDB_ETCD_ENDPOINTS
- value: "{{- $.Values.cluster.etcdEndpoints | join "," -}}"
- {{- else }}
- {{- include "banyandb.etcdEndpoints" $ | nindent 12 }}
- {{- end }}
+ {{- include "banyandb.schemaStorageEnv" $ | nindent 12 }}
+ {{- include "banyandb.schemaStoragePropertyServerEnv" $ | nindent
12 }}
+ {{- include "banyandb.schemaStoragePropertyClientEnv" $ | nindent
12 }}
+ {{- include "banyandb.etcdEnv" $ | nindent 12 }}
{{- include "banyandb.nodeDiscoveryEnv" (dict "root" $) | nindent
12 }}
{{- $mergedEnv := concat $.Values.cluster.data.nodeTemplate.env
$roleConfig.env }}
{{- range $env := $mergedEnv }}
@@ -260,7 +242,11 @@ spec:
{{- end }}
{{- end }}
- {{- if or $.Values.storage.data.enabled $roleConfig.tls
$nodeDiscoveryFileMode }}
+ {{- $schemaProperty := ($.Values.cluster.schemaStorage).property |
default dict }}
+ {{- $schemaClientTls := $schemaProperty.tls | default dict }}
+ {{- $schemaServer := $schemaProperty.server | default dict }}
+ {{- $schemaServerTls := $schemaServer.tls | default dict }}
+ {{- if or $.Values.storage.data.enabled $roleConfig.tls
$schemaClientTls.secretName $schemaServerTls.secretName $nodeDiscoveryFileMode
}}
volumeMounts:
{{- if $.Values.storage.data.enabled }}
{{- range $claim := $.Values.storage.data.persistentVolumeClaims }}
@@ -292,6 +278,14 @@ spec:
name: {{ $roleConfig.tls.etcdSecretName }}-volume
{{- end }}
{{- end }}
+ {{- if $schemaClientTls.secretName }}
+ - mountPath: /etc/tls/{{ $schemaClientTls.secretName }}
+ name: {{ $schemaClientTls.secretName }}-volume
+ {{- end }}
+ {{- if $schemaServerTls.secretName }}
+ - mountPath: /etc/tls/{{ $schemaServerTls.secretName }}
+ name: {{ $schemaServerTls.secretName }}-volume
+ {{- end }}
{{- if $nodeDiscoveryFileMode }}
- mountPath: /etc/banyandb/node-discovery
name: node-discovery-file
@@ -413,28 +407,8 @@ spec:
env:
- name: BYDB_NODE_LABELS
value: "type={{ $roleName }}"
- {{- if and $.Values.etcd.auth.rbac.create (not
$.Values.etcd.auth.rbac.allowNoneAuthentication) }}
- - name: BYDB_ETCD_USERNAME
- value: "root"
- - name: BYDB_ETCD_PASSWORD
- value: "{{ $.Values.etcd.auth.rbac.rootPassword }}"
- {{- end }}
- {{- if $.Values.etcd.auth.client.secureTransport }}
- - name: BYDB_ETCD_TLS_CA_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/ca.crt"
- {{- end }}
- {{- if $.Values.etcd.auth.client.enableAuthentication }}
- - name: BYDB_ETCD_TLS_CERT_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/tls.crt"
- - name: BYDB_ETCD_TLS_KEY_FILE
- value: "/etc/tls/{{ $roleConfig.tls.etcdSecretName }}/tls.key"
- {{- end }}
- {{- if and (not $.Values.etcd.enabled)
$.Values.cluster.etcdEndpoints }}
- - name: BYDB_ETCD_ENDPOINTS
- value: "{{- $.Values.cluster.etcdEndpoints | join "," -}}"
- {{- else }}
- {{- include "banyandb.etcdEndpoints" $ | nindent 12 }}
- {{- end }}
+ {{- include "banyandb.schemaStorageEnv" $ | nindent 12 }}
+ {{- include "banyandb.etcdEnv" $ | nindent 12 }}
{{- include "banyandb.nodeDiscoveryEnv" (dict "root" $) | nindent
12 }}
command:
- "/lifecycle"
@@ -518,7 +492,7 @@ spec:
{{- end }}
{{- end }}
- {{- if or $roleConfig.tls $nodeDiscoveryFileMode }}
+ {{- if or $roleConfig.tls $schemaClientTls.secretName
$schemaServerTls.secretName $nodeDiscoveryFileMode }}
volumes:
{{- if $roleConfig.tls }}
{{- if $roleConfig.tls.grpcSecretName }}
@@ -532,6 +506,16 @@ spec:
secretName: {{ $roleConfig.tls.etcdSecretName }}
{{- end }}
{{- end }}
+ {{- if $schemaClientTls.secretName }}
+ - name: {{ $schemaClientTls.secretName }}-volume
+ secret:
+ secretName: {{ $schemaClientTls.secretName }}
+ {{- end }}
+ {{- if $schemaServerTls.secretName }}
+ - name: {{ $schemaServerTls.secretName }}-volume
+ secret:
+ secretName: {{ $schemaServerTls.secretName }}
+ {{- end }}
{{- if $nodeDiscoveryFileMode }}
- name: node-discovery-file
configMap:
diff --git a/chart/templates/cluster_liaison_statefulset.yaml
b/chart/templates/cluster_liaison_statefulset.yaml
index 4ffb8d1..78c59eb 100644
--- a/chart/templates/cluster_liaison_statefulset.yaml
+++ b/chart/templates/cluster_liaison_statefulset.yaml
@@ -147,28 +147,9 @@ spec:
value: "/etc/tls/{{ .Values.cluster.liaison.tls.httpSecretName
}}/tls.key"
{{- end }}
{{- end }}
- {{- if and .Values.etcd.auth.rbac.create (not
.Values.etcd.auth.rbac.allowNoneAuthentication) }}
- - name: BYDB_ETCD_USERNAME
- value: "root"
- - name: BYDB_ETCD_PASSWORD
- value: {{ .Values.etcd.auth.rbac.rootPassword }}
- {{- end }}
- {{- if and .Values.cluster.liaison.tls
.Values.cluster.liaison.tls.etcdSecretName
.Values.etcd.auth.client.secureTransport }}
- - name: BYDB_ETCD_TLS_CA_FILE
- value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName
}}/ca.crt"
- {{- end }}
- {{- if and .Values.cluster.liaison.tls
.Values.cluster.liaison.tls.etcdSecretName
.Values.etcd.auth.client.enableAuthentication }}
- - name: BYDB_ETCD_TLS_CERT_FILE
- value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName
}}/tls.crt"
- - name: BYDB_ETCD_TLS_KEY_FILE
- value: "/etc/tls/{{ .Values.cluster.liaison.tls.etcdSecretName
}}/tls.key"
- {{- end }}
- {{- if and (not .Values.etcd.enabled)
.Values.cluster.etcdEndpoints }}
- - name: BYDB_ETCD_ENDPOINTS
- value: "{{- .Values.cluster.etcdEndpoints | join "," -}}"
- {{- else }}
- {{- include "banyandb.etcdEndpoints" . | nindent 12 }}
- {{- end }}
+ {{- include "banyandb.schemaStorageEnv" . | nindent 12 }}
+ {{- include "banyandb.schemaStoragePropertyClientEnv" . | nindent
12 }}
+ {{- include "banyandb.etcdEnv" . | nindent 12 }}
{{- include "banyandb.nodeDiscoveryEnv" (dict "root" .) | nindent
12 }}
{{- if include "banyandb.hasDataNodeListValue" . }}
- name: BYDB_DATA_NODE_LIST
@@ -252,7 +233,9 @@ spec:
{{- end }}
{{- end }}
- {{- if or .Values.storage.liaison.enabled
.Values.cluster.liaison.tls .Values.auth.enabled $nodeDiscoveryFileMode }}
+ {{- $schemaProperty := (.Values.cluster.schemaStorage).property |
default dict }}
+ {{- $schemaClientTls := $schemaProperty.tls | default dict }}
+ {{- if or .Values.storage.liaison.enabled
.Values.cluster.liaison.tls $schemaClientTls.secretName .Values.auth.enabled
$nodeDiscoveryFileMode }}
volumeMounts:
{{- if .Values.storage.liaison.enabled }}
{{- range $claim := .Values.storage.liaison.persistentVolumeClaims
}}
@@ -277,6 +260,10 @@ spec:
name: {{ .Values.cluster.liaison.tls.httpSecretName }}-volume
{{- end }}
{{- end }}
+ {{- if $schemaClientTls.secretName }}
+ - mountPath: /etc/tls/{{ $schemaClientTls.secretName }}
+ name: {{ $schemaClientTls.secretName }}-volume
+ {{- end }}
{{- if .Values.auth.enabled }}
- mountPath: /etc/banyandb
name: banyandb-auth-writable
@@ -341,7 +328,7 @@ spec:
{{- end }}
{{- end }}
- {{- if or .Values.cluster.liaison.tls .Values.auth.enabled
$nodeDiscoveryFileMode }}
+ {{- if or .Values.cluster.liaison.tls $schemaClientTls.secretName
.Values.auth.enabled $nodeDiscoveryFileMode }}
volumes:
{{- if .Values.cluster.liaison.tls }}
{{- if .Values.cluster.liaison.tls.grpcSecretName }}
@@ -360,6 +347,11 @@ spec:
secretName: {{ .Values.cluster.liaison.tls.httpSecretName }}
{{- end }}
{{- end }}
+ {{- if $schemaClientTls.secretName }}
+ - name: {{ $schemaClientTls.secretName }}-volume
+ secret:
+ secretName: {{ $schemaClientTls.secretName }}
+ {{- end }}
{{- if $nodeDiscoveryFileMode }}
- name: node-discovery-file
configMap:
diff --git a/chart/templates/cluster_ui_deployment.yaml
b/chart/templates/cluster_ui_deployment.yaml
index 17c32df..9335802 100644
--- a/chart/templates/cluster_ui_deployment.yaml
+++ b/chart/templates/cluster_ui_deployment.yaml
@@ -62,27 +62,17 @@ spec:
value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.httpSecretName }}/tls.key"
{{- end }}
{{- end }}
- {{- if and .Values.etcd.auth.rbac.create (not
.Values.etcd.auth.rbac.allowNoneAuthentication) }}
- - name: BYDB_ETCD_USERNAME
- value: "root"
- - name: BYDB_ETCD_PASSWORD
- value: {{ .Values.etcd.auth.rbac.rootPassword }}
- {{- end }}
- {{- if .Values.etcd.auth.client.secureTransport }}
- - name: BYDB_ETCD_TLS_CA_FILE
- value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.etcdSecretName }}/ca.crt"
- {{- end }}
- {{- if .Values.etcd.auth.client.enableAuthentication }}
+ {{- include "banyandb.schemaStorageEnv" . | nindent 12 }}
+ {{- include "banyandb.etcdEnv" . | nindent 12 }}
+ {{- if and .Values.cluster.ui.standalone.tls
.Values.cluster.ui.standalone.tls.httpSecretName
.Values.etcdClient.auth.tls.enabled }}
+ - name: BYDB_ETCD_TLS
+ value: "true"
- name: BYDB_ETCD_TLS_CERT_FILE
- value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.etcdSecretName }}/tls.crt"
+ value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.httpSecretName }}/tls.crt"
- name: BYDB_ETCD_TLS_KEY_FILE
- value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.etcdSecretName }}/tls.key"
- {{- end }}
- {{- if and (not .Values.etcd.enabled)
.Values.cluster.etcdEndpoints }}
- - name: BYDB_ETCD_ENDPOINTS
- value: "{{- .Values.cluster.etcdEndpoints | join "," -}}"
- {{- else }}
- {{- include "banyandb.etcdEndpoints" . | nindent 12 }}
+ value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.httpSecretName }}/tls.key"
+ - name: BYDB_ETCD_TLS_CA_FILE
+ value: "/etc/tls/{{
.Values.cluster.ui.standalone.tls.httpSecretName }}/ca.crt"
{{- end }}
args:
- liaison
diff --git a/chart/values-lifecycle.yaml b/chart/values-lifecycle.yaml
index 23d839b..04af875 100644
--- a/chart/values-lifecycle.yaml
+++ b/chart/values-lifecycle.yaml
@@ -40,7 +40,7 @@ image:
##
pullPolicy: IfNotPresent
-## @section Etcd Client Configuration for Node Discovery
+## @section Etcd Client Configuration
##
etcd-client:
## @param etcd-client.namespace Namespace in etcd for node registration
@@ -58,6 +58,39 @@ etcd-client:
##
fullSyncInterval: "30m"
+ ## @param etcd-client.endpoints List of external etcd endpoints
+ ## e.g. ["etcd-0.etcd-headless.ns:2379"]
+ ##
+ endpoints: []
+
+ ## @section Etcd Client Authentication
+ ##
+ auth:
+ ## @param etcd-client.auth.username Username for etcd authentication
+ ##
+ username: ""
+ ## @param etcd-client.auth.password Password for etcd authentication
+ ##
+ password: ""
+ ## @section Etcd Client TLS Configuration
+ ##
+ tls:
+ ## @param etcd-client.auth.tls.enabled Enable TLS for etcd client
+ ##
+ enabled: false
+ ## @param etcd-client.auth.tls.secretName K8s secret name containing TLS
certs
+ ##
+ secretName: ""
+ ## @param etcd-client.auth.tls.caFilename CA certificate filename
+ ##
+ caFilename: "ca.crt"
+ ## @param etcd-client.auth.tls.certFilename Client certificate filename
+ ##
+ certFilename: "tls.crt"
+ ## @param etcd-client.auth.tls.keyFilename Client key filename
+ ##
+ keyFilename: "tls.key"
+
## @section Configuration for standalone deployment
##
standalone:
@@ -222,9 +255,85 @@ cluster:
## @param cluster.enabled Enable cluster mode (boolean)
##
enabled: true
- ## @param cluster.etcdEndpoints List of etcd endpoints
+
+ ## @section Schema Storage Configuration
##
- etcdEndpoints: []
+ schemaStorage:
+ ## @param cluster.schemaStorage.mode Schema storage mode ("property" or
"etcd")
+ ## Default: property
+ ##
+ mode: "property"
+ ## @section Property Mode Configuration
+ ##
+ property:
+ ## @param cluster.schemaStorage.property.serverRepairCron Cron schedule
for metadata property server repair trigger
+ ## Default: "@every 10m"
+ ##
+ serverRepairCron: "@every 10m"
+ ## @param cluster.schemaStorage.property.clientSyncInterval Interval for
property schema client synchronization
+ ## Default: "30s"
+ ##
+ clientSyncInterval: "30s"
+ ## @param cluster.schemaStorage.property.clientMaxRecvMsgSize Maximum
gRPC receive message size for property schema client
+ ## Default: "" (uses program built-in 10MiB)
+ ##
+ clientMaxRecvMsgSize: ""
+ ##
+ tls:
+ ## @param cluster.schemaStorage.property.tls.secretName K8s Secret for
schema client TLS (CA cert)
+ ## When set, auto-enables BYDB_SCHEMA_PROPERTY_CLIENT_TLS and mounts
CA from /etc/tls/<secretName>/
+ ##
+ secretName: ""
+ ## @section Property Schema Server Configuration (data nodes only)
+ ##
+ server:
+ ## @param cluster.schemaStorage.property.server.grpcHost Schema server
gRPC listen address
+ ## Default: ""
+ ##
+ grpcHost: ""
+ ## @param cluster.schemaStorage.property.server.grpcPort Schema server
gRPC port
+ ## Default: 17916
+ ##
+ grpcPort: 17916
+ ## @param cluster.schemaStorage.property.server.flushTimeout Interval
for flushing in-memory data to disk
+ ## Default: "5s"
+ ##
+ flushTimeout: "5s"
+ ## @param cluster.schemaStorage.property.server.expireDeleteTimeout
Soft-delete expiration timeout
+ ## Default: "168h" (7 days)
+ ##
+ expireDeleteTimeout: "168h"
+ ## @param cluster.schemaStorage.property.server.maxRecvMsgSize Maximum
gRPC receive message size for schema server
+ ## Default: "" (uses program built-in)
+ ##
+ maxRecvMsgSize: ""
+ ## @param cluster.schemaStorage.property.server.repairTreeSlotCount
Number of repair tree slots
+ ## Default: "" (uses program built-in 32)
+ ##
+ repairTreeSlotCount: ""
+ ## @param cluster.schemaStorage.property.server.repairBuildTreeCron
Cron expression for repair tree build
+ ## Default: "@every 1h"
+ ##
+ repairBuildTreeCron: "@every 1h"
+ ## @param
cluster.schemaStorage.property.server.repairQuickBuildTreeTime Duration for
quick tree build after startup
+ ## Default: "10m"
+ ##
+ repairQuickBuildTreeTime: "10m"
+ ## @param cluster.schemaStorage.property.server.maxFileSnapshotNum
Maximum number of file snapshots
+ ## Default: "" (uses program built-in 10)
+ ##
+ maxFileSnapshotNum: ""
+ ## @param cluster.schemaStorage.property.server.minFileSnapshotAge
Minimum age before a snapshot can be removed
+ ## Default: "1h"
+ ##
+ minFileSnapshotAge: "1h"
+ ## @section Property Schema Server TLS Configuration (data nodes only)
+ ##
+ tls:
+ ## @param cluster.schemaStorage.property.server.tls.secretName K8s
Secret for schema server TLS (cert + key)
+ ## When set, auto-enables BYDB_SCHEMA_SERVER_TLS and mounts cert/key
from /etc/tls/<secretName>/
+ ##
+ secretName: ""
## @section Node Discovery Configuration for Service Discovery
##
@@ -1154,93 +1263,3 @@ serviceAccount:
##
name: ""
-## @section Etcd configuration for cluster state management
-##
-etcd:
- ## @param etcd.enabled Enable etcd (boolean)
- ##
- enabled: true
- ## @param etcd.replicaCount Number of etcd replicas
- ##
- replicaCount: 1
- ## @param etcd.image.repository Docker repository for etcd
- ##
- image:
- repository: bitnamilegacy/etcd
- ## @section Authentication configuration for etcd
- ##
- auth:
- ## @section RBAC configuration for etcd
- ##
- rbac:
- ## @param etcd.auth.rbac.create Create RBAC roles (boolean)
- ##
- create: true
- ## @param etcd.auth.rbac.allowNoneAuthentication Allow unauthenticated
access (boolean)
- ##
- allowNoneAuthentication: false
- ## @param etcd.auth.rbac.rootPassword Root user password
- ##
- rootPassword: banyandb
- ## @section Client TLS configuration
- ##
- client:
- ## @param etcd.auth.client.secureTransport Enable TLS for client
communication (boolean)
- ##
- secureTransport: false
- ## @param etcd.auth.client.existingSecret Existing secret containing TLS
certs
- ##
- existingSecret: ""
- ## @param etcd.auth.client.enableAuthentication Enable client
authentication (boolean)
- ##
- enableAuthentication: false
- ## @param etcd.auth.client.certFilename Client certificate filename
- ##
- certFilename: tls.crt
- ## @param etcd.auth.client.certKeyFilename Client certificate key
filename
- ##
- certKeyFilename: tls.key
- ## @param etcd.auth.client.caFilename CA certificate filename for TLS
- ##
- caFilename: ""
- ## Authentication token
- ## ref:
https://etcd.io/docs/latest/learning/design-auth-v3/#two-types-of-tokens-simple-and-jwt
- ##
- token:
- ## @param auth.token.enabled Enables token authentication
- ##
- enabled: true
- ## @param auth.token.type Authentication token type. Allowed values:
'simple' or 'jwt'
- ## ref: https://etcd.io/docs/latest/op-guide/configuration/#--auth-token
- ##
- type: simple
- ## @section Liveness probe configuration for etcd
- ##
- livenessProbe:
- ## @param etcd.livenessProbe.initialDelaySeconds Initial delay for
liveness probe
- ##
- initialDelaySeconds: 10
- ## @section Readiness probe configuration for etcd
- ##
- readinessProbe:
- ## @param etcd.readinessProbe.initialDelaySeconds Initial delay for
readiness probe
- ##
- initialDelaySeconds: 10
- ## @param etcd.autoCompactionMode Auto-compaction mode (periodic, revision)
- ##
- autoCompactionMode: periodic
- ## @param etcd.autoCompactionRetention Auto-compaction retention period
- ##
- autoCompactionRetention: "1"
- ## @extra etcd.defrag Configuration for defragmentation
- ##
- defrag:
- ## @param etcd.defrag.enabled Enable defragmentation (boolean)
- ##
- enabled: true
- ## @extra etcd.defrag.cronjob Cron job configuration for defragmentation
- ##
- cronjob:
- ## @param etcd.defrag.cronjob.schedule Cron schedule for defragmentation
- ##
- schedule: "0 0 * * *"
diff --git a/chart/values.yaml b/chart/values.yaml
index f6a087f..013e766 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -74,7 +74,7 @@ auth:
##
users: []
-## @section Etcd Client Configuration for Node Discovery
+## @section Etcd Client Configuration
##
etcd-client:
## @param etcd-client.namespace Namespace in etcd for node registration
@@ -92,6 +92,39 @@ etcd-client:
##
fullSyncInterval: "30m"
+ ## @param etcd-client.endpoints List of external etcd endpoints
+ ## e.g. ["etcd-0.etcd-headless.ns:2379"]
+ ##
+ endpoints: []
+
+ ## @section Etcd Client Authentication
+ ##
+ auth:
+ ## @param etcd-client.auth.username Username for etcd authentication
+ ##
+ username: ""
+ ## @param etcd-client.auth.password Password for etcd authentication
+ ##
+ password: ""
+ ## @section Etcd Client TLS Configuration
+ ##
+ tls:
+ ## @param etcd-client.auth.tls.enabled Enable TLS for etcd client
+ ##
+ enabled: false
+ ## @param etcd-client.auth.tls.secretName K8s secret name containing TLS
certs
+ ##
+ secretName: ""
+ ## @param etcd-client.auth.tls.caFilename CA certificate filename
+ ##
+ caFilename: "ca.crt"
+ ## @param etcd-client.auth.tls.certFilename Client certificate filename
+ ##
+ certFilename: "tls.crt"
+ ## @param etcd-client.auth.tls.keyFilename Client key filename
+ ##
+ keyFilename: "tls.key"
+
## @section Configuration for standalone deployment
##
standalone:
@@ -263,9 +296,86 @@ cluster:
## @param cluster.enabled Enable cluster mode (boolean)
##
enabled: true
- ## @param cluster.etcdEndpoints List of etcd endpoints
+
+ ## @section Schema Storage Configuration
##
- etcdEndpoints: []
+ schemaStorage:
+ ## @param cluster.schemaStorage.mode Schema storage mode ("property" or
"etcd")
+ ## Default: property
+ ##
+ mode: "property"
+ ## @section Property Mode Configuration
+ ##
+ property:
+ ## @param cluster.schemaStorage.property.serverRepairCron Cron schedule
for metadata property server repair trigger
+ ## Default: "@every 10m"
+ ##
+ serverRepairCron: "@every 10m"
+ ## @param cluster.schemaStorage.property.clientSyncInterval Interval for
property schema client synchronization
+ ## Default: "30s"
+ ##
+ clientSyncInterval: "30s"
+ ## @param cluster.schemaStorage.property.clientMaxRecvMsgSize Maximum
gRPC receive message size for property schema client
+ ## Default: "" (uses program built-in 10MiB)
+ ##
+ clientMaxRecvMsgSize: ""
+ ##
+ tls:
+ ## @param cluster.schemaStorage.property.tls.secretName K8s Secret for
schema client TLS (CA cert)
+ ## When set, auto-enables BYDB_SCHEMA_PROPERTY_CLIENT_TLS and mounts
CA from /etc/tls/<secretName>/
+ ##
+ secretName: ""
+ ## @section Property Schema Server Configuration (data nodes only)
+ ##
+ server:
+ ## @param cluster.schemaStorage.property.server.grpcHost Schema server
gRPC listen address
+ ## Default: ""
+ ##
+ grpcHost: ""
+ ## @param cluster.schemaStorage.property.server.grpcPort Schema server
gRPC port
+ ## Default: 17916
+ ##
+ grpcPort: 17916
+ ## @param cluster.schemaStorage.property.server.flushTimeout Interval
for flushing in-memory data to disk
+ ## Default: "5s"
+ ##
+ flushTimeout: "5s"
+ ## @param cluster.schemaStorage.property.server.expireDeleteTimeout
Soft-delete expiration timeout
+ ## Default: "168h" (7 days)
+ ##
+ expireDeleteTimeout: "168h"
+ ## @param cluster.schemaStorage.property.server.maxRecvMsgSize Maximum
gRPC receive message size for schema server
+ ## Default: "" (uses program built-in)
+ ##
+ maxRecvMsgSize: ""
+ ## @param cluster.schemaStorage.property.server.repairTreeSlotCount
Number of repair tree slots
+ ## Default: "" (uses program built-in 32)
+ ##
+ repairTreeSlotCount: ""
+ ## @param cluster.schemaStorage.property.server.repairBuildTreeCron
Cron expression for repair tree build
+ ## Default: "@every 1h"
+ ##
+ repairBuildTreeCron: "@every 1h"
+ ## @param
cluster.schemaStorage.property.server.repairQuickBuildTreeTime Duration for
quick tree build after startup
+ ## Default: "10m"
+ ##
+ repairQuickBuildTreeTime: "10m"
+ ## @param cluster.schemaStorage.property.server.maxFileSnapshotNum
Maximum number of file snapshots
+ ## Default: "" (uses program built-in 10)
+ ##
+ maxFileSnapshotNum: ""
+ ## @param cluster.schemaStorage.property.server.minFileSnapshotAge
Minimum age before a snapshot can be removed
+ ## Default: "1h"
+ ##
+ minFileSnapshotAge: "1h"
+ ## @section Property Schema Server TLS Configuration (data nodes only)
+ ##
+ tls:
+ ## @param cluster.schemaStorage.property.server.tls.secretName K8s
Secret for schema server TLS (cert + key)
+ ## When set, auto-enables BYDB_SCHEMA_SERVER_TLS and mounts cert/key
from /etc/tls/<secretName>/
+ ##
+ secretName: ""
+ ## @section Property Schema Client TLS Configuration (data + liaison
nodes)
## @section Node Discovery Configuration for Service Discovery
##
@@ -1180,93 +1290,3 @@ serviceAccount:
##
name: ""
-## @section Etcd configuration for cluster state management
-##
-etcd:
- ## @param etcd.enabled Enable etcd (boolean)
- ##
- enabled: true
- ## @param etcd.replicaCount Number of etcd replicas
- ##
- replicaCount: 1
- ## @param etcd.image.repository Docker repository for etcd
- ##
- image:
- repository: bitnamilegacy/etcd
- ## @section Authentication configuration for etcd
- ##
- auth:
- ## @section RBAC configuration for etcd
- ##
- rbac:
- ## @param etcd.auth.rbac.create Create RBAC roles (boolean)
- ##
- create: true
- ## @param etcd.auth.rbac.allowNoneAuthentication Allow unauthenticated
access (boolean)
- ##
- allowNoneAuthentication: false
- ## @param etcd.auth.rbac.rootPassword Root user password
- ##
- rootPassword: banyandb
- ## @section Client TLS configuration
- ##
- client:
- ## @param etcd.auth.client.secureTransport Enable TLS for client
communication (boolean)
- ##
- secureTransport: false
- ## @param etcd.auth.client.existingSecret Existing secret containing TLS
certs
- ##
- existingSecret: ""
- ## @param etcd.auth.client.enableAuthentication Enable client
authentication (boolean)
- ##
- enableAuthentication: false
- ## @param etcd.auth.client.certFilename Client certificate filename
- ##
- certFilename: tls.crt
- ## @param etcd.auth.client.certKeyFilename Client certificate key
filename
- ##
- certKeyFilename: tls.key
- ## @param etcd.auth.client.caFilename CA certificate filename for TLS
- ##
- caFilename: ""
- ## Authentication token
- ## ref:
https://etcd.io/docs/latest/learning/design-auth-v3/#two-types-of-tokens-simple-and-jwt
- ##
- token:
- ## @param etcd.auth.token.enabled Enables token authentication
- ##
- enabled: true
- ## @param etcd.auth.token.type Authentication token type. Allowed
values: 'simple' or 'jwt'
- ## ref: https://etcd.io/docs/latest/op-guide/configuration/#--auth-token
- ##
- type: simple
- ## @section Liveness probe configuration for etcd
- ##
- livenessProbe:
- ## @param etcd.livenessProbe.initialDelaySeconds Initial delay for
liveness probe
- ##
- initialDelaySeconds: 10
- ## @section Readiness probe configuration for etcd
- ##
- readinessProbe:
- ## @param etcd.readinessProbe.initialDelaySeconds Initial delay for
readiness probe
- ##
- initialDelaySeconds: 10
- ## @param etcd.autoCompactionMode Auto-compaction mode (periodic, revision)
- ##
- autoCompactionMode: periodic
- ## @param etcd.autoCompactionRetention Auto-compaction retention period
- ##
- autoCompactionRetention: "1"
- ## @extra etcd.defrag Configuration for defragmentation
- ##
- defrag:
- ## @param etcd.defrag.enabled Enable defragmentation (boolean)
- ##
- enabled: true
- ## @extra etcd.defrag.cronjob Cron job configuration for defragmentation
- ##
- cronjob:
- ## @param etcd.defrag.cronjob.schedule Cron schedule for defragmentation
- ##
- schedule: "0 0 * * *"
diff --git a/doc/parameters.md b/doc/parameters.md
index b6a4b89..5150fba 100644
--- a/doc/parameters.md
+++ b/doc/parameters.md
@@ -28,13 +28,31 @@ The content of this document describes the parameters that
can be configured in
| `auth.credentialsFileKey` | Key name in the Secret that stores the
| `credentials.yaml` |
| `auth.users` | List of users to configure when not using
existingSecret | `[]` |
-### Etcd Client Configuration for Node Discovery
+### Etcd Client Configuration
| Name | Description
| Value |
|------------------------------------|-----------------------------------------|------------|
| `etcd-client.namespace` | Namespace in etcd for node registration
| `banyandb` |
| `etcd-client.nodeDiscoveryTimeout` | Timeout for node discovery
| `2m` |
| `etcd-client.fullSyncInterval` | Interval for full state synchronization
| `30m` |
+| `etcd-client.endpoints` | List of external etcd endpoints
| `[]` |
+
+### Etcd Client Authentication
+
+| Name | Description |
Value |
+|---------------------------------|--------------------------------------|---------|
+| `etcd-client.auth.username` | Username for etcd authentication |
`""` |
+| `etcd-client.auth.password` | Password for etcd authentication |
`""` |
+
+### Etcd Client TLS Configuration
+
+| Name | Description
| Value |
+|-----------------------------------|------------------------------------------|-----------|
+| `etcd-client.auth.tls.enabled` | Enable TLS for etcd client
| `false` |
+| `etcd-client.auth.tls.secretName` | K8s secret name containing TLS certs
| `""` |
+| `etcd-client.auth.tls.caFilename` | CA certificate filename
| `ca.crt` |
+| `etcd-client.auth.tls.certFilename` | Client certificate filename
| `tls.crt` |
+| `etcd-client.auth.tls.keyFilename` | Client key filename
| `tls.key` |
### Configuration for standalone deployment
@@ -90,10 +108,35 @@ The content of this document describes the parameters that
can be configured in
### Cluster mode configuration
-| Name | Description | Value |
-|-------------------------|-------------------------------|--------|
-| `cluster.enabled` | Enable cluster mode (boolean) | `true` |
-| `cluster.etcdEndpoints` | List of etcd endpoints | `[]` |
+| Name | Description | Value |
+|-------------------|-------------------------------|--------|
+| `cluster.enabled` | Enable cluster mode (boolean) | `true` |
+
+### Schema Storage Configuration
+
+| Name |
Description |
Value |
+|-------------------------------------------------------------------|------------------------------------------------------------------------------|---------------|
+| `cluster.schemaStorage.mode` | Schema
storage mode ("property" or "etcd") |
`property` |
+| `cluster.schemaStorage.property.serverRepairCron` | Cron
schedule for metadata property server repair trigger |
`@every 10m` |
+| `cluster.schemaStorage.property.clientSyncInterval` | Interval
for property schema client synchronization | `30s`
|
+| `cluster.schemaStorage.property.clientMaxRecvMsgSize` | Maximum
gRPC receive message size for property schema client | `""`
|
+| `cluster.schemaStorage.property.tls.secretName` | K8s
Secret for schema client TLS (CA cert), used by data + liaison nodes | `""`
|
+
+### Property Schema Server Configuration (data nodes only)
+
+| Name |
Description |
Value |
+|-------------------------------------------------------------------|------------------------------------------------------------------------------|---------------|
+| `cluster.schemaStorage.property.server.grpcHost` | Schema
server gRPC listen address | `""`
|
+| `cluster.schemaStorage.property.server.grpcPort` | Schema
server gRPC port | `17916`
|
+| `cluster.schemaStorage.property.server.flushTimeout` | Interval
for flushing in-memory data to disk | `5s`
|
+| `cluster.schemaStorage.property.server.expireDeleteTimeout` |
Soft-delete expiration timeout (7 days) |
`168h` |
+| `cluster.schemaStorage.property.server.maxRecvMsgSize` | Maximum
gRPC receive message size for schema server | `""`
|
+| `cluster.schemaStorage.property.server.repairTreeSlotCount` | Number
of repair tree slots | `""`
|
+| `cluster.schemaStorage.property.server.repairBuildTreeCron` | Cron
expression for repair tree build |
`@every 1h` |
+| `cluster.schemaStorage.property.server.repairQuickBuildTreeTime` | Duration
for quick tree build after startup | `10m`
|
+| `cluster.schemaStorage.property.server.maxFileSnapshotNum` | Maximum
number of file snapshots | `""`
|
+| `cluster.schemaStorage.property.server.minFileSnapshotAge` | Minimum
age before a snapshot can be removed | `1h`
|
+| `cluster.schemaStorage.property.server.tls.secretName` | K8s
Secret for schema server TLS (cert + key), used by data nodes only | `""`
|
### Node Discovery Configuration for Service Discovery
@@ -455,52 +498,3 @@ The content of this document describes the parameters that
can be configured in
| `serviceAccount.annotations` | Annotations for the service account | `{}` |
| `serviceAccount.name` | Name of the service account | `""` |
-### Etcd configuration for cluster state management
-
-| Name | Description | Value |
-| ----------------------- | -------------------------- | -------------------- |
-| `etcd.enabled` | Enable etcd (boolean) | `true` |
-| `etcd.replicaCount` | Number of etcd replicas | `1` |
-| `etcd.image.repository` | Docker repository for etcd | `bitnamilegacy/etcd` |
-
-### Authentication configuration for etcd
-
-
-### RBAC configuration for etcd
-
-| Name | Description
| Value |
-| ---------------------------------------- |
-------------------------------------- | ---------- |
-| `etcd.auth.rbac.create` | Create RBAC roles (boolean)
| `true` |
-| `etcd.auth.rbac.allowNoneAuthentication` | Allow unauthenticated access
(boolean) | `false` |
-| `etcd.auth.rbac.rootPassword` | Root user password
| `banyandb` |
-
-### Client TLS configuration
-
-| Name | Description
| Value |
-| --------------------------------------- |
------------------------------------------------------------ | --------- |
-| `etcd.auth.client.secureTransport` | Enable TLS for client
communication (boolean) | `false` |
-| `etcd.auth.client.existingSecret` | Existing secret containing TLS
certs | `""` |
-| `etcd.auth.client.enableAuthentication` | Enable client authentication
(boolean) | `false` |
-| `etcd.auth.client.certFilename` | Client certificate filename
| `tls.crt` |
-| `etcd.auth.client.certKeyFilename` | Client certificate key filename
| `tls.key` |
-| `etcd.auth.client.caFilename` | CA certificate filename for TLS
| `""` |
-| `etcd.auth.token.enabled` | Enables token authentication
| `true` |
-| `etcd.auth.token.type` | Authentication token type. Allowed
values: 'simple' or 'jwt' | `simple` |
-
-### Liveness probe configuration for etcd
-
-| Name | Description
| Value |
-| ---------------------------------------- | --------------------------------
| ----- |
-| `etcd.livenessProbe.initialDelaySeconds` | Initial delay for liveness probe
| `10` |
-
-### Readiness probe configuration for etcd
-
-| Name | Description
| Value |
-| ----------------------------------------- |
------------------------------------------ | ----------- |
-| `etcd.readinessProbe.initialDelaySeconds` | Initial delay for readiness
probe | `10` |
-| `etcd.autoCompactionMode` | Auto-compaction mode (periodic,
revision) | `periodic` |
-| `etcd.autoCompactionRetention` | Auto-compaction retention period
| `1` |
-| `etcd.defrag` | Configuration for
defragmentation | |
-| `etcd.defrag.enabled` | Enable defragmentation (boolean)
| `true` |
-| `etcd.defrag.cronjob` | Cron job configuration for
defragmentation | |
-| `etcd.defrag.cronjob.schedule` | Cron schedule for
defragmentation | `0 0 * * *` |
diff --git a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
b/test/e2e/e2e-banyandb-cluster-schema-etcd.yaml
similarity index 54%
copy from test/e2e/e2e-banyandb-fodc-proxy-service.yaml
copy to test/e2e/e2e-banyandb-cluster-schema-etcd.yaml
index 473c445..7293f33 100644
--- a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
+++ b/test/e2e/e2e-banyandb-cluster-schema-etcd.yaml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# E2E test for FODC proxy service functionality
+# E2E test for BanyanDB cluster with etcd schema storage mode
setup:
env: kind
@@ -40,31 +40,35 @@ setup:
--set
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800
\
--set meshConfig.enableEnvoyAccessLogService=true
kubectl label namespace default istio-injection=enabled
+ - name: Install helm
+ command: bash test/e2e/setup-e2e-shell/install.sh helm
+ - name: Install etcd
+ command: |
+ helm -n istio-system install etcd
oci://registry-1.docker.io/bitnamicharts/etcd --version 12.0.18 \
+ --set image.repository=bitnamilegacy/etcd \
+ --set replicaCount=1 \
+ --set auth.rbac.create=true \
+ --set auth.rbac.allowNoneAuthentication=false \
+ --set auth.rbac.rootPassword=banyandb \
+ --set auth.client.secureTransport=false \
+ --set auth.client.enableAuthentication=false \
+ --set auth.token.enabled=true \
+ --set auth.token.type=simple
wait:
- namespace: istio-system
resource: pod
for: condition=ready
- label-selector: app=istiod
- - name: Install helm
- command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
- command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
- - name: Install BanyanDB with FODC
- command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.fodc.yaml
+ label-selector: app.kubernetes.io/name=etcd
+ - name: Install BanyanDB
+ command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.cluster-schema-etcd.yaml
wait:
- namespace: istio-system
resource: pod
for: condition=ready
label-selector: app.kubernetes.io/name=banyandb
- - namespace: istio-system
- resource: deployments/banyandb-fodc-proxy
- for: condition=available
- name: Install SkyWalking
command: |
- helm -n istio-system install --timeout 20m skywalking
oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
+ helm -n istio-system install --timeout 10m skywalking
oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
--version "$SW_HELM_VERSION" \
--set fullnameOverride=skywalking \
--set
oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh \
@@ -111,11 +115,47 @@ verify:
count: 20
interval: 15s
cases:
- # Verify FODC proxy is collecting observability data - check services are
observable
+ # service list
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
service ls
expected: expected/service.yml
- # Verify FODC agent is working - check metrics are available for services
+ # service instance list
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
instance list --service-name=e2e::productpage
+ expected: expected/service-instance.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
instance list --service-name=e2e::reviews
+ expected: expected/service-instance.yml
+ # service endpoint
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
endpoint list --service-name=e2e::productpage
+ expected: expected/service-endpoint-productpage.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
endpoint list --service-name=e2e::reviews
+ expected: expected/service-endpoint-reviews.yml
+
+ # service metrics: e2e::productpage
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_sla --service-name=e2e::productpage
expected: expected/metrics-has-value.yml
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_cpm --service-name=e2e::productpage
expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_resp_time --service-name=e2e::productpage
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_apdex --service-name=e2e::productpage
+ expected: expected/metrics-has-value.yml
+ # service metrics: e2e::reviews
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_sla --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_cpm --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_resp_time --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_apdex --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+
+ # dependency service
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
dependency service --service-name=e2e::productpage
+ expected: expected/dependency-services-productpage.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
dependency service --service-name=e2e::reviews
+ expected: expected/dependency-services-reviews.yml
+
+ # service relation metrics
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_relation_client_cpm
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_relation_server_cpm
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
diff --git a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
b/test/e2e/e2e-banyandb-cluster-schema-property.yaml
similarity index 58%
copy from test/e2e/e2e-banyandb-fodc-proxy-service.yaml
copy to test/e2e/e2e-banyandb-cluster-schema-property.yaml
index 473c445..a3dd515 100644
--- a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
+++ b/test/e2e/e2e-banyandb-cluster-schema-property.yaml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# E2E test for FODC proxy service functionality
+# E2E test for BanyanDB cluster with property schema storage mode (no etcd)
setup:
env: kind
@@ -40,31 +40,18 @@ setup:
--set
meshConfig.defaultConfig.envoyAccessLogService.address=skywalking-oap.istio-system:11800
\
--set meshConfig.enableEnvoyAccessLogService=true
kubectl label namespace default istio-injection=enabled
- wait:
- - namespace: istio-system
- resource: pod
- for: condition=ready
- label-selector: app=istiod
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
- command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
- - name: Install BanyanDB with FODC
- command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.fodc.yaml
+ - name: Install BanyanDB
+ command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.cluster-schema-property.yaml
wait:
- namespace: istio-system
resource: pod
for: condition=ready
label-selector: app.kubernetes.io/name=banyandb
- - namespace: istio-system
- resource: deployments/banyandb-fodc-proxy
- for: condition=available
- name: Install SkyWalking
command: |
- helm -n istio-system install --timeout 20m skywalking
oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
+ helm -n istio-system install --timeout 10m skywalking
oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
--version "$SW_HELM_VERSION" \
--set fullnameOverride=skywalking \
--set
oap.env.SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS=k8s-mesh \
@@ -111,11 +98,47 @@ verify:
count: 20
interval: 15s
cases:
- # Verify FODC proxy is collecting observability data - check services are
observable
+ # service list
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
service ls
expected: expected/service.yml
- # Verify FODC agent is working - check metrics are available for services
+ # service instance list
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
instance list --service-name=e2e::productpage
+ expected: expected/service-instance.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
instance list --service-name=e2e::reviews
+ expected: expected/service-instance.yml
+ # service endpoint
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
endpoint list --service-name=e2e::productpage
+ expected: expected/service-endpoint-productpage.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
endpoint list --service-name=e2e::reviews
+ expected: expected/service-endpoint-reviews.yml
+
+ # service metrics: e2e::productpage
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_sla --service-name=e2e::productpage
expected: expected/metrics-has-value.yml
- query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_cpm --service-name=e2e::productpage
expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_resp_time --service-name=e2e::productpage
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_apdex --service-name=e2e::productpage
+ expected: expected/metrics-has-value.yml
+ # service metrics: e2e::reviews
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_sla --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_cpm --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_resp_time --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_apdex --service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+
+ # dependency service
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
dependency service --service-name=e2e::productpage
+ expected: expected/dependency-services-productpage.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
dependency service --service-name=e2e::reviews
+ expected: expected/dependency-services-reviews.yml
+
+ # service relation metrics
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_relation_client_cpm
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
+ - query: swctl --display yaml
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
metrics exec --expression=service_relation_server_cpm
--service-name=e2e::productpage --dest-service-name=e2e::reviews
+ expected: expected/metrics-has-value.yml
diff --git a/test/e2e/e2e-banyandb-cluster.yaml
b/test/e2e/e2e-banyandb-cluster.yaml
index 73c743a..253dab2 100644
--- a/test/e2e/e2e-banyandb-cluster.yaml
+++ b/test/e2e/e2e-banyandb-cluster.yaml
@@ -42,11 +42,23 @@ setup:
kubectl label namespace default istio-injection=enabled
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
+ - name: Install etcd
command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
+ helm -n istio-system install etcd
oci://registry-1.docker.io/bitnamicharts/etcd --version 12.0.18 \
+ --set image.repository=bitnamilegacy/etcd \
+ --set replicaCount=1 \
+ --set auth.rbac.create=true \
+ --set auth.rbac.allowNoneAuthentication=false \
+ --set auth.rbac.rootPassword=banyandb \
+ --set auth.client.secureTransport=false \
+ --set auth.client.enableAuthentication=false \
+ --set auth.token.enabled=true \
+ --set auth.token.type=simple
+ wait:
+ - namespace: istio-system
+ resource: pod
+ for: condition=ready
+ label-selector: app.kubernetes.io/name=etcd
- name: Install BanyanDB
command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.cluster.yaml
wait:
diff --git a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
b/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
index 473c445..c8e3018 100644
--- a/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
+++ b/test/e2e/e2e-banyandb-fodc-proxy-service.yaml
@@ -47,11 +47,23 @@ setup:
label-selector: app=istiod
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
+ - name: Install etcd
command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
+ helm -n istio-system install etcd
oci://registry-1.docker.io/bitnamicharts/etcd --version 12.0.18 \
+ --set image.repository=bitnamilegacy/etcd \
+ --set replicaCount=1 \
+ --set auth.rbac.create=true \
+ --set auth.rbac.allowNoneAuthentication=false \
+ --set auth.rbac.rootPassword=banyandb \
+ --set auth.client.secureTransport=false \
+ --set auth.client.enableAuthentication=false \
+ --set auth.token.enabled=true \
+ --set auth.token.type=simple
+ wait:
+ - namespace: istio-system
+ resource: pod
+ for: condition=ready
+ label-selector: app.kubernetes.io/name=etcd
- name: Install BanyanDB with FODC
command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.fodc.yaml
wait:
diff --git a/test/e2e/e2e-banyandb-lifecycle.yaml
b/test/e2e/e2e-banyandb-lifecycle.yaml
index ba39ce4..630a432 100644
--- a/test/e2e/e2e-banyandb-lifecycle.yaml
+++ b/test/e2e/e2e-banyandb-lifecycle.yaml
@@ -42,11 +42,23 @@ setup:
kubectl label namespace default istio-injection=enabled
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
+ - name: Install etcd
command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
+ helm -n istio-system install etcd
oci://registry-1.docker.io/bitnamicharts/etcd --version 12.0.18 \
+ --set image.repository=bitnamilegacy/etcd \
+ --set replicaCount=1 \
+ --set auth.rbac.create=true \
+ --set auth.rbac.allowNoneAuthentication=false \
+ --set auth.rbac.rootPassword=banyandb \
+ --set auth.client.secureTransport=false \
+ --set auth.client.enableAuthentication=false \
+ --set auth.token.enabled=true \
+ --set auth.token.type=simple
+ wait:
+ - namespace: istio-system
+ resource: pod
+ for: condition=ready
+ label-selector: app.kubernetes.io/name=etcd
- name: Install BanyanDB with lifecycle features
command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.lifecycle.yaml
wait:
diff --git a/test/e2e/e2e-banyandb-node-registry-dns.yaml
b/test/e2e/e2e-banyandb-node-registry-dns.yaml
index 205dfdd..257e933 100644
--- a/test/e2e/e2e-banyandb-node-registry-dns.yaml
+++ b/test/e2e/e2e-banyandb-node-registry-dns.yaml
@@ -44,12 +44,7 @@ setup:
command: bash test/e2e/setup-e2e-shell/install.sh kubectl
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
- command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
- - name: Install BanyanDB with lifecycle features
+ - name: Install BanyanDB with DNS node registry
command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.dns.registry.yaml --create-namespace
wait:
- namespace: istio-system
diff --git a/test/e2e/e2e-banyandb-standalone.yaml
b/test/e2e/e2e-banyandb-standalone.yaml
index 8788128..2af596e 100644
--- a/test/e2e/e2e-banyandb-standalone.yaml
+++ b/test/e2e/e2e-banyandb-standalone.yaml
@@ -42,11 +42,6 @@ setup:
kubectl label namespace default istio-injection=enabled
- name: Install helm
command: bash test/e2e/setup-e2e-shell/install.sh helm
- - name: Install dependency
- command: |
- helm repo add bitnami https://charts.bitnami.com/bitnami
- cd chart
- helm dependency update
- name: Install BanyanDB
command: helm -n istio-system install banyandb chart/ -f
test/e2e/values.standalone.yaml
wait:
diff --git a/test/e2e/expected/nodes-data.yaml
b/test/e2e/expected/nodes-data.yaml
index 7a436dc..3d3dd0b 100644
--- a/test/e2e/expected/nodes-data.yaml
+++ b/test/e2e/expected/nodes-data.yaml
@@ -47,6 +47,8 @@ routeTables:
labels:
type: hot
propertyRepairGossipGrpcAddress:
banyandb-data-hot-0.banyandb-data-hot-headless.istio-system:17932
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress:
banyandb-data-hot-0.banyandb-data-hot-headless.istio-system:17916
- metadata:
group: ""
name: banyandb-data-hot-1.banyandb-data-hot-headless.istio-system:17912
@@ -62,6 +64,8 @@ routeTables:
labels:
type: hot
propertyRepairGossipGrpcAddress:
banyandb-data-hot-1.banyandb-data-hot-headless.istio-system:17932
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress:
banyandb-data-hot-1.banyandb-data-hot-headless.istio-system:17916
{{- end}}
active: []
evictable: []
diff --git a/test/e2e/expected/nodes-liaison.yaml
b/test/e2e/expected/nodes-liaison.yaml
index 7d5de49..cd84c3b 100644
--- a/test/e2e/expected/nodes-liaison.yaml
+++ b/test/e2e/expected/nodes-liaison.yaml
@@ -39,13 +39,14 @@ routeTables:
createRevision: "0"
modRevision: "0"
roles:
- - ROLE_META
- ROLE_LIAISON
grpcAddress:
banyandb-liaison-0.banyandb-liaison-headless.istio-system:18912
httpAddress:
banyandb-liaison-0.banyandb-liaison-headless.istio-system:17913
createdAt: {{ notEmpty .createdAt }}
labels: {}
propertyRepairGossipGrpcAddress: ""
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress: ""
- metadata:
group: ""
name: banyandb-liaison-1.banyandb-liaison-headless.istio-system:18912
@@ -53,13 +54,14 @@ routeTables:
createRevision: "0"
modRevision: "0"
roles:
- - ROLE_META
- ROLE_LIAISON
grpcAddress:
banyandb-liaison-1.banyandb-liaison-headless.istio-system:18912
httpAddress:
banyandb-liaison-1.banyandb-liaison-headless.istio-system:17913
createdAt: {{ notEmpty .createdAt }}
labels: {}
propertyRepairGossipGrpcAddress: ""
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress: ""
{{- end}}
active:
{{- contains .routeTables.tire1.active}}
@@ -85,6 +87,8 @@ routeTables:
labels:
type: hot
propertyRepairGossipGrpcAddress:
banyandb-data-hot-1.banyandb-data-hot-headless.istio-system:17932
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress:
banyandb-data-hot-1.banyandb-data-hot-headless.istio-system:17916
- metadata:
group: ""
name: banyandb-data-hot-0.banyandb-data-hot-headless.istio-system:17912
@@ -100,6 +104,8 @@ routeTables:
labels:
type: hot
propertyRepairGossipGrpcAddress:
banyandb-data-hot-0.banyandb-data-hot-headless.istio-system:17932
+ propertySchemaGossipGrpcAddress: ""
+ propertySchemaGrpcAddress:
banyandb-data-hot-0.banyandb-data-hot-headless.istio-system:17916
{{- end}}
active:
{{- contains .routeTables.tire2.active}}
diff --git a/test/e2e/values.dns.registry.yaml
b/test/e2e/values.cluster-schema-etcd.yaml
similarity index 62%
copy from test/e2e/values.dns.registry.yaml
copy to test/e2e/values.cluster-schema-etcd.yaml
index 6cf581b..5b307d5 100644
--- a/test/e2e/values.dns.registry.yaml
+++ b/test/e2e/values.cluster-schema-etcd.yaml
@@ -13,18 +13,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Default values for banyandb.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
+# Values for BanyanDB cluster with etcd schema storage mode and DNS node
discovery.
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 8a880f51df7a9f843803b84ca8b6e9ff9d2acfca
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
nodeDiscovery:
mode: "dns"
liaison:
@@ -32,14 +31,18 @@ cluster:
data:
nodeTemplate:
replicas: 2
- env:
- - name: BYDB_PROPERTY_REPAIR_ENABLED
- value: "true"
roles:
hot: {}
fodc:
enabled: false
+etcd-client:
+ endpoints:
+ - "etcd-0.etcd-headless.istio-system:2379"
+ auth:
+ username: "root"
+ password: "banyandb"
+
storage:
data:
enabled: true
@@ -53,15 +56,6 @@ storage:
- ReadWriteOnce
storageClass: null
volumeMode: Filesystem
- - mountTargets: [ "backups" ]
- nodeRole: hot
- existingClaimName: null
- claimName: backups
- size: 5Gi
- accessModes:
- - ReadWriteOnce
- storageClass: null
- volumeMode: Filesystem
liaison:
enabled: true
persistentVolumeClaims:
@@ -84,38 +78,17 @@ storage:
volumeMode: Filesystem
serviceAccount:
- # Specifies whether a service account should be created
create: true
- # Annotations to add to the service account
annotations: {}
- # The name of the service account to use.
- # If not set and create is true, a name is generated using the fullname
template
name: ""
-etcd:
- enabled: true
- replicaCount: 1
- auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- # extraEnvVars:
- # - name: ETCDCTL_CACERT
- # value: /opt/bitnami/etcd/certs/client/ca.crt
- token:
- enabled: true
- type: simple
-
fullnameOverride: ""
nameOverride: "banyandb"
auth:
- enabled: false
+ enabled: true
+ existingSecret: ""
+ credentialsFileKey: "credentials.yaml"
+ users:
+ - username: admin
+ password: banyandb
diff --git a/test/e2e/values.dns.registry.yaml
b/test/e2e/values.cluster-schema-property.yaml
similarity index 61%
copy from test/e2e/values.dns.registry.yaml
copy to test/e2e/values.cluster-schema-property.yaml
index 6cf581b..6e4d404 100644
--- a/test/e2e/values.dns.registry.yaml
+++ b/test/e2e/values.cluster-schema-property.yaml
@@ -13,18 +13,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Default values for banyandb.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
+# Values for BanyanDB cluster with property schema storage mode (no etcd
needed).
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 8a880f51df7a9f843803b84ca8b6e9ff9d2acfca
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "property"
nodeDiscovery:
mode: "dns"
liaison:
@@ -32,9 +31,6 @@ cluster:
data:
nodeTemplate:
replicas: 2
- env:
- - name: BYDB_PROPERTY_REPAIR_ENABLED
- value: "true"
roles:
hot: {}
fodc:
@@ -53,15 +49,6 @@ storage:
- ReadWriteOnce
storageClass: null
volumeMode: Filesystem
- - mountTargets: [ "backups" ]
- nodeRole: hot
- existingClaimName: null
- claimName: backups
- size: 5Gi
- accessModes:
- - ReadWriteOnce
- storageClass: null
- volumeMode: Filesystem
liaison:
enabled: true
persistentVolumeClaims:
@@ -84,38 +71,9 @@ storage:
volumeMode: Filesystem
serviceAccount:
- # Specifies whether a service account should be created
create: true
- # Annotations to add to the service account
annotations: {}
- # The name of the service account to use.
- # If not set and create is true, a name is generated using the fullname
template
name: ""
-etcd:
- enabled: true
- replicaCount: 1
- auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- # extraEnvVars:
- # - name: ETCDCTL_CACERT
- # value: /opt/bitnami/etcd/certs/client/ca.crt
- token:
- enabled: true
- type: simple
-
fullnameOverride: ""
nameOverride: "banyandb"
-
-auth:
- enabled: false
diff --git a/test/e2e/values.cluster.yaml b/test/e2e/values.cluster.yaml
index b794229..8a5f143 100644
--- a/test/e2e/values.cluster.yaml
+++ b/test/e2e/values.cluster.yaml
@@ -19,12 +19,15 @@
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 46083529398b73504e9ca929ef367cd1776aef82
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
+ nodeDiscovery:
+ mode: "etcd"
liaison:
replicas: 2
podAnnotations:
@@ -458,27 +461,12 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname
template
name: ""
-etcd:
- enabled: true
- replicaCount: 1
+etcd-client:
+ endpoints:
+ - "etcd-0.etcd-headless.istio-system:2379"
auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- # extraEnvVars:
- # - name: ETCDCTL_CACERT
- # value: /opt/bitnami/etcd/certs/client/ca.crt
- token:
- enabled: true
- type: simple
+ username: "root"
+ password: "banyandb"
fullnameOverride: ""
nameOverride: "banyandb"
diff --git a/test/e2e/values.dns.registry.yaml
b/test/e2e/values.dns.registry.yaml
index 6cf581b..bd0d37e 100644
--- a/test/e2e/values.dns.registry.yaml
+++ b/test/e2e/values.dns.registry.yaml
@@ -19,12 +19,13 @@
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 8a880f51df7a9f843803b84ca8b6e9ff9d2acfca
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "property"
nodeDiscovery:
mode: "dns"
liaison:
@@ -92,28 +93,6 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname
template
name: ""
-etcd:
- enabled: true
- replicaCount: 1
- auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- # extraEnvVars:
- # - name: ETCDCTL_CACERT
- # value: /opt/bitnami/etcd/certs/client/ca.crt
- token:
- enabled: true
- type: simple
-
fullnameOverride: ""
nameOverride: "banyandb"
diff --git a/test/e2e/values.fodc.yaml b/test/e2e/values.fodc.yaml
index 0db0818..f8f4197 100644
--- a/test/e2e/values.fodc.yaml
+++ b/test/e2e/values.fodc.yaml
@@ -19,12 +19,15 @@
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 67cb3eaa71d1b2ba9a56dddc17050fd69da78593
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
+ nodeDiscovery:
+ mode: "etcd"
liaison:
replicas: 2
podAnnotations:
@@ -408,24 +411,12 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname
template
name: ""
-etcd:
- enabled: true
- replicaCount: 1
+etcd-client:
+ endpoints:
+ - "etcd-0.etcd-headless.istio-system:2379"
auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- token:
- enabled: true
- type: simple
+ username: "root"
+ password: "banyandb"
fullnameOverride: ""
nameOverride: "banyandb"
diff --git a/test/e2e/values.lifecycle.yaml b/test/e2e/values.lifecycle.yaml
index 7d811f3..3aa2452 100644
--- a/test/e2e/values.lifecycle.yaml
+++ b/test/e2e/values.lifecycle.yaml
@@ -19,12 +19,15 @@
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 46083529398b73504e9ca929ef367cd1776aef82
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
+ nodeDiscovery:
+ mode: "etcd"
liaison:
replicas: 2
podAnnotations:
@@ -412,7 +415,7 @@ storage:
liaison:
enabled: true
persistentVolumeClaims:
- - mountTargets: [ "measure", "stream" ]
+ - mountTargets: [ "measure", "stream", "trace" ]
claimName: liaison-data
size: 10Gi
accessModes:
@@ -436,34 +439,12 @@ serviceAccount:
annotations: {}
name: ""
-etcd:
- enabled: true
- replicaCount: 1
+etcd-client:
+ endpoints:
+ - "etcd-0.etcd-headless.istio-system:2379"
auth:
- rbac:
- create: true
- allowNoneAuthentication: false
- rootPassword: banyandb
- client:
- secureTransport: false
- existingSecret: ""
- enableAuthentication: false
- certFilename: tls.crt
- certKeyFilename: tls.key
- caFilename: ""
- token:
- enabled: true
- type: simple
- livenessProbe:
- initialDelaySeconds: 10
- readinessProbe:
- initialDelaySeconds: 10
- autoCompactionMode: periodic
- autoCompactionRetention: "1"
- defrag:
- enabled: true
- cronjob:
- schedule: "0 0 * * *"
+ username: "root"
+ password: "banyandb"
fullnameOverride: ""
nameOverride: "banyandb"
diff --git a/test/e2e/values.standalone.yaml b/test/e2e/values.standalone.yaml
index 0839a30..404c126 100644
--- a/test/e2e/values.standalone.yaml
+++ b/test/e2e/values.standalone.yaml
@@ -20,12 +20,9 @@
cluster:
enabled: false
-etcd:
- enabled: false
-
image:
repository: ghcr.io/apache/skywalking-banyandb
- tag: 46083529398b73504e9ca929ef367cd1776aef82
+ tag: a9d081b36dbd37ca1713732b05f6b065a3047a24
pullPolicy: IfNotPresent
standalone: