Skip to content

OU-1389: update devspace setup#1073

Merged
openshift-merge-bot[bot] merged 2 commits into
openshift:mainfrom
PeterYurkovich:ou-1389-11
Jul 23, 2026
Merged

OU-1389: update devspace setup#1073
openshift-merge-bot[bot] merged 2 commits into
openshift:mainfrom
PeterYurkovich:ou-1389-11

Conversation

@PeterYurkovich

@PeterYurkovich PeterYurkovich commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

This PR looks to update devspace support for the new development and feature setup. It adds a new Makefile command (make start-mcp-frontend) which injects the correct package name into the webpack build and splits the devspace command to take over either the CMO or COO deployments. If the COO deployment is selected then the command will attempt to install COO if it doesn't already exist and create the monitoring-console-plugin deployment.

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Enhanced Devspace development to support both Monitoring (MP/CMO) and COO modes with a selectable plugin workflow.
    • Added an MCP-specific Devspace feature bundle plus a dedicated start-mcp-frontend workflow.
    • Introduced automated COO/CMO install and scale helper scripts.
  • Documentation

    • Reworked “Running using Devspace” with clearer MP vs COO/CMO vs COO flow and commands.
  • Bug Fixes

    • Improved dynamic console plugin i18n namespace handling for local runs and Cypress.
  • Chores

    • Updated the dev web-builder base image (Go version) and streamlined plugin-name handling.
    • Removed the legacy DevSpace deployment configuration and deprecated plugin-name update steps.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 21, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 21, 2026

Copy link
Copy Markdown

@PeterYurkovich: This pull request references OU-1389 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci
openshift-ci Bot requested review from etmurasaki and zhuje July 21, 2026 14:25
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 21, 2026
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown

Walkthrough

Development support now covers Monitoring and Cluster Observability plugin workflows through plugin-aware builds, dedicated backend targets, operator lifecycle scripts, selectable Devspace pipelines, updated documentation, and a Go 1.26 development image.

Changes

Dual plugin Devspace workflow

Layer / File(s) Summary
Plugin-aware builds and startup targets
Dockerfile.devspace, Dockerfile.dev-mcp, Dockerfile.mcp, Makefile, web/webpack.config.ts, web/cypress.config.ts, scripts/start-console.sh
Plugin metadata and i18n namespaces derive from CONSOLE_PLUGIN_NAME; MCP frontend and backend targets are added, and the development image uses Go 1.26.
Operator installation and lifecycle automation
hack/install-coo.sh, hack/create-uiplugin.sh, hack/scale-down-*.sh, hack/scale-up-*.sh
COO installation and UIPlugin creation are automated, while CMO and COO deployments can be scaled down and restored.
Selectable Devspace pipelines and containers
devspace.yaml
A PLUGIN selection controls operator preparation, container startup, synchronization, backend commands, and purge restoration.
Development workflow documentation
README.md
Devspace takeover, asset synchronization, Monitoring Features, and COO Features workflows are documented.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant Devspace
  participant install_coo.sh
  participant create_uiplugin.sh
  participant app-mp_or_app-mcp
  participant Makefile
  Developer->>Devspace: Select mp or mcp and run devspace dev
  Devspace->>install_coo.sh: Install COO for mcp
  Devspace->>create_uiplugin.sh: Configure monitoring UIPlugin for mcp
  Devspace->>app-mp_or_app-mcp: Start selected development container
  app-mp_or_app-mcp->>Makefile: Run matching backend target
  Developer->>Devspace: Run devspace purge
  Devspace->>app-mp_or_app-mcp: Stop development containers
Loading

Suggested reviewers: etmurasaki, zhuje

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: updating the DevSpace setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The PR changes only docs, scripts, Dockerfiles, and config; no test files or Ginkgo title call sites were added or edited.
Test Structure And Quality ✅ Passed No Ginkgo test files or test blocks are changed in HEAD; this PR only touches Docker, DevSpace, scripts, and webpack config.
Microshift Test Compatibility ✅ Passed PR changes only devspace/build/docs/scripts and webpack configs; no new Ginkgo e2e tests were added, so MicroShift-specific API checks are not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the PR only changes devspace, scripts, Dockerfiles, config, and docs, so SNO assumptions are not implicated.
Topology-Aware Scheduling Compatibility ✅ Passed No changed manifest/controller adds anti-affinity, topology spread, node selectors, or replica logic; the devspace/scripts only scale operators and set env/commands.
Ote Binary Stdout Contract ✅ Passed No Go main/suite code was changed; the diff only touches config/scripts, and no stdout-logging patterns appeared in changed files.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo e2e tests were added in the diff, so there are no IPv4 or external-connectivity assumptions to flag.
No-Weak-Crypto ✅ Passed No weak crypto, custom crypto, or secret/token comparisons were added in the changed files.
Container-Privileges ✅ Passed Touched manifests add no privileged:true, hostPID/hostNetwork/hostIPC, SYS_ADMIN, or allowPrivilegeEscalation:true; chart securityContext remains non-root/false.
No-Sensitive-Data-In-Logs ✅ Passed Changed logging only prints status messages; no passwords, tokens, PII, or customer data are echoed in the new/modified lines.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@devspace.yaml`:
- Around line 16-28: Validate PLUGIN before the branch in the dev flow,
accepting only the supported mp and mcp values. If it is overridden with any
other value, fail immediately before running installation, UIPlugin, scaling, or
start_dev commands; preserve the existing branch behavior for valid values.

In `@hack/create-uiplugin.sh`:
- Around line 16-21: Align the UIPlugin `incidents` setting with the backend
feature configuration by either enabling `incidents` in the
`MCP_DEVSPACE_FEATURES` Makefile target or disabling `incidents` in this CR.
Ensure the MCP DevSpace UI does not expose a feature unavailable in the backend.

In `@hack/install-coo.sh`:
- Around line 40-49: The COO wait loop currently checks an arbitrary CSV via
`.items[0]`. Update the loop to read `.status.installedCSV` from the
`cluster-observability-operator` Subscription in
`openshift-cluster-observability-operator`, then query that named CSV’s
status.phase and continue waiting until it is Succeeded while preserving the
existing timeout behavior.

In `@hack/scale-up-cmo.sh`:
- Around line 4-6: Update the ClusterVersion restoration logic in the scale-up
script so it does not remove /spec/overrides wholesale. Restore the original
overrides array captured during scale-down, or remove only the monitoring-plugin
override introduced by scale-down-cmo.sh, while preserving all unrelated
existing overrides.

In `@README.md`:
- Around line 69-71: Correct the grammar in the DevSpace documentation: change
“it's own pod” to “its own pod” and “they will be rebuild” to “they will be
rebuilt,” without altering the surrounding technical content.

In `@web/webpack.config.ts`:
- Around line 107-109: Update the Perses route construction in the webpack
configuration to use the package plugin name when CONSOLE_PLUGIN_NAME is empty
as well as unset. Replace the nullish fallback in the PERSES_PROXY_BASE_URL
definition with the same non-empty fallback used nearby, preserving alignment
with pkg.consolePlugin.name.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: f45561fd-d29c-4a7c-b95e-810f2d0d3ff9

📥 Commits

Reviewing files that changed from the base of the PR and between 6cd129a and 2224822.

📒 Files selected for processing (11)
  • Dockerfile.devspace
  • Makefile
  • README.md
  • devspace.yaml
  • hack/create-uiplugin.sh
  • hack/install-coo.sh
  • hack/scale-down-cmo.sh
  • hack/scale-down-coo.sh
  • hack/scale-up-cmo.sh
  • hack/scale-up-coo.sh
  • web/webpack.config.ts

Comment thread devspace.yaml
Comment thread hack/create-uiplugin.sh Outdated
Comment thread hack/install-coo.sh Outdated
Comment thread hack/scale-up-cmo.sh
Comment thread README.md Outdated
Comment thread web/webpack.config.ts Outdated
@PeterYurkovich

Copy link
Copy Markdown
Contributor Author

/label qe-approved
Only development environment change

@openshift-ci openshift-ci Bot added the qe-approved Signifies that QE has signed off on this PR label Jul 22, 2026
@PeterYurkovich
PeterYurkovich force-pushed the ou-1389-11 branch 2 times, most recently from d9b0b7a to 1f14609 Compare July 22, 2026 14:01
@PeterYurkovich

Copy link
Copy Markdown
Contributor Author

/retest

Comment thread hack/scale-down-cmo.sh
Comment thread Makefile

.PHONY: start-mcp-frontend
start-mcp-frontend:
cd web && CONSOLE_PLUGIN_NAME=monitoring-console-plugin npm run start

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we set the I18N_NAMESPACE here as well?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The initial answer to this was no due to the naming of our translation files, but you helped me realize that we can actually improve our build process more. The initial change in the webpack config that this PR contained already performed the first of 2 actions that the update-plugin-name.sh script performed, and I added the second as well. Now rather than need to run that script before building the monitoring-console-plugin in our dockerfiles we can just set the ENV variable and let webpack take over handling it

I've also combined the two ENV variable to just the CONSOLE_PLUGIN_NAME and have the old usage of I18N_NAMESPACE in the webpack file be constructed from the CONSOLE_PLUGIN_NAME.

When we create the next konflux update including these changes we will need to remove the script running and just pass in the ENV

Comment thread web/webpack.config.ts Outdated
Comment thread hack/install-coo.sh Outdated
Comment thread devspace.yaml
coderabbitai[bot]

This comment was marked as resolved.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/start-console.sh`:
- Line 9: Update the proxy configuration near BRIDGE_PLUGIN_PROXY so its plugin
path follows the selected CONSOLE_PLUGIN_NAME, keeping BRIDGE_PLUGINS and
BRIDGE_I18N_NAMESPACES consistent; alternatively, explicitly enable this proxy
only for MCP. Apply the correction to all proxy-routing branches currently
hardcoding monitoring-console-plugin.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: c426cbdd-03cc-4f0e-a45a-1513ee0c9186

📥 Commits

Reviewing files that changed from the base of the PR and between 5688a10 and 411dd57.

📒 Files selected for processing (10)
  • Dockerfile.dev-mcp
  • Dockerfile.mcp
  • Makefile
  • devspace-deployment.yaml
  • hack/install-coo.sh
  • hack/scale-down-cmo.sh
  • scripts/start-console.sh
  • scripts/update-plugin-name.sh
  • web/cypress.config.ts
  • web/webpack.config.ts
💤 Files with no reviewable changes (3)
  • devspace-deployment.yaml
  • scripts/update-plugin-name.sh
  • Makefile
🚧 Files skipped from review as they are similar to previous changes (6)
  • Dockerfile.mcp
  • hack/scale-down-cmo.sh
  • web/cypress.config.ts
  • Dockerfile.dev-mcp
  • web/webpack.config.ts
  • hack/install-coo.sh

Comment thread scripts/start-console.sh
PLUGIN_PORT=${PLUGIN_PORT:=9443}
CONSOLE_IMAGE_PLATFORM=${CONSOLE_IMAGE_PLATFORM:="linux/amd64"}
npm_package_consolePlugin_name=${npm_package_consolePlugin_name:="monitoring-plugin"}
npm_package_consolePlugin_name=${CONSOLE_PLUGIN_NAME:-"monitoring-plugin"}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Keep proxy routing consistent with the selected plugin.

When CONSOLE_PLUGIN_NAME=monitoring-plugin, BRIDGE_PLUGINS and BRIDGE_I18N_NAMESPACES use that plugin, but BRIDGE_PLUGIN_PROXY still routes to /api/proxy/plugin/monitoring-console-plugin/perses/ at Lines 38, 45, and 53. Either derive the proxy path from the selected plugin or explicitly gate this proxy to MCP; otherwise the CMO/MP workflow can target the wrong plugin endpoint.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/start-console.sh` at line 9, Update the proxy configuration near
BRIDGE_PLUGIN_PROXY so its plugin path follows the selected CONSOLE_PLUGIN_NAME,
keeping BRIDGE_PLUGINS and BRIDGE_I18N_NAMESPACES consistent; alternatively,
explicitly enable this proxy only for MCP. Apply the correction to all
proxy-routing branches currently hardcoding monitoring-console-plugin.

@jgbernalp

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 23, 2026
@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jgbernalp, PeterYurkovich

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [PeterYurkovich,jgbernalp]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@PeterYurkovich

Copy link
Copy Markdown
Contributor Author

/retest

@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@PeterYurkovich: all tests passed!

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.

@openshift-merge-bot
openshift-merge-bot Bot merged commit 4c2373d into openshift:main Jul 23, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. qe-approved Signifies that QE has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants