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

wu-sheng pushed a commit to branch sync-89624809-swctl-admin
in repository https://gitbox.apache.org/repos/asf/skywalking-graalvm-distro.git

commit 8896d021e2323bfaa9a08eb85a20ae58d300a301
Author: Wu Sheng <[email protected]>
AuthorDate: Thu Jun 4 14:05:21 2026 +0800

    Sync upstream to 89624809f0 + adopt swctl admin e2e migration
    
    Advance the skywalking submodule ad733554b0 -> 89624809f0 (4 commits;
    docs + e2e only, no production code). The relevant change is upstream
    #13889, which migrated the e2e admin-API calls from raw curl to the new
    `swctl admin ...` command tree and bumped skywalking-cli to an
    admin-capable build.
    
    - Bump SW_CTL_COMMIT 9a1beab0 -> b447211a (admin-capable swctl).
    - Drive the live-debugging admin checks through `swctl admin dsl-debug` /
      `runtime-rule` / `oal` alongside the existing raw-curl contract checks:
      the distro stub returns HTTP 501, so swctl exits non-zero and logs its
      typed error envelope; grep recovers httpStatus + error code + feature
      root, proving the official CLI surfaces a clean "unsupported"
      (feature_not_available_in_graalvm_native) rather than a confusing 404.
      Install swctl in the live-debugging case setup.
    - Update version-mapping.md dev row and changes/changes.md.
---
 changes/changes.md                                 |  5 ++-
 docs/version-mapping.md                            |  2 +-
 skywalking                                         |  2 +-
 test/e2e/cases/live-debugging/e2e.yaml             |  7 +++-
 .../expected/swctl-dsl-debugging-501.yml           | 20 ++++++++++
 .../expected/swctl-runtime-rule-501.yml            | 21 ++++++++++
 .../cases/live-debugging/live-debugging-cases.yaml | 46 ++++++++++++++++++++++
 test/e2e/script/env                                |  4 +-
 8 files changed, 100 insertions(+), 7 deletions(-)

diff --git a/changes/changes.md b/changes/changes.md
index f0b5fe8..68197e0 100644
--- a/changes/changes.md
+++ b/changes/changes.md
@@ -4,7 +4,7 @@
 
 ### Upstream Sync
 
-- Sync SkyWalking submodule to upstream `ad733554b0` (11.0.0-SNAPSHOT).
+- Sync SkyWalking submodule to upstream `89624809f0` (11.0.0-SNAPSHOT).
 - Wire the admin-server family on the admin host (HTTP `:17128`, 
admin-internal gRPC `:17129`): `admin-server`, `status` (relocated from the 
10.x `status-query` plugin — `/status/*`, `/debugging/*`), `inspect` (SWIP-14 
metric catalog, `/inspect/*`), and `ui-management` (dashboard-template REST for 
the Horizon UI, `/ui-management/*`). The `status-query` plugin is removed.
 - Enable iOS (SWIP-11) and mini-program (SWIP-12) OTel metrics rules and Envoy 
AI Gateway MCP rules; add the mini-program log-MAL rules and the 
`ai_route_type` searchable log tag.
 - Drop the bundled UI templates: upstream 11.0.0 removed 
`ui-initialized-templates/` and `UITemplateInitializer`; templates are now 
managed via `ui-management`.
@@ -20,7 +20,7 @@
 
 ### Documentation
 
-- Document the admin-server family, the status relocation, and the unsupported 
DSL-debugging / runtime-rule features (HTTP 501) in `distro-policy.md` and 
`supported-features.md`; add the `0.4.0` → `ad733554b0` row to 
`version-mapping.md`.
+- Document the admin-server family, the status relocation, and the unsupported 
DSL-debugging / runtime-rule features (HTTP 501) in `distro-policy.md` and 
`supported-features.md`; add the `0.4.0` → `89624809f0` row to 
`version-mapping.md`.
 
 ### Testing
 
@@ -32,6 +32,7 @@
 - Bump `skywalking-infra-e2e` to upstream's pin (`0d917694`) — the synced e2e 
expected-output templates use the `containsOnce` verify function, which the 
prior pin predated.
 - Remove the `menu` e2e case (CI matrix + wrapper): upstream dropped the 
bundled UI in 11.0.0 (#13877), deleting `test/e2e-v2/cases/menu/`, so the 
distro wrapper referenced a non-existent reuse file.
 - Add the `live-debugging` e2e case: boots the native OAP and asserts the 
admin-server (`:17128`) returns the structured HTTP 501 for the DSL live 
debugger (`/dsl-debugging/*`) and runtime-rule (`/runtime/*`) endpoints. The 
first e2e to exercise the admin port — it caught the missing reflection 
registration noted above (the stub had been returning 404).
+- Adopt the upstream **swctl admin** migration (#13889): bump the pinned 
`skywalking-cli` (`SW_CTL_COMMIT`) to the admin-capable commit (`b447211a`) and 
drive the `live-debugging` admin checks through `swctl admin dsl-debug` / 
`runtime-rule` / `oal` alongside the existing raw-curl contract checks — 
verifying that the official CLI surfaces this distro's structured HTTP 501 
(`feature_not_available_in_graalvm_native`) for both the DSL live debugger and 
runtime-rule roots, rather than crashi [...]
 
 ## 0.3.0
 
diff --git a/docs/version-mapping.md b/docs/version-mapping.md
index fd03a15..1d135d3 100644
--- a/docs/version-mapping.md
+++ b/docs/version-mapping.md
@@ -8,7 +8,7 @@ Otherwise, it is shown as `{commit-id}-SNAPSHOT` indicating a 
development build
 <!-- DOC-CHECK: version-mapping-table -->
 | Distro Version | Apache SkyWalking Version |
 |---|---|
-| 0.4.0-SNAPSHOT (dev) | `ad733554b027`-SNAPSHOT |
+| 0.4.0-SNAPSHOT (dev) | `89624809f078`-SNAPSHOT |
 | 0.3.0 | 10.4.0 |
 | 0.2.1 | `64a1795d8a58`-SNAPSHOT |
 | 0.2.0 | `64a1795d8a58`-SNAPSHOT |
diff --git a/skywalking b/skywalking
index ad73355..8962480 160000
--- a/skywalking
+++ b/skywalking
@@ -1 +1 @@
-Subproject commit ad733554b0273d6165eff7bae4150df83d49ebe8
+Subproject commit 89624809f078b6424b474323ae091f72b9e694b4
diff --git a/test/e2e/cases/live-debugging/e2e.yaml 
b/test/e2e/cases/live-debugging/e2e.yaml
index 31f0c3b..739d128 100644
--- a/test/e2e/cases/live-debugging/e2e.yaml
+++ b/test/e2e/cases/live-debugging/e2e.yaml
@@ -19,7 +19,10 @@
 # image cannot do. This distro pre-compiles all DSL at build time and serves a 
structured
 # HTTP 501 for those admin-server endpoints. This case verifies that contract.
 # Verify-only (no trigger): infra-e2e's trigger step aborts on a non-2xx 
response, so the
-# 501 is asserted through verify cases that curl the admin-server (port 17128) 
directly.
+# 501 is asserted through verify cases. Two complementary views: raw curl 
against the
+# admin-server (port 17128) pins the exact HTTP-contract body, while `swctl 
admin ...`
+# checks that the upstream admin-capable CLI (#13889) surfaces the same 501 
cleanly to
+# end users instead of crashing or reporting a confusing 404.
 
 setup:
   env: compose
@@ -29,6 +32,8 @@ setup:
   steps:
     - name: set PATH
       command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
+    - name: install swctl
+      command: bash 
skywalking/test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
 
 verify:
   retry:
diff --git a/test/e2e/cases/live-debugging/expected/swctl-dsl-debugging-501.yml 
b/test/e2e/cases/live-debugging/expected/swctl-dsl-debugging-501.yml
new file mode 100644
index 0000000..ac6a049
--- /dev/null
+++ b/test/e2e/cases/live-debugging/expected/swctl-dsl-debugging-501.yml
@@ -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.
+
+# `swctl admin dsl-debug ...` against this distro: the official CLI surfaces 
the
+# stub's HTTP 501 (feature_not_available_in_graalvm_native) for the 
dsl-debugging root.
+httpStatus: 501
+error: feature_not_available_in_graalvm_native
+feature: dsl-debugging
diff --git a/test/e2e/cases/live-debugging/expected/swctl-runtime-rule-501.yml 
b/test/e2e/cases/live-debugging/expected/swctl-runtime-rule-501.yml
new file mode 100644
index 0000000..56522e5
--- /dev/null
+++ b/test/e2e/cases/live-debugging/expected/swctl-runtime-rule-501.yml
@@ -0,0 +1,21 @@
+# 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.
+
+# `swctl admin runtime-rule list` / `admin oal files` against this distro: the 
official
+# CLI surfaces the stub's HTTP 501 (feature_not_available_in_graalvm_native) 
for the
+# runtime-rule root.
+httpStatus: 501
+error: feature_not_available_in_graalvm_native
+feature: runtime-rule
diff --git a/test/e2e/cases/live-debugging/live-debugging-cases.yaml 
b/test/e2e/cases/live-debugging/live-debugging-cases.yaml
index 8459563..1f3de02 100644
--- a/test/e2e/cases/live-debugging/live-debugging-cases.yaml
+++ b/test/e2e/cases/live-debugging/live-debugging-cases.yaml
@@ -41,3 +41,49 @@ cases:
     expected: expected/http-status-501.yml
   - query: "echo httpStatus: $(curl -s -o /dev/null -w '%{http_code}' 
http://${oap_host}:${oap_17128}/runtime/rule/list)"
     expected: expected/http-status-501.yml
+
+  # --- Same 501 contract, now seen through the official `swctl admin` CLI 
----------------
+  # Upstream #13889 moved the e2e admin-API calls from raw curl to the `swctl 
admin ...`
+  # command tree (SW_CTL_COMMIT bumped to the admin-capable build). Those same 
commands run
+  # against this distro must degrade cleanly: the stub returns HTTP 501, so 
swctl exits
+  # non-zero and logs its typed error envelope ("admin API <url>: HTTP 501: 
<body>") — the
+  # distro's structured body rides along inside it. `2>&1 || true` captures 
the envelope;
+  # grep pulls the stable fields back out (httpStatus + error code + feature 
root), proving
+  # the CLI reports a clean "unsupported" rather than crashing or a confusing 
404. The
+  # feature root is the first dsl-debugging/runtime-rule token in the envelope 
(the path for
+  # dsl-debug, the feature field for runtime-rule — both resolve to the 
correct root).
+  - query: |
+      out=$(swctl --display json --admin-url=http://${oap_host}:${oap_17128} 
admin dsl-debug status 2>&1 || true)
+      printf 'httpStatus: %s\nerror: %s\nfeature: %s\n' \
+        "$(echo "$out" | grep -oE 'HTTP [0-9]+' | grep -oE '[0-9]+' | head 
-1)" \
+        "$(echo "$out" | grep -oE 'feature_not_available_in_graalvm_native' | 
head -1)" \
+        "$(echo "$out" | grep -oE 'dsl-debugging|runtime-rule' | head -1)"
+    expected: expected/swctl-dsl-debugging-501.yml
+  - query: |
+      out=$(swctl --display json --admin-url=http://${oap_host}:${oap_17128} 
admin dsl-debug sessions 2>&1 || true)
+      printf 'httpStatus: %s\nerror: %s\nfeature: %s\n' \
+        "$(echo "$out" | grep -oE 'HTTP [0-9]+' | grep -oE '[0-9]+' | head 
-1)" \
+        "$(echo "$out" | grep -oE 'feature_not_available_in_graalvm_native' | 
head -1)" \
+        "$(echo "$out" | grep -oE 'dsl-debugging|runtime-rule' | head -1)"
+    expected: expected/swctl-dsl-debugging-501.yml
+  - query: |
+      out=$(swctl --display json --admin-url=http://${oap_host}:${oap_17128} 
admin dsl-debug session start --catalog otel-rules --name vm --rule-name 
vm_memory_used 2>&1 || true)
+      printf 'httpStatus: %s\nerror: %s\nfeature: %s\n' \
+        "$(echo "$out" | grep -oE 'HTTP [0-9]+' | grep -oE '[0-9]+' | head 
-1)" \
+        "$(echo "$out" | grep -oE 'feature_not_available_in_graalvm_native' | 
head -1)" \
+        "$(echo "$out" | grep -oE 'dsl-debugging|runtime-rule' | head -1)"
+    expected: expected/swctl-dsl-debugging-501.yml
+  - query: |
+      out=$(swctl --display json --admin-url=http://${oap_host}:${oap_17128} 
admin runtime-rule list 2>&1 || true)
+      printf 'httpStatus: %s\nerror: %s\nfeature: %s\n' \
+        "$(echo "$out" | grep -oE 'HTTP [0-9]+' | grep -oE '[0-9]+' | head 
-1)" \
+        "$(echo "$out" | grep -oE 'feature_not_available_in_graalvm_native' | 
head -1)" \
+        "$(echo "$out" | grep -oE 'dsl-debugging|runtime-rule' | head -1)"
+    expected: expected/swctl-runtime-rule-501.yml
+  - query: |
+      out=$(swctl --display json --admin-url=http://${oap_host}:${oap_17128} 
admin oal files 2>&1 || true)
+      printf 'httpStatus: %s\nerror: %s\nfeature: %s\n' \
+        "$(echo "$out" | grep -oE 'HTTP [0-9]+' | grep -oE '[0-9]+' | head 
-1)" \
+        "$(echo "$out" | grep -oE 'feature_not_available_in_graalvm_native' | 
head -1)" \
+        "$(echo "$out" | grep -oE 'dsl-debugging|runtime-rule' | head -1)"
+    expected: expected/swctl-runtime-rule-501.yml
diff --git a/test/e2e/script/env b/test/e2e/script/env
index 69b17ba..023f27d 100644
--- a/test/e2e/script/env
+++ b/test/e2e/script/env
@@ -17,11 +17,11 @@
 # Update when syncing the skywalking submodule.
 SW_AGENT_JAVA_COMMIT=ac0df43d7140e726eba9e5e5b1b75cf364c71dff
 SW_BANYANDB_COMMIT=84b919efca3fee3d51df9e97a734a9f10ae6f1d2
-SW_CTL_COMMIT=9a1beab08413ce415a00a8547a238a14691c5655
+SW_CTL_COMMIT=b447211a9319eeb29a445335e9c2536f8c1aa23d
 SW_KUBERNETES_COMMIT_SHA=da0e267f877b9b8e5f7728ae4ea7dc7723a2a073
 
 # UI image pin for the istio-als e2e test (ghcr.io/apache/skywalking/ui:<sha>).
-# NOT bumped to the synced submodule commit ad733554b0: 11.0.0 dropped the 
bundled UI,
+# NOT bumped to the synced submodule commit 89624809f0: 11.0.0 dropped the 
bundled UI,
 # so ghcr.io/apache/skywalking/ui is no longer published at recent commits. 
Kept at the
 # last commit whose UI image exists. The pins below track the sync.
 SW_UPSTREAM_COMMIT=f79451d3de23edb15277f5b6e315dc6779e73e1f

Reply via email to