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 <[email protected]> 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:
