Skip to content

OCPMCP-108: weekly mcpchecker eval periodic for openshift-mcp-server#81947

Open
cajieh wants to merge 1 commit into
openshift:mainfrom
cajieh:run-mcpchecker-openshift-prow
Open

OCPMCP-108: weekly mcpchecker eval periodic for openshift-mcp-server#81947
cajieh wants to merge 1 commit into
openshift:mainfrom
cajieh:run-mcpchecker-openshift-prow

Conversation

@cajieh

@cajieh cajieh commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a weekly periodic (periodic-mcpchecker-eval, Mon 09:00 UTC) that runs mcpchecker core-suite evals against openshift/openshift-mcp-server on a live OpenShift cluster (ipi-aws / openshift-org-aws), with an 80% verify gate and JSON + JUnit artifacts under ${ARTIFACT_DIR} for Spyglass / Sippy (OCPMCP-108 / OCPMCP-308.1).
  • Runs evals/core-eval-testing/builtin-openai/eval-core.yaml (judge via shared agent.yaml llmJudge.ref; no deprecated JUDGE_* env vars).
  • Mounts existing ocp-mcp credentials from test-credentials at /var/run/ocp-mcp and exports OPENAI_API_KEY from openai-token (Vault: selfservice/ocp-mcp/openai-credentials).

Test plan

  • ci-operator-config / generated-config / yamllint pass on this PR
  • Confirm openai-token is synced into the ocp-mcp CI secret (or update mount accordingly)
  • /pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval after OpenAI token is available in CI
  • Confirm artifacts: ${ARTIFACT_DIR}/mcpchecker-out.json and ${ARTIFACT_DIR}/junit_mcpchecker.xml

Co-authored by Claude and Cursor.

Summary by CodeRabbit

Adds a weekly mcpchecker core-suite evaluation job for openshift/openshift-mcp-server, running in Kind with nested Podman. It uses dedicated evaluation tooling, LLM-judge credentials, an 80% verification gate, and publishes JSON/JUnit artifacts through OpenShift CI.

@openshift-ci-robot

openshift-ci-robot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

@cajieh: This pull request references OCPMCP-108 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 epic to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Adds a weekly periodic (periodic-mcpchecker-eval, Mon 09:00 UTC) that runs mcpchecker core-suite evals against openshift/openshift-mcp-server with Kind (nested Podman), LLM-judge secrets, an 80% verify gate, and JSON + JUnit artifacts under ${ARTIFACT_DIR} for Spyglass / downstream dashboard work (OCPMCP-108 / OCPMCP-308.1).
  • Uses a dedicated mcpchecker-eval image based on ci/nested-podman, starts the podman socket for Kind, installs Go/kubectl in-image, and clears GOFLAGS when installing mcpchecker.
  • Regenerates periodics via prowgen; leaves existing _pluginconfig.yaml unchanged.

Follow-up required (not in this PR)

Test plan

  • ci-operator-config / generated-config / yamllint pass on this PR
  • /pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval after secret is available (or expect secret-mount failure before then)
  • Confirm artifacts: ${ARTIFACT_DIR}/mcpchecker-out.json and ${ARTIFACT_DIR}/junit_mcpchecker.xml

Made with Cursor

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-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 15, 2026
@coderabbitai

coderabbitai Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a weekly CI job that runs the MCP server with mcpchecker, verifies core evaluation thresholds, and publishes JSON and JUnit XML artifacts.

Changes

MCP checker evaluation

Layer / File(s) Summary
Periodic evaluation execution
ci-operator/config/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main.yaml
Adds the weekly periodic-mcpchecker-eval step, configuring credentials and Kubernetes access, starting and stopping the server, running the core evaluation suite, verifying thresholds, and publishing JSON and JUnit artifacts.

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

Sequence Diagram(s)

sequenceDiagram
  participant periodic-mcpchecker-eval
  participant MCPServer
  participant mcpchecker
  participant ARTIFACT_DIR
  periodic-mcpchecker-eval->>MCPServer: make run-server TOOLSETS=core,config
  periodic-mcpchecker-eval->>mcpchecker: check eval-core.yaml with suite=core
  mcpchecker-->>periodic-mcpchecker-eval: JSON evaluation results
  periodic-mcpchecker-eval->>ARTIFACT_DIR: Copy JSON and write JUnit XML
  periodic-mcpchecker-eval->>MCPServer: Stop server on exit
Loading

Suggested reviewers: matzew, 2uasimojo

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning The new periodic job exports OPENAI_API_KEY and runs builtin-openai evals, so it depends on an external LLM service. Use an internal/disconnected model endpoint or mark the eval [Skipped:Disconnected]; then verify on the IPv6 payload job.
✅ Passed checks (14 passed)
Check name Status Explanation
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 only adds static CI YAML job names; no Ginkgo It/Describe/Context/When titles or dynamic test strings are present.
Test Structure And Quality ✅ Passed PR only changes ci-operator/prowgen YAML; no Ginkgo test blocks, fixtures, waits, or assertions were added to review.
Microshift Test Compatibility ✅ Passed The PR only adds CI/periodic YAML; no new Ginkgo e2e tests, MicroShift guards, or OpenShift API-using test code were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR only adds periodic CI YAML/job config; no new Ginkgo e2e test code or test bodies were added, so SNO compatibility is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed Only ci-operator periodic job config changed; no topology-sensitive scheduling constraints or replica/PDB settings were introduced.
Ote Binary Stdout Contract ✅ Passed PR only changes ci-operator YAML/generated periodics; no main/suite code or stdout writes were added, so the OTE stdout contract is unaffected.
No-Weak-Crypto ✅ Passed The PR only adds CI YAML jobs; diff scans found no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret-compare code.
Container-Privileges ✅ Passed PASS: The new periodic job and generated pod spec contain no privileged/hostPID/hostNetwork/hostIPC/SYS_ADMIN/allowPrivilegeEscalation/securityContext settings.
No-Sensitive-Data-In-Logs ✅ Passed No new logging statements or xtrace/env dumps were added; secret values are only read into env and never echoed.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the weekly mcpchecker eval periodic job added for openshift-mcp-server.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci

openshift-ci Bot commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: cajieh
Once this PR has been reviewed and has the lgtm label, please assign kaustubh-pande for approval. For more information see the Code Review Process.

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

Details Needs approval from an approver in each of these files:

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

@openshift-ci
openshift-ci Bot requested review from 2uasimojo and matzew July 15, 2026 14:42

@coderabbitai coderabbitai Bot left a comment

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.

🧹 Nitpick comments (1)
ci-operator/config/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main.yaml (1)

18-18: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Go patch version is behind latest security release.

Go 1.26.3 go1.26.3 (released 2026-05-07) includes security fixes to the go command, the pack tool, and the html/template, net, net/http, net/http/httputil, net/mail, and syscall packages, but newer patches exist: go1.26.4 (released 2026-06-02) includes security fixes to the crypto/x509, mime, and net/textproto packages... go1.26.5 (released 2026-07-07) includes security fixes to the crypto/tls and os packages. Consider bumping to 1.26.5 to pick up the latest security fixes.

🔧 Proposed fix
-      RUN curl -fsSL https://go.dev/dl/go1.26.3.linux-amd64.tar.gz | tar -C /usr/local -xzf - \
+      RUN curl -fsSL https://go.dev/dl/go1.26.5.linux-amd64.tar.gz | tar -C /usr/local -xzf - \
🤖 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
`@ci-operator/config/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main.yaml`
at line 18, Update the Go toolchain download URL in the Docker build RUN command
to use Go 1.26.5 instead of 1.26.3, keeping the existing Linux amd64 archive
extraction flow unchanged.
🤖 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.

Nitpick comments:
In
`@ci-operator/config/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main.yaml`:
- Line 18: Update the Go toolchain download URL in the Docker build RUN command
to use Go 1.26.5 instead of 1.26.3, keeping the existing Linux amd64 archive
extraction flow unchanged.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 94040479-07ab-40ea-a1df-9508cd873ac9

📥 Commits

Reviewing files that changed from the base of the PR and between 38b5968 and 7e3637e.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/openshift/openshift-mcp-server/openshift-openshift-mcp-server-main.yaml

@cajieh
cajieh force-pushed the run-mcpchecker-openshift-prow branch from 3320f6e to abd97a3 Compare July 15, 2026 15:37
@cajieh

cajieh commented Jul 15, 2026

Copy link
Copy Markdown
Contributor Author

/retest

@cajieh
cajieh force-pushed the run-mcpchecker-openshift-prow branch 3 times, most recently from ffdeba9 to 4b4d1b8 Compare July 16, 2026 14:33
@cajieh

cajieh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@cajieh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@cajieh

cajieh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

1 similar comment
@cajieh

cajieh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@cajieh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@cajieh
cajieh force-pushed the run-mcpchecker-openshift-prow branch from fdc3fda to 4b19743 Compare July 16, 2026 20:53
@cajieh

cajieh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@cajieh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-ci

openshift-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

@cajieh: The following test 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/rehearse/periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval fdc3fda link unknown /pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

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.

@cajieh

cajieh commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-openshift-mcp-server-main-periodic-mcpchecker-eval

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@cajieh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants