Skip to content

NO-JIRA: MCO jobs: re-add cloud jobs to standard, default to candidate#3400

Open
yuqi-zhang wants to merge 1 commit intoopenshift:mainfrom
yuqi-zhang:update-mco-tiers
Open

NO-JIRA: MCO jobs: re-add cloud jobs to standard, default to candidate#3400
yuqi-zhang wants to merge 1 commit intoopenshift:mainfrom
yuqi-zhang:update-mco-tiers

Conversation

@yuqi-zhang
Copy link
Copy Markdown
Contributor

@yuqi-zhang yuqi-zhang commented Apr 2, 2026

This changes the MCO logic a bit to always start in candidate, and explicitly set AWS/GCP/Azure disruptive and disruptive-techpreview jobs to standard. With this,

  • e2e-aws-mco-fips-proxy-longduration
  • e2e-aws-ovn-day1-ocl
  • e2e-vsphere-mco-tp-longduration
  • update-amis

Has been moved to candidate instead since I'm not sure they should have been standard by default. The cloud jobs should be stable enough, and is intended to serve as our component readiness for MCO specific tests.

For older context see #3393 and #3094

Summary by CodeRabbit

  • Chores
    • Adjusted job-tier assignments for Machine Config Operator test jobs across multiple release versions and infrastructure providers, including updated default classifications for 4.19/4.20 releases and cloud-based test scenarios.
    • Synchronized job-tier configuration values across periodic test snapshots to align with revised tier mappings.

This changes the MCO logic a bit to always start in candidate, and
explicitly set AWS/GCP/Azure disruptive and disruptive-techpreview jobs
to standard. With this,

  - e2e-aws-mco-fips-proxy-longduration
  - e2e-aws-ovn-day1-ocl
  - e2e-vsphere-mco-tp-longduration
  - update-amis

Has been moved to candidate instead since I'm not sure they should have
been standard by default. The cloud jobs should be stable enough, and is
intended to serve as our component readiness for MCO specific tests.
@openshift-ci-robot
Copy link
Copy Markdown

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 2, 2026
@openshift-ci-robot
Copy link
Copy Markdown

@yuqi-zhang: This pull request explicitly references no jira issue.

Details

In response to this:

This changes the MCO logic a bit to always start in candidate, and explicitly set AWS/GCP/Azure disruptive and disruptive-techpreview jobs to standard. With this,

  • e2e-aws-mco-fips-proxy-longduration
  • e2e-aws-ovn-day1-ocl
  • e2e-vsphere-mco-tp-longduration
  • update-amis

Has been moved to candidate instead since I'm not sure they should have been standard by default. The cloud jobs should be stable enough, and is intended to serve as our component readiness for MCO specific tests.

For older context see #3393 and #3094

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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 2, 2026

Walkthrough

The pull request updates job-tier configurations for machine-config-operator (MCO) jobs in the variant registry. The Go code refactors hardcoded tier mappings to use broader defaults with explicit cloud MCO disruptive job overrides, while the YAML snapshot reflects corresponding tier reassignments across multiple periodic job entries.

Changes

Cohort / File(s) Summary
Job-tier logic refactoring
pkg/variantregistry/ocp.go
Removed hardcoded MCO job-tier mappings for metal/vsphere and OCL jobs; replaced with tiered defaults: releases 4.19/4.20 remain candidate, cloud disruptive jobs (e2e-aws-mco-disruptive, e2e-azure-mco-disruptive, e2e-gcp-mco-disruptive) set to standard, and all other MCO periodic jobs default to candidate. Comments updated to reflect new logic.
Job-tier configuration snapshot
pkg/variantregistry/snapshot.yaml
Updated JobTier values across 75 lines of periodic job snapshot entries, with mixed reassignments from candidate to standard and vice versa, systematically aligning configuration with updated tier logic.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Go Error Handling ✅ Passed The PR modifies job-tier mapping logic in ocp.go and YAML configuration. The modified code contains no error handling patterns, error wrapping, panic calls, or unsafe pointer operations.
Sql Injection Prevention ✅ Passed The SQL Injection Prevention check is not applicable to this PR. Changes are confined to hardcoded job-tier mapping patterns and YAML configuration with no SQL query construction or database operations.
Excessive Css In React Should Use Styles ✅ Passed This check is not applicable to the PR as it exclusively modifies Go backend files, not React components.
Single Responsibility And Clear Naming ✅ Passed The setJobTier method maintains single responsibility by focusing solely on job tier classification based on patterns, uses clear naming consistent with established codebase conventions, and preserves package cohesion without introducing generic or miscellaneous functionality.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.11.4)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


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

@openshift-ci openshift-ci bot requested review from deads2k and petr-muller April 2, 2026 18:29
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 2, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: yuqi-zhang
Once this PR has been reviewed and has the lgtm label, please assign petr-muller 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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
pkg/variantregistry/ocp.go (1)

758-759: Align matcher scope with the “periodic jobs” intent.

Line 759 matches any job containing machine-config-operator, while the comment on Line 758 says periodic jobs only. Consider narrowing this pattern to periodic job names to avoid accidental tiering of non-periodic jobs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/variantregistry/ocp.go` around lines 758 - 759, The matcher entry
{[]string{"machine-config-operator"}, "candidate"} is too broad and will match
non-periodic jobs; narrow the pattern to only periodic job names by replacing
that token with a periodic-specific matcher (for example change to the periodic
suffix or an anchored regex such as matching "-periodic" jobs) in the
pkg/variantregistry/ocp.go entry so only jobs intended as "periodic" (e.g.,
names like machine-config-operator-*-periodic) are tiered to "candidate".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/variantregistry/ocp.go`:
- Around line 748-756: The candidate match for
machine-config-operator-release-4.19/4.20 is shadowing the more specific cloud
disruptive overrides; move the cloud disruptive entries
({[]string{"e2e-aws-mco-disruptive"}, "standard"},
{[]string{"e2e-azure-mco-disruptive"}, "standard"},
{[]string{"e2e-gcp-mco-disruptive"}, "standard"}) so they appear before the
generic machine-config-operator-release-4.19 and -4.20 candidate entries in the
variant matching list, ensuring the specific "standard" overrides are evaluated
first.

---

Nitpick comments:
In `@pkg/variantregistry/ocp.go`:
- Around line 758-759: The matcher entry {[]string{"machine-config-operator"},
"candidate"} is too broad and will match non-periodic jobs; narrow the pattern
to only periodic job names by replacing that token with a periodic-specific
matcher (for example change to the periodic suffix or an anchored regex such as
matching "-periodic" jobs) in the pkg/variantregistry/ocp.go entry so only jobs
intended as "periodic" (e.g., names like machine-config-operator-*-periodic) are
tiered to "candidate".
🪄 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), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 38f91db3-36cb-4fba-bdf0-61d72c900209

📥 Commits

Reviewing files that changed from the base of the PR and between 2b15254 and cd35061.

📒 Files selected for processing (2)
  • pkg/variantregistry/ocp.go
  • pkg/variantregistry/snapshot.yaml

Comment on lines +748 to +756
// All 4.19/4.20 MCO jobs default to candidate
{[]string{"machine-config-operator-release-4.19"}, "candidate"},
{[]string{"machine-config-operator-release-4.20"}, "candidate"},

// Set remaining periodic MCO jobs to standard for component readiness
{[]string{"-mco-disruptive"}, "candidate"},
// Cloud MCO disruptive jobs set to standard for component readiness
// This also includes techpreview variants
{[]string{"e2e-aws-mco-disruptive"}, "standard"},
{[]string{"e2e-azure-mco-disruptive"}, "standard"},
{[]string{"e2e-gcp-mco-disruptive"}, "standard"},
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot Apr 2, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Cloud standard overrides are currently shadowed by earlier candidate matches.

On Line 749 and Line 750, the function returns candidate before Line 754–756 can match, so 4.19/4.20 cloud disruptive MCO jobs won’t be classified as standard.

Proposed fix (reorder patterns so specific cloud overrides run first)
-		// All 4.19/4.20 MCO jobs default to candidate
-		{[]string{"machine-config-operator-release-4.19"}, "candidate"},
-		{[]string{"machine-config-operator-release-4.20"}, "candidate"},
-
 		// Cloud MCO disruptive jobs set to standard for component readiness
 		// This also includes techpreview variants
 		{[]string{"e2e-aws-mco-disruptive"}, "standard"},
 		{[]string{"e2e-azure-mco-disruptive"}, "standard"},
 		{[]string{"e2e-gcp-mco-disruptive"}, "standard"},
+
+		// All 4.19/4.20 MCO jobs default to candidate
+		{[]string{"machine-config-operator-release-4.19"}, "candidate"},
+		{[]string{"machine-config-operator-release-4.20"}, "candidate"},
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// All 4.19/4.20 MCO jobs default to candidate
{[]string{"machine-config-operator-release-4.19"}, "candidate"},
{[]string{"machine-config-operator-release-4.20"}, "candidate"},
// Set remaining periodic MCO jobs to standard for component readiness
{[]string{"-mco-disruptive"}, "candidate"},
// Cloud MCO disruptive jobs set to standard for component readiness
// This also includes techpreview variants
{[]string{"e2e-aws-mco-disruptive"}, "standard"},
{[]string{"e2e-azure-mco-disruptive"}, "standard"},
{[]string{"e2e-gcp-mco-disruptive"}, "standard"},
// Cloud MCO disruptive jobs set to standard for component readiness
// This also includes techpreview variants
{[]string{"e2e-aws-mco-disruptive"}, "standard"},
{[]string{"e2e-azure-mco-disruptive"}, "standard"},
{[]string{"e2e-gcp-mco-disruptive"}, "standard"},
// All 4.19/4.20 MCO jobs default to candidate
{[]string{"machine-config-operator-release-4.19"}, "candidate"},
{[]string{"machine-config-operator-release-4.20"}, "candidate"},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/variantregistry/ocp.go` around lines 748 - 756, The candidate match for
machine-config-operator-release-4.19/4.20 is shadowing the more specific cloud
disruptive overrides; move the cloud disruptive entries
({[]string{"e2e-aws-mco-disruptive"}, "standard"},
{[]string{"e2e-azure-mco-disruptive"}, "standard"},
{[]string{"e2e-gcp-mco-disruptive"}, "standard"}) so they appear before the
generic machine-config-operator-release-4.19 and -4.20 candidate entries in the
variant matching list, ensuring the specific "standard" overrides are evaluated
first.

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.

This is the behaviour we want. 4.19/4.20 cloud test are not stable enough for standard.

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.

@yuqi-zhang, understood — the ordering is intentional so that 4.19/4.20 cloud MCO jobs are caught first and kept as candidate, while the cloud standard entries only apply to non-4.19/4.20 releases. Thanks for the clarification!


📝 Learnings were identified and not saved (knowledge base disabled). Enable

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 2, 2026

@yuqi-zhang: 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/prow/lint cd35061 link true /test lint

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.

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