Skip to content

Add BanyanDB cluster mode e2e tests for Istio (ALS + metrics)#13768

Merged
wu-sheng merged 9 commits intomasterfrom
feature/istio-banyandb-e2e
Mar 30, 2026
Merged

Add BanyanDB cluster mode e2e tests for Istio (ALS + metrics)#13768
wu-sheng merged 9 commits intomasterfrom
feature/istio-banyandb-e2e

Conversation

@wu-sheng
Copy link
Copy Markdown
Member

@wu-sheng wu-sheng commented Mar 29, 2026

Add BanyanDB cluster mode as storage for Istio e2e tests

  • Tests(including UT, IT, E2E) are added to verify the new feature.

Adds BanyanDB cluster mode variants for Istio ALS and Envoy Metrics Service e2e tests.

BanyanDB cluster configuration:

  • 2 liaison nodes + 2 data nodes (hot only)
  • DNS service discovery (no etcd)
  • Native metadata storage (property mode)
  • Access log flags commented out (available for debugging, not enabled by default)

New files:

  • test/e2e-v2/cases/istio/als/banyandb/e2e.yaml — ALS with BanyanDB cluster
  • test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml — Envoy metrics service with BanyanDB cluster
  • test/e2e-v2/cases/istio/als/als-cases.yaml — shared verify cases (extracted from als/e2e.yaml)
  • test/e2e-v2/cases/istio/metrics/metrics-cases.yaml — shared verify cases (extracted from metrics/e2e.yaml)

Workflow improvements:

  • e2e-test-istio job: added storage matrix dimension (ES/BanyanDB) for ALS tests
  • e2e-test job: added Istio Metrics Service BanyanDB 1.29.0 to matrix
  • Default docker images switched from JDK 11 to JDK 25 for all e2e tests
    (JDK 11/17 compatibility covered by e2e-test-java-versions only)
  • Clean job names: removed e2e YAML paths from display names
    • e2e-test: uses ${{ matrix.test.name }} directly (e.g., Cluster ZK ES, Agent PHP)
    • e2e-test-istio: Istio ALS (k8s-mesh, ES, 1.29.0, 28)
    • e2e-test-istio-ambient: Istio Ambient ALS (k8s-mesh, 1.29.0, 28)
    • e2e-test-java-versions: Java 11, Java 17, Java 25
    • e2e-test-banyandb-stages: BanyanDB Stages
  • Access log flags commented out in all BanyanDB configs (Compose + Kind)
    with instructions for enabling during debugging

Data collection on failure:

Collects from all BanyanDB pods via label-selector: app.kubernetes.io/name=banyandb:

Pod Collected
skywalking-banyandb-liaison-{0,1} /tmp/accesslog/ (when access logs enabled)
skywalking-banyandb-data-hot-{0,1} /tmp/{trace,stream,measure,property,schema-property}/

CI results (first run):

  • All 18 new BanyanDB ALS tests passed (k8s-mesh x 9 + mx-mesh x 9) ✅

  • BanyanDB Metrics Service 1.29.0 passed ✅

  • All existing BanyanDB tests passed ✅

  • If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #.

  • Update the CHANGES log.

BanyanDB cluster: liaison x2, data x2, DNS discovery, native metadata.
Access logs enabled on liaison nodes only.

- istio/als/banyandb/e2e.yaml — ALS with BanyanDB cluster
- istio/metrics/banyandb/e2e.yaml — Envoy metrics service with BanyanDB cluster
- Extract shared verify cases into als-cases.yaml and metrics-cases.yaml
- Add storage matrix (ES/BanyanDB) to e2e-test-istio job
- Add BanyanDB metrics variant to e2e-test job matrix

Verified locally: helm install creates correct cluster topology
(2 liaison + 2 data-hot StatefulSets, DNS discovery, access log env
vars on liaison only).
@wu-sheng wu-sheng added test Test requirements about performance, feature or before release. enhancement Enhancement on performance or codes labels Mar 29, 2026
@wu-sheng wu-sheng added this to the 10.4.0 milestone Mar 29, 2026
Access log activation commented out in all BanyanDB configs:
- Docker Compose: base-compose, storage, tls, data-generate
- Kind standalone: all 4 eBPF profiling tests
- Kind cluster: both istio als/metrics BanyanDB tests

Collect config (/tmp/accesslog/) kept in all e2e YAMLs so data
is captured when access logs are manually enabled for debugging.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds BanyanDB cluster mode variants to the Istio e2e suite (ALS + Envoy Metrics Service) and refactors shared verification cases to be reused across ES/BanyanDB runs, while also reducing BanyanDB access-log noise by default in various e2e configs.

Changes:

  • Added new Istio e2e scenarios that install SkyWalking with BanyanDB cluster topology and collect BanyanDB pod data on failures.
  • Extracted shared verify.cases for Istio ALS and metrics tests into reusable *-cases.yaml includes.
  • Updated CI workflow matrices/names to run Istio ALS tests against both ES and BanyanDB, and added a BanyanDB metrics-service entry.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
test/e2e-v2/script/docker-compose/base-compose.yml Disables BanyanDB access logs by default in base compose (debug-only comments).
test/e2e-v2/cases/storage/banyandb/tls/docker-compose.yml Removes access-log flags from TLS compose command.
test/e2e-v2/cases/storage/banyandb/docker-compose.yml Removes access-log flags from BanyanDB compose command (auth config).
test/e2e-v2/cases/storage/banyandb/data-generate/docker-compose.yml Removes access-log flags from data-generate compose command.
test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml Comments out access-log Helm flags (but currently breaks the continued shell command).
test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml Comments out access-log Helm flags (but currently breaks the continued shell command).
test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml Comments out access-log Helm flags (but currently breaks the continued shell command).
test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml Comments out access-log Helm flags (but currently breaks the continued shell command).
test/e2e-v2/cases/istio/metrics/metrics-cases.yaml New shared verify cases for Istio metrics tests (ES/BanyanDB).
test/e2e-v2/cases/istio/metrics/e2e.yaml Refactors verify section to include shared metrics cases.
test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml New Istio metrics-service e2e using BanyanDB cluster mode + failure collection (but Helm command currently broken by inline comments).
test/e2e-v2/cases/istio/als/e2e.yaml Refactors verify section to include shared ALS cases.
test/e2e-v2/cases/istio/als/banyandb/e2e.yaml New Istio ALS e2e using BanyanDB cluster mode + failure collection (but Helm command currently broken by inline comments).
test/e2e-v2/cases/istio/als/als-cases.yaml New shared verify cases for Istio ALS tests (ES/BanyanDB).
.github/workflows/skywalking.yaml Expands Istio e2e workflow coverage with ES/BanyanDB storage matrix and adds a BanyanDB metrics-service run.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/e2e-v2/cases/istio/metrics/metrics-cases.yaml Outdated
Comment thread test/e2e-v2/cases/profiling/ebpf/oncpu/banyandb/e2e.yaml Outdated
Comment thread test/e2e-v2/cases/profiling/ebpf/network/banyandb/e2e.yaml Outdated
Comment thread test/e2e-v2/cases/profiling/ebpf/continuous/banyandb/e2e.yaml Outdated
Comment thread test/e2e-v2/cases/profiling/ebpf/access_log/banyandb/e2e.yaml Outdated
Comment thread test/e2e-v2/cases/istio/als/banyandb/e2e.yaml Outdated
Comment thread test/e2e-v2/cases/istio/metrics/banyandb/e2e.yaml Outdated
… comment

Access log flags placed as YAML comments before the command: | block
to avoid breaking shell line continuations. Also fix wrong service
name in metrics-cases.yaml comment (productpage → istio-ingressgateway).
- e2e-test: name: ${{ matrix.test.name }} (was E2E test with all matrix fields)
- e2e-test-java-versions: Java ${{ matrix.java-version }}
- e2e-test-banyandb-stages: ${{ matrix.test.name }}
- e2e-test-istio: Istio ALS (already done)
- e2e-test-istio-ambient: Istio Ambient ALS (already done)

Job names now show only the meaningful test identifier,
not the e2e YAML path or env vars.
@wu-sheng wu-sheng merged commit c87e4df into master Mar 30, 2026
206 checks passed
@wu-sheng wu-sheng deleted the feature/istio-banyandb-e2e branch March 30, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Enhancement on performance or codes test Test requirements about performance, feature or before release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants