You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by li...@apache.org on 2026/02/02 07:40:13 UTC
(skywalking-banyandb-helm) branch schema-storage created (now 87ceafc)
This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a change to branch schema-storage
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-helm.git
at 87ceafc Support difference schema storage and remove etcd dependency
This branch includes the following new commits:
new 87ceafc Support difference schema storage and remove etcd dependency
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(skywalking-banyandb-helm) 01/01: Support difference schema storage and remove etcd dependency
Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
liuhan pushed a commit to branch schema-storage
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-helm.git
commit 87ceafcdd511a5c30289a68528743c8a16862de3
Author: mrproliu <74...@qq.com>
AuthorDate: Mon Feb 2 15:40:01 2026 +0800
Support difference schema storage and remove etcd dependency
---
.github/workflows/e2e.ci.yaml | 4 +
chart/Chart.lock | 6 -
chart/Chart.yaml | 5 -
chart/templates/_helpers.tpl | 75 +++++++++--
chart/templates/cluster_data_statefulset.yaml | 49 +------
chart/templates/cluster_liaison_statefulset.yaml | 24 +---
chart/templates/cluster_ui_deployment.yaml | 24 +---
chart/values-lifecycle.yaml | 145 ++++++++-------------
chart/values.yaml | 145 ++++++++-------------
doc/parameters.md | 84 +++++-------
....yaml => e2e-banyandb-cluster-schema-etcd.yaml} | 72 +++++++---
...l => e2e-banyandb-cluster-schema-property.yaml} | 59 ++++++---
test/e2e/e2e-banyandb-cluster.yaml | 18 ++-
test/e2e/e2e-banyandb-fodc-proxy-service.yaml | 18 ++-
test/e2e/e2e-banyandb-lifecycle.yaml | 18 ++-
test/e2e/e2e-banyandb-node-registry-dns.yaml | 7 +-
test/e2e/e2e-banyandb-standalone.yaml | 5 -
...gistry.yaml => values.cluster-schema-etcd.yaml} | 63 +++------
...ry.yaml => values.cluster-schema-property.yaml} | 56 ++------
test/e2e/values.cluster.yaml | 30 ++---
test/e2e/values.dns.registry.yaml | 32 +----
test/e2e/values.fodc.yaml | 31 ++---
test/e2e/values.lifecycle.yaml | 41 ++----
test/e2e/values.standalone.yaml | 7 +-
24 files changed, 425 insertions(+), 593 deletions(-)
diff --git a/.github/workflows/e2e.ci.yaml b/.github/workflows/e2e.ci.yaml
index 208b2c7..0f30248 100644
--- a/.github/workflows/e2e.ci.yaml
+++ b/.github/workflows/e2e.ci.yaml
@@ -45,6 +45,10 @@ 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
diff --git a/chart/Chart.lock b/chart/Chart.lock
deleted file mode 100644
index c3b6700..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-01-27T03:26:15.720216575Z"
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 30d643c..3cda7ce 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..88c64fc 100644
--- a/chart/templates/_helpers.tpl
+++ b/chart/templates/_helpers.tpl
@@ -88,16 +88,73 @@ 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 := (.Values.cluster.schemaStorage).mode | default "property" }}
+{{- $nodeDiscoveryMode := ((.Values.cluster.nodeDiscovery).mode) | default "dns" }}
+{{- if or (eq $schemaMode "etcd") (eq $nodeDiscoveryMode "etcd") }}
+{{- $etcdClient := index .Values "etcd-client" | default dict }}
+{{- $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 := (.Values.cluster.schemaStorage).mode | default "property" }}
+- name: BYDB_METADATA_REGISTRY_MODE
+ value: {{ $schemaMode | quote }}
+{{- end }}
+
+{{/*
+SchemaStoragePropertyEnv - injects property server env vars (data node only)
+*/}}
+{{- define "banyandb.schemaStoragePropertyEnv" -}}
+{{- $schemaMode := (.Values.cluster.schemaStorage).mode | default "property" }}
+{{- if eq $schemaMode "property" }}
+- name: BYDB_METADATA_PROPERTY_SERVER_ENABLED
+ value: "true"
+{{- $property := ((.Values.cluster.schemaStorage).property) | default dict }}
+{{- if $property.serverRepairCron }}
+- name: BYDB_METADATA_PROPERTY_SERVER_REPAIR_TRIGGER_CRON
+ value: {{ $property.serverRepairCron | quote }}
+{{- end }}
+{{- if $property.clientSyncInterval }}
+- name: BYDB_PROPERTY_SCHEMA_SYNC_INTERVAL
+ value: {{ $property.clientSyncInterval | quote }}
+{{- end }}
+{{- end }}
{{- end }}
{{- define "banyandb.hasDataNodeListValue" -}}
diff --git a/chart/templates/cluster_data_statefulset.yaml b/chart/templates/cluster_data_statefulset.yaml
index 24283bc..ee1a4ba 100644
--- a/chart/templates/cluster_data_statefulset.yaml
+++ b/chart/templates/cluster_data_statefulset.yaml
@@ -174,28 +174,9 @@ 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.schemaStoragePropertyEnv" $ | 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 }}
@@ -412,28 +393,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"
diff --git a/chart/templates/cluster_liaison_statefulset.yaml b/chart/templates/cluster_liaison_statefulset.yaml
index f0f0333..e794cc8 100644
--- a/chart/templates/cluster_liaison_statefulset.yaml
+++ b/chart/templates/cluster_liaison_statefulset.yaml
@@ -147,28 +147,8 @@ 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.etcdEnv" . | nindent 12 }}
{{- include "banyandb.nodeDiscoveryEnv" (dict "root" .) | nindent 12 }}
{{- if include "banyandb.hasDataNodeListValue" . }}
- name: BYDB_DATA_NODE_LIST
diff --git a/chart/templates/cluster_ui_deployment.yaml b/chart/templates/cluster_ui_deployment.yaml
index 17c32df..184f6e5 100644
--- a/chart/templates/cluster_ui_deployment.yaml
+++ b/chart/templates/cluster_ui_deployment.yaml
@@ -62,28 +62,8 @@ 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 }}
- - name: BYDB_ETCD_TLS_CERT_FILE
- value: "/etc/tls/{{ .Values.cluster.ui.standalone.tls.etcdSecretName }}/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 }}
- {{- end }}
+ {{- include "banyandb.schemaStorageEnv" . | nindent 12 }}
+ {{- include "banyandb.etcdEnv" . | nindent 12 }}
args:
- liaison
ports:
diff --git a/chart/values-lifecycle.yaml b/chart/values-lifecycle.yaml
index 23d839b..130a943 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,25 @@ 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: "* 2 * * *"
+ ##
+ serverRepairCron: "* 2 * * *"
+ ## @param cluster.schemaStorage.property.clientSyncInterval Interval for property schema synchronization
+ ## Default: "20s"
+ ##
+ clientSyncInterval: "20s"
## @section Node Discovery Configuration for Service Discovery
##
@@ -1154,93 +1203,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 9fb5aa8..27aaa3f 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,25 @@ 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: "20s"
+ ##
+ clientSyncInterval: "20s"
## @section Node Discovery Configuration for Service Discovery
##
@@ -1178,93 +1227,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 507b483..e8bcba8 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,17 @@ 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 | `20s` |
### Node Discovery Configuration for Service Discovery
@@ -450,52 +475,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 56%
copy from test/e2e/e2e-banyandb-fodc-proxy-service.yaml
copy to test/e2e/e2e-banyandb-cluster-schema-etcd.yaml
index 4120ca0..52e06c1 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,28 +40,32 @@ 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
+ - name: Install etcd
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
+ helm -n istio-system install etcd bitnami/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=banyandb
+ 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: deployments/banyandb-fodc-proxy
- for: condition=available
+ resource: pod
+ for: condition=ready
+ label-selector: app.kubernetes.io/name=banyandb
- name: Install SkyWalking
command: |
helm -n istio-system install --timeout 10m skywalking oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
@@ -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 4120ca0..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,28 +40,15 @@ 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 10m skywalking oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
@@ -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..840929c 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 bitnami/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 4120ca0..6e70d33 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 bitnami/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..c19b45a 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 bitnami/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/values.dns.registry.yaml b/test/e2e/values.cluster-schema-etcd.yaml
similarity index 61%
copy from test/e2e/values.dns.registry.yaml
copy to test/e2e/values.cluster-schema-etcd.yaml
index 6cf581b..fb4eca2 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
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
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..e247128 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
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
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,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.cluster.yaml b/test/e2e/values.cluster.yaml
index b794229..a1c2f6d 100644
--- a/test/e2e/values.cluster.yaml
+++ b/test/e2e/values.cluster.yaml
@@ -24,7 +24,10 @@ image:
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..2a2a207 100644
--- a/test/e2e/values.dns.registry.yaml
+++ b/test/e2e/values.dns.registry.yaml
@@ -18,13 +18,17 @@
# Declare variables to be passed into your templates.
image:
- repository: ghcr.io/apache/skywalking-banyandb
- tag: 8a880f51df7a9f843803b84ca8b6e9ff9d2acfca
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "property"
+ property:
+ cron: "* 2 * * *"
+ syncInterval: "20s"
nodeDiscovery:
mode: "dns"
liaison:
@@ -92,28 +96,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 a67efd8..8d32253 100644
--- a/test/e2e/values.fodc.yaml
+++ b/test/e2e/values.fodc.yaml
@@ -18,13 +18,16 @@
# Declare variables to be passed into your templates.
image:
- repository: ghcr.io/apache/skywalking-banyandb
- tag: 67cb3eaa71d1b2ba9a56dddc17050fd69da78593
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
+ nodeDiscovery:
+ mode: "etcd"
liaison:
replicas: 2
podAnnotations:
@@ -407,24 +410,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..d7c9ee9 100644
--- a/test/e2e/values.lifecycle.yaml
+++ b/test/e2e/values.lifecycle.yaml
@@ -18,13 +18,16 @@
# Declare variables to be passed into your templates.
image:
- repository: ghcr.io/apache/skywalking-banyandb
- tag: 46083529398b73504e9ca929ef367cd1776aef82
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
pullPolicy: IfNotPresent
cluster:
enabled: true
- etcdEndpoints: []
+ schemaStorage:
+ mode: "etcd"
+ nodeDiscovery:
+ mode: "etcd"
liaison:
replicas: 2
podAnnotations:
@@ -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..38c84df 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
+ repository: mrproliu/skywalking-banyandb
+ tag: property-schema1
pullPolicy: IfNotPresent
standalone: