wu-sheng opened a new pull request, #199: URL: https://github.com/apache/skywalking-swck/pull/199
## Summary Add `spec.kind` (enum: `horizon|booster`, default `horizon`) to the `UI` CRD so the operator can deploy either the legacy [booster-ui](https://github.com/apache/skywalking-booster-ui) image or the next-generation [horizon-ui](https://github.com/apache/skywalking-horizon-ui) image from a single CRD. Backwards-compatible — existing manifests need only add `kind: booster` to keep their current behavior. ### What changes per kind | `spec.kind` | Default image | Listens on | OAP wire-up | |-----------------------|---------------------------------------|------------|--------------------------------------------| | `horizon` *(default)* | `apache/skywalking-horizon-ui:<ver>` | `8081` | YAML config mounted at `/app/horizon.yaml` | | `booster` | `apache/skywalking-ui:<ver>` | `8080` | `SW_OAP_ADDRESS` env var | For `kind: horizon` the operator additionally: - Creates `ConfigMap/<name>-ui-horizon` (key `horizon.yaml`) rendered from `spec.OAPServerAddress` (→ `oap.queryUrl`), `spec.OAPServerAdminAddress` (default `http://<name>-oap.<ns>:17128` → `oap.adminUrl`), and `spec.OAPServerZipkinAddress` (default `<OAPServerAddress>/zipkin` → `oap.zipkinUrl`). - Mounts that ConfigMap as `/app/horizon.yaml` (read-only) on the Horizon UI container. - Mounts an `emptyDir` at `/data` for Horizon's writable state (audit log, setup state, alarm state, wire-debug log) — state is lost on pod restart. - Sets `spec.config` as an escape hatch: a raw `horizon.yaml` string that fully replaces the operator-generated config. The `OAPServer` Service additionally exposes port `17128` (admin) so Horizon UI can reach runtime-rule, DSL/MQE debug, and inspect endpoints. ### Backwards compatibility Existing e2e + sample YAMLs are pinned to `kind: booster` so their `apache/skywalking-ui:9.5.0` references keep working under the new horizon default. ## Test plan - [ ] `make generate` regenerates `zz_generated.deepcopy.go` + CRD without drift - [ ] `go build ./...` clean - [ ] Existing e2e suites pass unchanged (they all now declare `kind: booster`) - [ ] Deploy `kind: horizon` UI against an OAP cluster: ConfigMap created, mounted at `/app/horizon.yaml`, pod becomes ready on `:8081`, Service `targetPort: 8081` - [ ] Deploy `kind: booster` UI: ConfigMap NOT created, container runs on `:8080`, Service `targetPort: 8080`, `SW_OAP_ADDRESS` env var present - [ ] CRD validation rejects `spec.kind: foo` 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
