An OpenShift Console dynamic plugin for managing AI-driven remediation proposals on OpenShift clusters. It is part of the OpenShift Lightspeed ecosystem.
The plugin adds a navigation section to the admin perspective with the following 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 run test-unit # unit tests (vitest)
npm run test-watch # watch modenpm run lint-fixStylelint 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.
The i18n namespace is plugin__lightspeed-agentic-console-plugin. After adding or changing translatable strings, run:
npm run i18n