An OpenShift Console dynamic plugin that provides the AI Hub — a UI for managing AI-driven remediation proposals on OpenShift clusters. It is part of the OpenShift Lightspeed ecosystem.
The plugin adds an AI Hub navigation item under the Administration section in the admin perspective with three pages:
- Proposal List (
/lightspeed/proposals) — Filterable table of allProposalcustom resources across namespaces - Proposal Detail (
/lightspeed/proposals/:ns/:name) — Multi-tab workflow view with approval controls, live sandbox log streaming, and dynamic adapter components - Configuration (
/lightspeed/configuration) — Cluster-wide settings for approval policies, LLM providers, and agent configurations
The plugin consumes resources from the agentic.openshift.io/v1alpha1 API group:
| Kind | Scope | Purpose |
|---|---|---|
Proposal |
Namespaced | AI-generated remediation proposal |
ProposalApproval |
Namespaced | Per-proposal, per-stage approval state |
AnalysisResult |
Namespaced | Output of the analysis agent |
ExecutionResult |
Namespaced | Output of the execution agent |
VerificationResult |
Namespaced | Output of the verification agent |
EscalationResult |
Namespaced | Output of the escalation agent |
Agent |
Cluster | Agent configuration (LLM provider, model, timeouts) |
LLMProvider |
Cluster | LLM backend configuration |
ApprovalPolicy |
Cluster | Auto vs. manual approval per workflow stage |
- Node.js 22+
- npm 10+
- An OpenShift 4.22+ cluster with the Lightspeed Agentic operator installed
- oc CLI (for local console development)
- Docker or podman 3.2.0+ (for running console locally)
In one terminal:
npm install
npm run startIn another terminal:
oc login # log into your OpenShift cluster
npm run start-consoleThis runs the OpenShift console in a container connected to your cluster. The plugin dev server runs on port 9001 with CORS enabled. Navigate to http://localhost:9000/lightspeed/proposals to see the plugin.
A .devcontainer configuration is provided for VS Code Remote Containers. Create a dev.env file in .devcontainer/:
OC_PLUGIN_NAME=lightspeed-agentic-console-plugin
OC_URL=https://api.example.com:6443
OC_USER=kubeadmin
OC_PASS=<password>Then use (Ctrl+Shift+P) => Remote Containers: Open Folder in Container... and run npm run start.
npm test # unit tests (vitest)
npm run test:watch # watch modenpm run lintStylelint enforces rules to prevent breaking console styles:
- No hex colors — use PatternFly semantic tokens instead
- No
.pf-or.co-prefixed selectors — reserved for PatternFly and console - No naked element selectors — prevents overwriting default console styles
- Prefix custom classes with
ols-plugin__to avoid conflicts
docker build -t quay.io/my-repository/lightspeed-agentic-console-plugin:latest .
docker push quay.io/my-repository/lightspeed-agentic-console-plugin:latestOn Apple Silicon, add --platform=linux/amd64.
helm upgrade -i lightspeed-agentic-console-plugin charts/openshift-console-plugin \
-n openshift-lightspeed --create-namespace \
--set plugin.image=quay.io/my-repository/lightspeed-agentic-console-plugin:latestSee charts/openshift-console-plugin/values.yaml for all available parameters.
The i18n namespace is plugin__lightspeed-agentic-console-plugin. After adding or changing translatable strings, run:
npm run i18n