From e6b2f59065b3651e1946eceabdd688ced314ef93 Mon Sep 17 00:00:00 2001 From: Wu Sheng Date: Sat, 21 Feb 2026 08:25:16 +0800 Subject: [PATCH 1/4] Upgrade infra e2e and disable containerd image store in CI Upgrade skywalking-infra-e2e to the branch that migrates deprecated APIs. Disable containerd image store on GitHub Actions runners to fix E2E test failures caused by compatibility issues with older Docker images. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/skywalking.yaml | 75 ++++++++++++++++++++++++++++--- 1 file changed, 70 insertions(+), 5 deletions(-) diff --git a/.github/workflows/skywalking.yaml b/.github/workflows/skywalking.yaml index 695b18f50b8c..4e87bddf4f5e 100644 --- a/.github/workflows/skywalking.yaml +++ b/.github/workflows/skywalking.yaml @@ -204,6 +204,19 @@ jobs: with: submodules: true persist-credentials: false + - name: Disable containerd image store + shell: bash + run: | + DAEMON_JSON="/etc/docker/daemon.json" + if [ -f "$DAEMON_JSON" ]; then + sudo jq '. + {"features": {"containerd-snapshotter": false}}' "$DAEMON_JSON" \ + | sudo tee "${DAEMON_JSON}.tmp" > /dev/null + sudo mv "${DAEMON_JSON}.tmp" "$DAEMON_JSON" + else + echo '{"features": {"containerd-snapshotter": false}}' \ + | sudo tee "$DAEMON_JSON" > /dev/null + fi + sudo systemctl restart docker - uses: actions/download-artifact@v4 name: Download distribution tar with: @@ -739,6 +752,19 @@ jobs: with: submodules: true persist-credentials: false + - name: Disable containerd image store + shell: bash + run: | + DAEMON_JSON="/etc/docker/daemon.json" + if [ -f "$DAEMON_JSON" ]; then + sudo jq '. + {"features": {"containerd-snapshotter": false}}' "$DAEMON_JSON" \ + | sudo tee "${DAEMON_JSON}.tmp" > /dev/null + sudo mv "${DAEMON_JSON}.tmp" "$DAEMON_JSON" + else + echo '{"features": {"containerd-snapshotter": false}}' \ + | sudo tee "$DAEMON_JSON" > /dev/null + fi + sudo systemctl restart docker - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -779,7 +805,7 @@ jobs: if: matrix.test.docker != null run: docker build -t ${{ matrix.test.docker.name }} -f ${{ matrix.test.docker.base }}/${{ matrix.test.docker.file }} ${{ matrix.test.docker.base }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde + uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis with: e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }} - if: ${{ failure() }} @@ -823,6 +849,19 @@ jobs: with: submodules: true persist-credentials: false + - name: Disable containerd image store + shell: bash + run: | + DAEMON_JSON="/etc/docker/daemon.json" + if [ -f "$DAEMON_JSON" ]; then + sudo jq '. + {"features": {"containerd-snapshotter": false}}' "$DAEMON_JSON" \ + | sudo tee "${DAEMON_JSON}.tmp" > /dev/null + sudo mv "${DAEMON_JSON}.tmp" "$DAEMON_JSON" + else + echo '{"features": {"containerd-snapshotter": false}}' \ + | sudo tee "$DAEMON_JSON" > /dev/null + fi + sudo systemctl restart docker - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -843,7 +882,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde + uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis env: ISTIO_VERSION: ${{ matrix.versions.istio }} KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }} @@ -884,6 +923,19 @@ jobs: with: submodules: true persist-credentials: false + - name: Disable containerd image store + shell: bash + run: | + DAEMON_JSON="/etc/docker/daemon.json" + if [ -f "$DAEMON_JSON" ]; then + sudo jq '. + {"features": {"containerd-snapshotter": false}}' "$DAEMON_JSON" \ + | sudo tee "${DAEMON_JSON}.tmp" > /dev/null + sudo mv "${DAEMON_JSON}.tmp" "$DAEMON_JSON" + else + echo '{"features": {"containerd-snapshotter": false}}' \ + | sudo tee "$DAEMON_JSON" > /dev/null + fi + sudo systemctl restart docker - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -904,7 +956,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde + uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis env: ISTIO_VERSION: ${{ matrix.versions.istio }} KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }} @@ -940,6 +992,19 @@ jobs: with: submodules: true persist-credentials: false + - name: Disable containerd image store + shell: bash + run: | + DAEMON_JSON="/etc/docker/daemon.json" + if [ -f "$DAEMON_JSON" ]; then + sudo jq '. + {"features": {"containerd-snapshotter": false}}' "$DAEMON_JSON" \ + | sudo tee "${DAEMON_JSON}.tmp" > /dev/null + sudo mv "${DAEMON_JSON}.tmp" "$DAEMON_JSON" + else + echo '{"features": {"containerd-snapshotter": false}}' \ + | sudo tee "$DAEMON_JSON" > /dev/null + fi + sudo systemctl restart docker - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -967,7 +1032,7 @@ jobs: shell: bash run: ./mvnw -B -q -f test/e2e-v2/java-test-service/pom.xml clean package - name: Java version ${{ matrix.java-version }} - uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde + uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis env: SW_AGENT_JDK_VERSION: ${{ matrix.java-version }} with: @@ -1063,7 +1128,7 @@ jobs: # fi # docker compose -f ${BANYANDB_DATA_GENERATE_ROOT}/docker-compose.yml down -v # - name: ${{ matrix.test.name }} -# uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde +# uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis # with: # e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }} # - if: ${{ failure() }} From 908d5f3a4908af3fa2c74d4bd361e60d4868bb45 Mon Sep 17 00:00:00 2001 From: Wu Sheng Date: Sat, 21 Feb 2026 15:00:49 +0800 Subject: [PATCH 2/4] Upgrade Docker CE after disabling containerd image store After disabling containerd snapshotter, the Docker daemon falls back to API v1.48 while the CLI and infra-e2e tool expect v1.51. Upgrading docker-ce and docker-ce-cli ensures the daemon supports the latest API. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/skywalking.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/skywalking.yaml b/.github/workflows/skywalking.yaml index 4e87bddf4f5e..8e5fb340e5e9 100644 --- a/.github/workflows/skywalking.yaml +++ b/.github/workflows/skywalking.yaml @@ -216,7 +216,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi + sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker + docker version + docker info - uses: actions/download-artifact@v4 name: Download distribution tar with: @@ -764,7 +767,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi + sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker + docker version + docker info - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -861,7 +867,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi + sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker + docker version + docker info - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -935,7 +944,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi + sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker + docker version + docker info - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -1004,7 +1016,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi + sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker + docker version + docker info - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: From 7dec037eaeee251ab2a1c785bbaab0c22dd53893 Mon Sep 17 00:00:00 2001 From: Wu Sheng Date: Sat, 21 Feb 2026 15:10:35 +0800 Subject: [PATCH 3/4] Replace apt-get upgrade with DOCKER_API_VERSION negotiation Remove apt-get install which may downgrade Docker. Instead, after disabling containerd and restarting, export DOCKER_API_VERSION from the server's supported version so the Docker SDK client negotiates down. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/skywalking.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/skywalking.yaml b/.github/workflows/skywalking.yaml index 8e5fb340e5e9..9838144f2905 100644 --- a/.github/workflows/skywalking.yaml +++ b/.github/workflows/skywalking.yaml @@ -216,10 +216,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi - sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker docker version docker info + echo "DOCKER_API_VERSION=$(docker version --format '{{.Server.APIVersion}}')" >> "$GITHUB_ENV" - uses: actions/download-artifact@v4 name: Download distribution tar with: @@ -767,10 +767,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi - sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker docker version docker info + echo "DOCKER_API_VERSION=$(docker version --format '{{.Server.APIVersion}}')" >> "$GITHUB_ENV" - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -867,10 +867,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi - sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker docker version docker info + echo "DOCKER_API_VERSION=$(docker version --format '{{.Server.APIVersion}}')" >> "$GITHUB_ENV" - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -944,10 +944,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi - sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker docker version docker info + echo "DOCKER_API_VERSION=$(docker version --format '{{.Server.APIVersion}}')" >> "$GITHUB_ENV" - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: @@ -1016,10 +1016,10 @@ jobs: echo '{"features": {"containerd-snapshotter": false}}' \ | sudo tee "$DAEMON_JSON" > /dev/null fi - sudo apt-get update -q && sudo apt-get install -y -q docker-ce docker-ce-cli sudo systemctl restart docker docker version docker info + echo "DOCKER_API_VERSION=$(docker version --format '{{.Server.APIVersion}}')" >> "$GITHUB_ENV" - run: grep -v '^#' test/e2e-v2/script/env >> "$GITHUB_ENV" - uses: apache/skywalking-cli/actions/setup@master with: From bf1d45523b7a2a1c8bad9efe2bb410993294e45b Mon Sep 17 00:00:00 2001 From: Wu Sheng Date: Sat, 21 Feb 2026 16:02:33 +0800 Subject: [PATCH 4/4] Revert to old infra-e2e commit, keep containerd fix The upgraded infra-e2e branch introduces regressions (stricter container exit handling). Revert to the old commit and rely on containerd disable + DOCKER_API_VERSION to fix Docker 29 API compatibility. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/skywalking.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/skywalking.yaml b/.github/workflows/skywalking.yaml index 9838144f2905..0a3813dcc39c 100644 --- a/.github/workflows/skywalking.yaml +++ b/.github/workflows/skywalking.yaml @@ -811,7 +811,7 @@ jobs: if: matrix.test.docker != null run: docker build -t ${{ matrix.test.docker.name }} -f ${{ matrix.test.docker.base }}/${{ matrix.test.docker.file }} ${{ matrix.test.docker.base }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis + uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde with: e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }} - if: ${{ failure() }} @@ -891,7 +891,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis + uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde env: ISTIO_VERSION: ${{ matrix.versions.istio }} KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }} @@ -968,7 +968,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: ${{ matrix.test.name }} - uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis + uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde env: ISTIO_VERSION: ${{ matrix.versions.istio }} KUBERNETES_VERSION: ${{ matrix.versions.kubernetes }} @@ -1047,7 +1047,7 @@ jobs: shell: bash run: ./mvnw -B -q -f test/e2e-v2/java-test-service/pom.xml clean package - name: Java version ${{ matrix.java-version }} - uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis + uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde env: SW_AGENT_JDK_VERSION: ${{ matrix.java-version }} with: @@ -1143,7 +1143,7 @@ jobs: # fi # docker compose -f ${BANYANDB_DATA_GENERATE_ROOT}/docker-compose.yml down -v # - name: ${{ matrix.test.name }} -# uses: apache/skywalking-infra-e2e@upgrade-deps-and-migrate-deprecated-apis +# uses: apache/skywalking-infra-e2e@e7138da4f9b7a25a169c9f8d995795d4d2e34bde # with: # e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }} # - if: ${{ failure() }}