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