This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git


The following commit(s) were added to refs/heads/main by this push:
     new 06ac9062d Add Rover Istio test case (#1008)
06ac9062d is described below

commit 06ac9062d3abd063254352fd3c2dc1be539018fe
Author: Gao Hongtao <[email protected]>
AuthorDate: Fri Mar 13 15:00:24 2026 +0800

    Add Rover Istio test case (#1008)
    
    * Add Rover Istio BanyanDB test case to E2E workflow and update Kubernetes 
commit SHA in environment files
    
    * Update E2E workflow to support dynamic runner selection and add 
environment variables for Rover Istio BanyanDB tests
    
    * Enhance FODC E2E workflow by introducing a conditional skip feature based 
on input parameters, allowing for more efficient execution. Update environment 
configuration by removing the obsolete ISTIO_VERSION variable.
---
 .github/workflows/ci.yml                           |   3 +-
 .github/workflows/e2e.yml                          |  18 +++-
 .github/workflows/test-fodc-e2e.yml                |  12 +++
 .../cases/rover/process/istio/banyandb/README.md   |   6 ++
 .../istio/banyandb/banyandb-deployment.yaml        |  59 ++++++++++++
 .../rover/process/istio/banyandb/e2e-banyandb.yaml | 103 +++++++++++++++++++++
 .../process/istio/banyandb/expected/process.yml    |  86 +++++++++++++++++
 .../istio/banyandb/expected/service-instance.yml   |  22 +++++
 .../process/istio/banyandb/expected/service.yml    |  71 ++++++++++++++
 .../cases/rover/process/istio/banyandb/kind.yaml   |  20 ++++
 .../cases/rover/process/istio/banyandb/rover.yaml  |  90 ++++++++++++++++++
 .../process/istio/banyandb/values-banyandb.yaml    |  29 ++++++
 test/e2e-v2/script/env                             |   3 +-
 .../script/prepare/setup-e2e-shell/install-e2e.sh  |  50 ++++++++++
 .../script/prepare/setup-e2e-shell/install-helm.sh |  29 ++++++
 .../prepare/setup-e2e-shell/install-istioctl.sh    |  31 +++++++
 .../prepare/setup-e2e-shell/install-kubectl.sh     |  29 ++++++
 17 files changed, 658 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fbe7e865a..6c63110c4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -125,9 +125,10 @@ jobs:
     uses: ./.github/workflows/test-fodc.yml
   test-fodc-e2e:
     name: Test FODC E2E
-    if: ${{ github.event_name != 'pull_request' || 
needs.detect_fodc_e2e_changes.outputs.should_run == 'true' }}
     needs: [check, detect_fodc_e2e_changes]
     uses: ./.github/workflows/test-fodc-e2e.yml
+    with:
+      should_run: ${{ github.event_name != 'pull_request' || 
needs.detect_fodc_e2e_changes.outputs.should_run == 'true' }}
   test-pkg:
     name: Test Pkg
     needs: [check]
diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index 1cd095503..dffa3b3e1 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -49,7 +49,7 @@ jobs:
 
   StoragePlugins:
     name: Storage E2E
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.test.runs-on || 'ubuntu-latest' }}
     timeout-minutes: 90
     needs: [DockerImage]
     strategy:
@@ -72,6 +72,12 @@ jobs:
             config: test/e2e-v2/cases/cluster/e2e-etcd.yaml
           - name: BanyanDB Cluster Mode Property
             config: test/e2e-v2/cases/cluster/e2e-property.yaml
+          - name: Rover Istio BanyanDB
+            config: 
test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
+            env: |
+              ISTIO_VERSION=1.28.0
+              KUBERNETES_VERSION=28
+            runs-on: ubuntu-24.04
           # TODO: Enable Lifecycle test when it is ready
           # - name: Lifecycle
           #   config: test/e2e-v2/cases/lifecycle/e2e.yaml
@@ -82,6 +88,8 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-tags: true
+      - name: Load env
+        run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV"
       - name: Setup build environment
         uses: ./.github/actions/setup-build-env
         with:
@@ -96,6 +104,14 @@ jobs:
         run: |
           docker load --input /tmp/banyandb-testing-image.tar.gz
           docker image ls
+      - name: Login to ghcr
+        uses: docker/login-action@v3
+        with:
+          registry: ghcr.io
+          username: ${{ github.repository_owner }}
+          password: ${{ secrets.GITHUB_TOKEN }}
+      - name: Set env var
+        run: echo "${{ matrix.test.env }}" >> $GITHUB_ENV
       - name: Generate data for lifecycle
         if: ${{ matrix.test.name == 'Lifecycle' }}
         run: |
diff --git a/.github/workflows/test-fodc-e2e.yml 
b/.github/workflows/test-fodc-e2e.yml
index 99d04c8c6..97f95937a 100644
--- a/.github/workflows/test-fodc-e2e.yml
+++ b/.github/workflows/test-fodc-e2e.yml
@@ -19,6 +19,10 @@ name: FODC E2E (Kind)
 on:
   workflow_call:
     inputs:
+      should_run:
+        required: false
+        type: boolean
+        default: true
       enable_sys_admin_fallback:
         required: false
         type: boolean
@@ -32,7 +36,15 @@ on:
         default: false
 
 jobs:
+  skip:
+    if: ${{ !inputs.should_run }}
+    runs-on: ubuntu-latest
+    steps:
+      - name: Skip FODC E2E
+        run: echo "Skipping FODC E2E because this change does not affect 
FODC-related paths."
+
   fodc-kind:
+    if: ${{ inputs.should_run }}
     runs-on: ubuntu-latest
     timeout-minutes: 60
     continue-on-error: true
diff --git a/test/e2e-v2/cases/rover/process/istio/banyandb/README.md 
b/test/e2e-v2/cases/rover/process/istio/banyandb/README.md
new file mode 100644
index 000000000..3418f3e8b
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/README.md
@@ -0,0 +1,6 @@
+# Rover process Istio e2e (BanyanDB)
+
+This case is ported from [apache/skywalking 
test/e2e-v2/cases/rover/process/istio](https://github.com/apache/skywalking/tree/master/test/e2e-v2/cases/rover/process/istio).
 It runs the same flow (Kind, Istio, SkyWalking Helm, Bookinfo, SkyWalking 
Rover) but uses **BanyanDB** as OAP storage instead of Elasticsearch.
+
+- **CI-only**: The test provisions a Kind cluster, Istio, ECK is skipped, 
BanyanDB is deployed in-cluster, then SkyWalking and Rover are installed. It is 
not practical to run locally without sufficient resources and the same env 
(e.g. `TAG`, `SW_KUBERNETES_COMMIT_SHA`, `SW_ROVER_COMMIT`, `ISTIO_VERSION` 
from `test/e2e-v2/script/env`).
+- **Behavior**: Setup and verify steps are aligned with upstream; only storage 
and BanyanDB deployment steps differ. Verification (service list, instance 
list, process list via swctl) should match upstream expectations for 
compatibility.
diff --git 
a/test/e2e-v2/cases/rover/process/istio/banyandb/banyandb-deployment.yaml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/banyandb-deployment.yaml
new file mode 100644
index 000000000..0c366a8fe
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/banyandb-deployment.yaml
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: banyandb
+  namespace: istio-system
+  labels:
+    app: banyandb
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: banyandb
+  template:
+    metadata:
+      labels:
+        app: banyandb
+    spec:
+      containers:
+        - name: banyandb
+          image: apache/skywalking-banyandb:${TAG}-testing
+          imagePullPolicy: IfNotPresent
+          args:
+            - standalone
+          ports:
+            - name: grpc
+              containerPort: 17912
+            - name: http
+              containerPort: 17913
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: banyandb
+  namespace: istio-system
+spec:
+  selector:
+    app: banyandb
+  ports:
+    - name: grpc
+      port: 17912
+      targetPort: 17912
+    - name: http
+      port: 17913
+      targetPort: 17913
diff --git a/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
new file mode 100644
index 000000000..a6eb6f79b
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/e2e-banyandb.yaml
@@ -0,0 +1,103 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Rover process Istio e2e with BanyanDB storage.
+# Ported from apache/skywalking test/e2e-v2/cases/rover/process/istio.
+# Intended for CI; requires Kind, Istio, SkyWalking Helm, and Rover (not 
practical to run locally without sufficient resources).
+
+setup:
+  env: kind
+  file: kind.yaml
+  timeout: 25m
+  init-system-environment: ../../../../../script/env
+  kind:
+    import-images:
+      - apache/skywalking-banyandb:${TAG}-testing
+    expose-ports:
+      - namespace: istio-system
+        resource: service/skywalking-ui
+        port: 80
+  steps:
+    - name: set PATH
+      command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+    - name: install yq
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
+    - name: install swctl
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
+    - name: install kubectl
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh 
kubectl
+    - name: install istio
+      command: |
+        bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh istioctl
+        istioctl install -y --set profile=demo
+        kubectl label namespace default istio-injection=enabled
+    - name: Install helm
+      command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh helm
+    - name: Load BanyanDB image into kind
+      command: kind load docker-image 
apache/skywalking-banyandb:${TAG}-testing --name kind
+    - name: Deploy BanyanDB
+      command: envsubst < 
test/e2e-v2/cases/rover/process/istio/banyandb/banyandb-deployment.yaml | 
kubectl apply -f -
+    - name: Wait for BanyanDB
+      command: kubectl rollout status deployment/banyandb -n istio-system 
--timeout=120s
+    - name: Install SkyWalking
+      command: |
+        rm -rf skywalking-helm
+        helm pull oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
+          --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" --untar
+        helm -n istio-system install skywalking \
+          oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
+          --version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" \
+          --timeout 15m \
+          --set fullnameOverride=skywalking \
+          --set eckOperator.enabled=false \
+          --set elasticsearch.enabled=false \
+          --set oap.replicas=1 \
+          --set ui.image.repository=ghcr.io/apache/skywalking/ui \
+          --set ui.image.tag=${SW_OAP_COMMIT} \
+          --set oap.image.tag=${SW_OAP_COMMIT} \
+          --set oap.image.repository=ghcr.io/apache/skywalking/oap \
+          --set oap.storageType=banyandb \
+          --set oap.env.SW_HEALTH_CHECKER=default \
+          -f 
test/e2e-v2/cases/rover/process/istio/banyandb/values-banyandb.yaml
+    - name: Deploy demo services
+      command: |
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/platform/kube/bookinfo.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/bookinfo-gateway.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/destination-rule-all.yaml
+        kubectl apply -f 
https://raw.githubusercontent.com/istio/istio/$ISTIO_VERSION/samples/bookinfo/networking/virtual-service-all-v1.yaml
+    - name: Install SkyWalking Rover
+      command: envsubst < 
test/e2e-v2/cases/rover/process/istio/banyandb/rover.yaml | kubectl apply -f -
+  wait:
+    - namespace: istio-system
+      resource: deployments/skywalking-oap
+      for: condition=available
+    - namespace: default
+      resource: pod
+      for: condition=Ready
+
+verify:
+  retry:
+    count: 20
+    interval: 10s
+  cases:
+    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 service ls
+      expected: expected/service.yml
+    - query: swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=productpage.default
+      expected: expected/service-instance.yml
+    - query: |
+        swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 process list --service-name=productpage.default --instance-name=$( \
+          swctl --display yaml 
--base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql
 instance list --service-name=productpage.default | yq e '.[0].name' - \
+        )
+      expected: expected/process.yml
diff --git 
a/test/e2e-v2/cases/rover/process/istio/banyandb/expected/process.yml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/process.yml
new file mode 100644
index 000000000..40481e0a6
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/process.yml
@@ -0,0 +1,86 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{- contains . }}
+- id: {{ notEmpty .id }}
+  name: gunicorn
+  serviceid: {{ b64enc "productpage.default" }}.1
+  servicename: productpage.default
+  instanceid: {{ notEmpty .instanceid }}
+  instancename: {{ notEmpty .instancename }}
+  agentid: {{ notEmpty .agentid }}
+  detecttype: KUBERNETES
+  attributes:
+  {{- contains .attributes }}
+  - name: host_ip
+    value: {{ notEmpty .value }}
+  - name: container_ip
+    value: {{ notEmpty .value }}
+  - name: pid
+    value: {{ notEmpty .value }}
+  - name: command_line
+    value: {{ notEmpty .value }}
+  - name: support_ebpf_profiling
+    value: "false"
+  {{- end }}
+  labels:
+  - mesh-application
+- id: {{ notEmpty .id }}
+  name: envoy
+  serviceid: {{ b64enc "productpage.default" }}.1
+  servicename: productpage.default
+  instanceid: {{ notEmpty .instanceid }}
+  instancename: {{ notEmpty .instancename }}
+  agentid: {{ notEmpty .agentid }}
+  detecttype: KUBERNETES
+  attributes:
+  {{- contains .attributes }}
+  - name: host_ip
+    value: {{ notEmpty .value }}
+  - name: container_ip
+    value: {{ notEmpty .value }}
+  - name: pid
+    value: {{ notEmpty .value }}
+  - name: command_line
+    value: {{ notEmpty .value }}
+  - name: support_ebpf_profiling
+    value: true
+  {{- end }}
+  labels:
+  - mesh-envoy
+- id: {{ notEmpty .id }}
+  name: pilot-agent
+  serviceid: {{ b64enc "productpage.default" }}.1
+  servicename: productpage.default
+  instanceid: {{ notEmpty .instanceid }}
+  instancename: {{ notEmpty .instancename }}
+  agentid: {{ notEmpty .agentid }}
+  detecttype: KUBERNETES
+  attributes:
+  {{- contains .attributes }}
+  - name: host_ip
+    value: {{ notEmpty .value }}
+  - name: container_ip
+    value: {{ notEmpty .value }}
+  - name: pid
+    value: {{ notEmpty .value }}
+  - name: command_line
+    value: {{ notEmpty .value }}
+  - name: support_ebpf_profiling
+    value: "false"
+  {{- end }}
+  labels:
+  - mesh-envoy
+{{- end }}
diff --git 
a/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service-instance.yml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service-instance.yml
new file mode 100644
index 000000000..18d1d2c6e
--- /dev/null
+++ 
b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service-instance.yml
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{- contains . }}
+- id: {{ notEmpty .id }}
+  name: {{ notEmpty .name }}
+  attributes: []
+  language: UNKNOWN
+  instanceuuid: {{ notEmpty .instanceuuid }}
+{{- end }}
diff --git 
a/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service.yml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service.yml
new file mode 100644
index 000000000..4eb9a19d6
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/expected/service.yml
@@ -0,0 +1,71 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+{{- contains . }}
+- id: {{ b64enc "details.default" }}.1
+  name: details.default
+  group: ""
+  shortname: details.default
+  layers:
+  {{- contains .layers }}
+  - MESH_DP
+  - MESH
+  {{- end }}
+  normal: true
+- id: {{ b64enc "istio-ingressgateway.istio-system" }}.1
+  name: istio-ingressgateway.istio-system
+  group: ""
+  shortname: istio-ingressgateway.istio-system
+  layers:
+  - MESH_DP
+  normal: true
+- id: {{ b64enc "productpage.default" }}.1
+  name: productpage.default
+  group: ""
+  shortname: productpage.default
+  layers:
+  {{- contains .layers }}
+  - MESH_DP
+  - MESH
+  {{- end }}
+  normal: true
+- id: {{ b64enc "ratings.default" }}.1
+  name: ratings.default
+  group: ""
+  shortname: ratings.default
+  layers:
+  {{- contains .layers }}
+  - MESH_DP
+  - MESH
+  {{- end }}
+  normal: true
+- id: {{ b64enc "ratings.default" }}.1
+  name: ratings.default
+  group: ""
+  shortname: ratings.default
+  layers:
+  {{- contains .layers }}
+  - MESH_DP
+  - MESH
+  {{- end }}
+  normal: true
+- id: {{ b64enc "istio-egressgateway.istio-system" }}.1
+  name: istio-egressgateway.istio-system
+  group: ""
+  shortname: istio-egressgateway.istio-system
+  layers:
+  - MESH_DP
+  normal: true
+{{- end }}
diff --git a/test/e2e-v2/cases/rover/process/istio/banyandb/kind.yaml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/kind.yaml
new file mode 100644
index 000000000..36d0d971a
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/kind.yaml
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+kind: Cluster
+apiVersion: kind.x-k8s.io/v1alpha4
+nodes:
+  - role: control-plane
+    image: 
kindest/node:v1.25.11@sha256:227fa11ce74ea76a0474eeefb84cb75d8dad1b08638371ecf0e86259b35be0c8
diff --git a/test/e2e-v2/cases/rover/process/istio/banyandb/rover.yaml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/rover.yaml
new file mode 100644
index 000000000..7cf1fd108
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/rover.yaml
@@ -0,0 +1,90 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: skywalking-rover
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+  name: skywalking-rover
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: skywalking-rover
+subjects:
+  - kind: ServiceAccount
+    name: skywalking-rover
+    namespace: default
+---
+kind: ClusterRole
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: skywalking-rover
+rules:
+  - apiGroups: [""]
+    resources: ["pods", "nodes", "services"]
+    verbs: ["get", "watch", "list"]
+---
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  name: skywalking-rover
+spec:
+  selector:
+    matchLabels:
+      name: skywalking-rover
+  template:
+    metadata:
+      labels:
+        name: skywalking-rover
+    spec:
+      serviceAccountName: skywalking-rover
+      serviceAccount: skywalking-rover
+      containers:
+        - name: skywalking-rover
+          image: 
ghcr.io/apache/skywalking-rover/skywalking-rover:$SW_ROVER_COMMIT
+          imagePullPolicy: Always
+          securityContext:
+            capabilities:
+              add:
+                - SYS_PTRACE
+                - SYS_ADMIN
+            privileged: true
+          volumeMounts:
+            - name: host
+              mountPath: /host
+              readOnly: true
+          env:
+            - name: ROVER_PROCESS_DISCOVERY_KUBERNETES_ACTIVE
+              value: "true"
+            - name: ROVER_PROCESS_DISCOVERY_KUBERNETES_NODE_NAME
+              valueFrom:
+                fieldRef:
+                  fieldPath: spec.nodeName
+            - name: ROVER_BACKEND_ADDR
+              value: skywalking-oap.istio-system:11800
+            - name: 
ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_ACTIVE
+              value: "false"
+      hostPID: true
+      hostNetwork: true
+      dnsPolicy: ClusterFirstWithHostNet
+      volumes:
+        - name: host
+          hostPath:
+            path: /
+            type: Directory
diff --git 
a/test/e2e-v2/cases/rover/process/istio/banyandb/values-banyandb.yaml 
b/test/e2e-v2/cases/rover/process/istio/banyandb/values-banyandb.yaml
new file mode 100644
index 000000000..9aa27c329
--- /dev/null
+++ b/test/e2e-v2/cases/rover/process/istio/banyandb/values-banyandb.yaml
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# BanyanDB storage configuration for SkyWalking OAP in rover/process/istio e2e.
+# Disable Elasticsearch subchart so the chart does not try to create 
Elasticsearch CRs.
+elasticsearch:
+  enabled: false
+# Override banyandb.config so the wait-for-banyandb init container curls the 
correct
+# service (standalone deployment uses service name "banyandb", not 
"banyandb-http").
+banyandb:
+  config:
+    grpcAddress: "banyandb:17912"
+    httpAddress: "banyandb:17913"
+oap:
+  storageType: banyandb
+  env:
+    SW_STORAGE_BANYANDB_TARGETS: "banyandb:17912"
diff --git a/test/e2e-v2/script/env b/test/e2e-v2/script/env
index 5ef8e9ffb..ac6f7da59 100644
--- a/test/e2e-v2/script/env
+++ b/test/e2e-v2/script/env
@@ -21,7 +21,7 @@ SW_AGENT_GO_COMMIT=154de50628e82e590941585411299459e352317d
 SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58
 SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449
 SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016
-SW_KUBERNETES_COMMIT_SHA=6fe5e6f0d3b7686c6be0457733e825ee68cb9b35
+SW_KUBERNETES_COMMIT_SHA=1336c1b1f13942d19511f1c1ca9534f1d849ab45
 SW_ROVER_COMMIT=4c0cb8429a96f190ea30eac1807008d523c749c3
 SW_AGENT_PHP_COMMIT=3192c553002707d344bd6774cfab5bc61f67a1d3
 SW_PREDICTOR_COMMIT=54a0197654a3781a6f73ce35146c712af297c994
@@ -30,3 +30,4 @@ SW_OAP_COMMIT=4325e74919d0bf8496e9d861e3bbde99cffff597
 SW_AGENT_E2E_SERVICE_PROVIDER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef
 SW_CTL_COMMIT=3b675df73824bbb80e6aabf6a95d110feb37b6b1
 SW_TRACE_MOCKER_COMMIT=a2a67ca63084cddf82303155c185e3c24cf07eef
+SW_INFRA_E2E_COMMIT=8c21e43e241a32a54bdf8eeceb9099eb27e5e9b4
diff --git a/test/e2e-v2/script/prepare/setup-e2e-shell/install-e2e.sh 
b/test/e2e-v2/script/prepare/setup-e2e-shell/install-e2e.sh
new file mode 100644
index 000000000..e0cd5a4fb
--- /dev/null
+++ b/test/e2e-v2/script/prepare/setup-e2e-shell/install-e2e.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#    http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+set -ex
+
+BASE_DIR=$1
+BIN_DIR=$2
+
+install_e2e() {
+  mkdir -p "$BASE_DIR/e2e"
+  mkdir -p "$BIN_DIR"
+
+  if ! command -v go &> /dev/null; then
+    echo "go is required to install e2e"
+    exit 1
+  fi
+
+  E2E_REVISION=${SW_INFRA_E2E_COMMIT:-8c21e43e241a32a54bdf8eeceb9099eb27e5e9b4}
+
+  GO111MODULE=on go install 
"github.com/apache/skywalking-infra-e2e/cmd/e2e@${E2E_REVISION}"
+
+  GOPATH_BIN="$(go env GOPATH)/bin"
+  if [ ! -x "${GOPATH_BIN}/e2e" ]; then
+    echo "failed to find e2e binary in ${GOPATH_BIN}"
+    exit 1
+  fi
+
+  cp "${GOPATH_BIN}/e2e" "${BIN_DIR}/"
+}
+
+install_e2e
+
diff --git a/test/e2e-v2/script/prepare/setup-e2e-shell/install-helm.sh 
b/test/e2e-v2/script/prepare/setup-e2e-shell/install-helm.sh
new file mode 100644
index 000000000..109d3372e
--- /dev/null
+++ b/test/e2e-v2/script/prepare/setup-e2e-shell/install-helm.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+BASE_DIR=$1
+BIN_DIR=$2
+HELMVERSION=${HELMVERSION:-v3.13.0}
+
+if [ ! -x "$BIN_DIR/helm" ]; then
+  mkdir -p "$BASE_DIR/helm" && cd "$BASE_DIR/helm"
+  curl -sSL "https://get.helm.sh/helm-${HELMVERSION}-linux-amd64.tar.gz"; | tar 
xz -C "$BIN_DIR" --strip-components=1 linux-amd64/helm
+fi
diff --git a/test/e2e-v2/script/prepare/setup-e2e-shell/install-istioctl.sh 
b/test/e2e-v2/script/prepare/setup-e2e-shell/install-istioctl.sh
new file mode 100644
index 000000000..dc2b9c756
--- /dev/null
+++ b/test/e2e-v2/script/prepare/setup-e2e-shell/install-istioctl.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+BASE_DIR=$1
+BIN_DIR=$2
+ISTIO_VERSION=${ISTIO_VERSION:-1.20.0}
+
+if [ ! -x "$BIN_DIR/istioctl" ]; then
+  mkdir -p "$BASE_DIR/istioctl" && cd "$BASE_DIR/istioctl"
+  curl -sL 
"https://github.com/istio/istio/releases/download/${ISTIO_VERSION}/istio-${ISTIO_VERSION}-linux-amd64.tar.gz";
 | tar xz
+  cp "istio-${ISTIO_VERSION}/bin/istioctl" "$BIN_DIR/istioctl"
+  chmod +x "$BIN_DIR/istioctl"
+fi
diff --git a/test/e2e-v2/script/prepare/setup-e2e-shell/install-kubectl.sh 
b/test/e2e-v2/script/prepare/setup-e2e-shell/install-kubectl.sh
new file mode 100644
index 000000000..6076adc8b
--- /dev/null
+++ b/test/e2e-v2/script/prepare/setup-e2e-shell/install-kubectl.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+BASE_DIR=$1
+BIN_DIR=$2
+K8SVERSION=${K8SVERSION:-v1.28.0}
+
+if [ ! -x "$BIN_DIR/kubectl" ]; then
+  curl -sSL 
"https://dl.k8s.io/release/v${K8SVERSION#v}/bin/linux/amd64/kubectl"; -o 
"$BIN_DIR/kubectl"
+  chmod +x "$BIN_DIR/kubectl"
+fi


Reply via email to