wu-sheng opened a new pull request, #187:
URL: https://github.com/apache/skywalking-helm/pull/187

   ## Summary
   
   `skywalking-booster-ui` is deprecated, replaced upstream by [Apache 
SkyWalking Horizon UI](https://github.com/apache/skywalking-horizon-ui). This 
PR migrates the chart to ship Horizon UI by default.
   
   Horizon is not a drop-in for booster-ui:
   - Bundles a Node-based **BFF** in front of the SPA — listens on **port 
8081** and does **not** pass-through `/graphql` to OAP.
   - Reads a **`horizon.yaml`** config file (Zod-validated, hot-reloaded) 
instead of env vars.
   - Connects to OAP on **two** ports: query `12800` (`oap.ports.rest`) **and** 
admin REST `17128` (new `oap.ports.admin`, requires OAP 10.5+).
   - Requires **authentication**. Ships with default users `admin/admin` and 
`skywalking/skywalking` so the chart boots out of the box; documentation warns 
to rotate.
   - Runs as the non-root `horizon` user; writes runtime state (audit log, 
setup, alarms, wire debug) to `/data`.
   - Release images: Docker Hub `apache/skywalking-ui:horizon-x.y.z`. 
Pre-release / dev: `ghcr.io/apache/skywalking-horizon-ui`.
   
   ### Chart changes
   - New `templates/ui-configmap.yaml` renders `horizon.yaml` from a 
`ui.config` map deep-merged over chart defaults that wire 
`oap.queryUrl/adminUrl` to the in-cluster OAP service.
   - New `templates/ui-pvc.yaml` optionally backs `/data` with a PVC 
(`ui.persistence.enabled`).
   - `templates/ui-deployment.yaml` rewritten: port 8081, ConfigMap mount at 
`/app/horizon.yaml`, `/data` volume, HTTP readiness probe on `/api/oap/info`, 
`Recreate` strategy (in-memory session store), `fsGroup: 101`, optional 
`envFromSecret` / `extraEnv` for `${VAR}` interpolation. Drops the booster-ui 
`SW_OAP_ADDRESS` / `SW_ZIPKIN_ADDRESS` env wiring.
   - `oap.ports.admin: 17128` added so the OAP service exposes the admin REST 
port.
   - `ui.enabled` flag (default `true`) gates **all** UI resources for 
deployments that point an external UI at OAP directly.
   
   ### E2E
   Horizon's BFF does not expose `/graphql`, so the previous `swctl 
--base-url=http://skywalking-ui/graphql` pattern would 404. All three 
`test/e2e/e2e-*.yaml` files now:
   - Expose `service/skywalking-oap:12800` instead of 
`service/skywalking-ui:80`.
   - Send every `swctl` query to OAP directly 
(`service_skywalking_oap_host:service_skywalking_oap_12800/graphql`).
   - Add `deployments/skywalking-ui` to `wait:` as a BFF smoke check (so a 
Horizon regression that breaks startup fails CI).
   - `test/e2e/env`: `UI_REPO=ghcr.io/apache/skywalking-horizon-ui`, 
`UI_TAG=main`.
   - `test/e2e/values.yaml` mirrors the same `admin/admin` + 
`skywalking/skywalking` credentials so a developer port-forwarding into the 
kind cluster can log in.
   
   ### Docs
   - New `chart/skywalking/values-horizon-ui.yaml`: single-file `helm install 
-f` example mirroring the upstream `horizon.example.yaml` shipped at 
`/app/horizon.example.yaml` inside the image.
   - Root README has a new "Web UI (Horizon UI)" section explaining the 
credential defaults, one-line install, and ConfigMap+Secret rotation pattern.
   - Chart README parameter table updated for the new UI rows.
   
   ## Test plan
   - [x] `helm dep up chart/skywalking`
   - [x] `helm lint chart/skywalking` (with and without `ui.enabled=false`, 
with and without `-f values-horizon-ui.yaml`)
   - [x] `helm template demo chart/skywalking -f 
chart/skywalking/values-horizon-ui.yaml` — `horizon.yaml` ConfigMap contains 
both default users with real argon2id hashes; OAP URLs point at the in-cluster 
service.
   - [x] `helm template demo chart/skywalking --set ui.enabled=false` — zero 
`ui-*` resources rendered.
   - [x] `helm template` against `test/e2e/values.yaml` succeeds (covers the 
e2e path).
   - [ ] Run e2e via `.github/workflows/e2e.ci.yaml` in this PR. Requires 
`UI_TAG` to be repinned from `main` to a stable SHA once horizon-ui has one.
   - [ ] Manual smoke: `kubectl port-forward svc/<release>-skywalking-helm-ui 
8080:80` → log in as `admin/admin`, confirm OAP query + admin endpoints 
reachable from the UI.
   
   ## Caveats
   - `UI_TAG=main` in `test/e2e/env` drifts on every horizon-ui merge — pin to 
a SHA once one is known.
   - Default credentials `admin/admin` and `skywalking/skywalking` are publicly 
known in this repo. README, NOTES.txt, and `values.yaml` comments all warn to 
rotate before exposing the UI beyond a trusted network.
   - Requires OAP **10.5+** for the admin port (`17128`) to bind. Older OAP 
will leave Horizon's admin features unavailable but the rest of the UI still 
works.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to