Skip to content

refactor(OME-52): containerized build, single-port serving#4

Merged
mshort55 merged 3 commits intomainfrom
ome-52-ui-consolidation
Apr 30, 2026
Merged

refactor(OME-52): containerized build, single-port serving#4
mshort55 merged 3 commits intomainfrom
ome-52-ui-consolidation

Conversation

@Hyperkid123
Copy link
Copy Markdown
Contributor

Summary

  • Replace 3 per-package Dockerfiles with single Dockerfile.web that builds all frontend assets in a UBI9 container (no host node/npm required)
  • Remove webpack-dev-server, serve commands, and all dev scripts — Go backend serves everything on :8085
  • Namespace webpack chunks (shell/ vs plugins/) to prevent filename collisions when merging builds
  • Per-plugin output directories (plugins/management/, plugins/routing/)
  • Dynamic OIDC config fetched from /api/ui/config at runtime — no hardcoded Keycloak settings
  • API paths: /v1/* (gRPC-gateway), /api/ui/* (UI config) — Express mock server removed
  • Updated README to reflect containerized build and single-port serving model

Test plan

  • task deploy:dev in POC repo builds frontend in container and serves on :8085
  • OIDC redirect to Keycloak works, login succeeds
  • App loads — nav renders (Targets, Orchestration, Signing Keys)
  • Plugin pages load via Module Federation
  • API calls to /v1/deployments work
  • No chunk filename collisions in browser network tab

🤖 Generated with Claude Code

Hyperkid123 and others added 3 commits April 30, 2026 13:49
…dead pages

Remove the entire K8s proxy layer, multi-cluster model, and dead UI pages
that were superseded by the Go backend. The frontend is now a thin shell
that loads only the management plugin (Targets, Orchestration, Signing Keys).

- Delete core-plugin entirely (Dashboard, ClusterListPage, ClusterDetailPage stubs)
- Delete K8s client, informers, log streamer, and all K8s proxy routes from mock-server
- Delete database layer (db.ts, seed.ts), WebSocket handler, auth middleware
- Delete GrantAccessPage, passkey API, UserPreferencesContext, useInvalidationSocket
- Remove AuthBanner, AuthMethodsPage, authState from management plugin
- Remove ClusterSwitcher from masthead
- Simplify AppLayout nav to flat list from navLayout (no hard-coded items)
- Add redirect from / to first plugin page
- Strip common package to essential types (User, PluginEntry, PluginRegistry)
- Update CLAUDE.md to reflect current architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…dynamic OIDC

- Replace per-package Dockerfiles with single Dockerfile.web that builds
  all frontend assets (common -> plugins -> GUI -> merge) in a UBI9 container
- Remove webpack-dev-server, serve commands, and all dev scripts — no host
  Node.js required, everything runs in containers via the POC repo
- Namespace webpack chunks (shell/ vs plugins/) to prevent filename collisions
  when merging GUI and plugin builds into a single web/ directory
- Per-plugin output directories (plugins/management/, plugins/routing/)
- Dynamic OIDC config: fetch authority/clientId from /api/ui/config at runtime
  instead of hardcoding Keycloak settings
- API paths: /v1/* (gRPC-gateway), /api/ui/* (UI config) — no Express proxy
- Update README to reflect containerized build and single-port serving model

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…chitecture

Delete packages replaced by Go backend:
- packages/mock-servers — Express mock API (replaced by /api/ui/* endpoints)
- packages/mock-cli-plugins — CLI remote plugins (CLI is now Go fleetctl)
- packages/cli — Ink terminal CLI (replaced by Go fleetctl)

Update e2e tests:
- Port references 3000 → 8085
- Remove stale helpers/api.ts (old Express API calls)
- Remove routing-plugin.spec.ts (depended on canvas pages)
- Rewrite smoke test for current app (Targets, Orchestration, Signing Keys)
- Remove webServer auto-start (no npm run dev)

Clean up root package.json:
- Remove unused deps: joi, json-parse-even-better-errors, wait-on, immutable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Hyperkid123
Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Apr 30, 2026

@Hyperkid123: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/pr-image-mirror-gui 7ea8a31 link true /test pr-image-mirror-gui
ci/prow/pr-image-mirror-mock-servers 7ea8a31 link true /test pr-image-mirror-mock-servers
ci/prow/pr-image-mirror-mock-ui-plugins 7ea8a31 link true /test pr-image-mirror-mock-ui-plugins
ci/prow/images 7ea8a31 link true /test images

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@mshort55
Copy link
Copy Markdown
Contributor

Per Martin this PR is good, so I am merging, mainly to test image mirroring.

@mshort55 mshort55 merged commit a960827 into main Apr 30, 2026
3 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants