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:14 UTC
(skywalking-banyandb-helm) 01/01: Support difference schema storage and remove etcd dependency
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: