Skip to content

Add ODF lp-interop variant and CR view for OCP 4.22 - #3850

Closed
amiskin94 wants to merge 2 commits into
openshift:mainfrom
amiskin94:cr-onboarding--odf
Closed

Add ODF lp-interop variant and CR view for OCP 4.22#3850
amiskin94 wants to merge 2 commits into
openshift:mainfrom
amiskin94:cr-onboarding--odf

Conversation

@amiskin94

@amiskin94 amiskin94 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds layeredProductPatterns entry for ODF lp-interop CR jobs (lp-interop--odf--lpGA)
  • Creates 4.22-LP-Interop--lpGA Component Readiness view with Owner: mpiit
  • Adds test case for the generated job name pattern

Details

Part of Epic INTEROP-9202 (Integrate Component Readiness Reporting into OPP Testing).

Changes:

  • pkg/variantregistry/ocp.go: New pattern {"-lpga-lp-interop-cr--odf--", "lp-interop--odf--lpGA"}
  • config/views.yaml: New 4.22-LP-Interop--lpGA view (base: 4.21 GA, sample: 4.22 now)
  • pkg/variantregistry/ocp_test.go: Test case for periodic-ci-red-hat-storage-ocs-ci-master-odf-ocp-4.22-lpGA-lp-interop-cr--odf--aws

Companion to openshift/release#82653.

Jira: INTEROP-9280

Test plan

  • TestVariantSyncer passes with new test case
  • TestVariantsSnapshot unaffected (no existing jobs match new pattern)
  • View renders correctly in Sippy CR dashboard

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added component readiness tracking for 4.22 LP Interop releases with targeted variant filtering and updated evaluation settings.
    • Improved classification of LP Interop ODF jobs, including release, platform, networking, ownership, and layered product details.
  • Tests
    • Added coverage validating variant detection for an LP Interop ODF job.
  • Bug Fixes
    • Corrected layered product mapping for LP Interop job patterns.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Changes

LP Interop readiness

Layer / File(s) Summary
Layered-product mapping and validation
pkg/variantregistry/ocp.go, pkg/variantregistry/ocp_test.go
LP Interop LPGA job names map to lp-interop--odf--lpGA. The test verifies the parsed and defaulted variants.
Component readiness view
config/views.yaml
Adds the 4.22-LP-Interop--lpGA view with release windows, filters, thresholds, and feature toggles.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • openshift/sippy#3830: Updates related LP Interop readiness views and layered-product job mappings.

Suggested reviewers: deads2k, petr-muller, dgoodwin


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Stable And Deterministic Test Names ❌ Error The added case uses t.Run(test.job), so its title is the full, overly specific Prow job identifier rather than a stable descriptive test name. Add a static name field, such as "ODF lp-interop CR job maps the layered product", and use it for t.Run; keep the full job string only as test data.
✅ Passed checks (20 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the added ODF lp-interop variant support and Component Readiness view for OCP 4.22.
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.
Go Error Handling ✅ Passed The Go diff only changes a string pattern and a test job name; it adds no ignored errors, panic calls, error paths, or pointer dereferences.
Sql Injection Prevention ✅ Passed The PR changes only YAML and job-name variant mapping/test data; it adds no SQL construction, and existing view filters use BigQuery QueryParameters.
Excessive Css In React Should Use Styles ✅ Passed The PR changes only config/views.yaml and Go files; it adds no React components or JSX inline style objects to assess.
Test Coverage For New Features ✅ Passed The new pattern has a TestVariantSyncer case for the renamed job, asserting LayeredProduct; the view change is configuration-only and exempt.
Single Responsibility And Clear Naming ✅ Passed The PR adds a focused layered-product pattern, an explicit LP Interop view name, and a targeted test; it introduces no generic packages, structs, or methods.
Feature Documentation ✅ Passed The PR changes only variant mapping, tests, and YAML views; no relevant feature document exists under docs/features, and documentation updates are encouraged but not required.
Test Structure And Quality ✅ Passed The PR adds a standard Go table-driven test with testify, not Ginkgo; it uses no cluster resources or waits, so the Ginkgo-specific criteria do not apply.
Microshift Test Compatibility ✅ Passed The PR adds no Ginkgo e2e tests. The changed test is a standard table-driven Go testing test and references no MicroShift-unavailable APIs or namespaces.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR adds only a table-driven Go unit test and YAML/variant parsing changes; it adds no Ginkgo e2e test or multi-node cluster behavior.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only a reporting view and variant-registry mapping/tests; it adds no deployment, operator, controller, pod, affinity, replica, selector, taint, or PDB scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The PR changes only variant-registry files; no OTE binary or suite APIs exist, and the touched files contain no process-level stdout writes.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The PR adds configuration and a standard Go table-driven TestVariantSyncer case. It adds no Ginkgo e2e test, IPv4 address handling, or external connectivity.
No-Weak-Crypto ✅ Passed The complete PR delta adds YAML view settings, a job-name mapping, and test data; it introduces no weak crypto, crypto APIs, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The PR changes one view configuration and Go source/test files; the diff adds no Kubernetes/container manifest or privilege-sensitive setting.
No-Sensitive-Data-In-Logs ✅ Passed The complete PR diff adds no logging calls or sensitive values; it only adds a matcher, a view, and test data. Existing logs are unchanged.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci
openshift-ci Bot requested review from deads2k and petr-muller July 30, 2026 07:16
@openshift-ci

openshift-ci Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: amiskin94
Once this PR has been reviewed and has the lgtm label, please assign dgoodwin 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 added the ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review label Jul 30, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

@amiskin94
amiskin94 force-pushed the cr-onboarding--odf branch from 8894574 to 9d065a7 Compare July 30, 2026 08:15
Adds layeredProductPatterns entry for ODF lp-interop CR jobs,
a 4.22-LP-Interop--lpGA Component Readiness view, and a test case
for the new job name pattern.

Part of INTEROP-9280.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@amiskin94
amiskin94 force-pushed the cr-onboarding--odf branch from 9d065a7 to 8a8430e Compare July 30, 2026 17:26

@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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/variantregistry/ocp.go (1)

854-855: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add regression cases for all new pattern mappings.

pkg/variantregistry/ocp_test.go covers the ACM and ODF additions, but not -vcf-migration or -coo-. Add table entries asserting VariantJobTier == "candidate" and VariantLayeredProduct == "lp-interop-coo" respectively.

As per coding guidelines, new or modified functionality should include test coverage.

Also applies to: 1371-1374

🤖 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 `@pkg/variantregistry/ocp.go` around lines 854 - 855, Add regression table
entries in the variant registry tests for both new mappings: assert the
“-vcf-migration” pattern resolves to VariantJobTier “candidate”, and the “-coo-”
pattern resolves to VariantLayeredProduct “lp-interop-coo”. Extend the existing
test table and reuse its established assertion structure.

Source: Coding guidelines

🤖 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.

Outside diff comments:
In `@pkg/variantregistry/ocp.go`:
- Around line 854-855: Add regression table entries in the variant registry
tests for both new mappings: assert the “-vcf-migration” pattern resolves to
VariantJobTier “candidate”, and the “-coo-” pattern resolves to
VariantLayeredProduct “lp-interop-coo”. Extend the existing test table and reuse
its established assertion structure.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 894550b2-9c52-4394-a72a-949ca6f230df

📥 Commits

Reviewing files that changed from the base of the PR and between 9d065a7 and 8a8430e.

📒 Files selected for processing (3)
  • config/views.yaml
  • pkg/variantregistry/ocp.go
  • pkg/variantregistry/ocp_test.go

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

The openshift/release PR renamed the test from cr--odf--aws to cr--aws
(removing redundant product name from test). Update the variant registry
pattern and test case to match the new job name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@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.

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 `@pkg/variantregistry/ocp.go`:
- Line 1371: Narrow the ODF pattern in the setLayeredProduct match table so
“-lpga-lp-interop-cr--” does not classify every LP Interop job as ODF. Make the
entry explicitly ODF-specific, or move the later “-coo-”, “-acm-cnv-”, and
“-acm-virt-” product patterns ahead of it while preserving their intended
matches.
🪄 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: Pro Plus

Run ID: 7eee6795-3f1b-4a85-abba-6edff4e46141

📥 Commits

Reviewing files that changed from the base of the PR and between 8a8430e and cdfb7b8.

📒 Files selected for processing (2)
  • pkg/variantregistry/ocp.go
  • pkg/variantregistry/ocp_test.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/variantregistry/ocp_test.go

{"-lpga-lp-ocp-compat-cr--oadp-", "lp-ocp-compat--oadp--lpGA"},
{"-lpga-lp-ocp-compat-cr--servicemesh-", "lp-ocp-compat--servicemesh--lpGA"},
{"-lpga-lp-ocp-compat-cr--operator-e2e-", "lp-ocp-compat--serverless--lpGA"},
{"-lpga-lp-interop-cr--", "lp-interop--odf--lpGA"},

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.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

rg -n -C 3 \
  -e 'lpga-lp-interop-cr--' \
  -e 'cr--odf' \
  -e 'cr--aws' \
  -e 'lp-interop' \
  -e 'coo' \
  -e 'acm' \
  .

Repository: openshift/sippy

Length of output: 50372


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== candidate files =="
git ls-files | rg '(^|/)pkg/variantregistry/ocp\.go$|ocp.*test.*\.go$' | sed -n '1,120p'

echo
echo "== relevant ocp.go section =="
sed -n '1330,1390p' pkg/variantregistry/ocp.go

echo
echo "== related tests mentioning layered product variants/patterns =="
rg -n -C 3 'setLayeredProduct|lp-interop|odf|lpga-lp-interop-cr|cr--odf|cr--' pkg/variantregistry -g '*_test.go' | sed -n '1,240p'

echo
echo "== exact pattern entries in ocp.go around lp-interop =="
sed -n '1350,1380p' pkg/variantregistry/ocp.go

Repository: openshift/sippy

Length of output: 7199


Narrow the ODF match before assigning lp-interop--odf--lpGA.

setLayeredProduct returns on the first match, and the -lpga-lp-interop-cr-- entry comes before the later -coo-, -acm-cnv-, and -acm-virt- product matches. Any LP Interop job with that suffix is assigned ODF, including periodic-ci-red-hat-storage-ocs-ci-master-odf-ocp-4.22-lpGA-lp-interop-cr--aws from the test. Make this entry ODF-specific, or reorder the patterns so product-specific entries take precedence.

🤖 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 `@pkg/variantregistry/ocp.go` at line 1371, Narrow the ODF pattern in the
setLayeredProduct match table so “-lpga-lp-interop-cr--” does not classify every
LP Interop job as ODF. Make the entry explicitly ODF-specific, or move the later
“-coo-”, “-acm-cnv-”, and “-acm-virt-” product patterns ahead of it while
preserving their intended matches.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling required tests:
/test e2e

@openshift-ci

openshift-ci Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

@amiskin94: 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.

@redhat-chai-bot

redhat-chai-bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Closing this PR in favor of a new Sippy PR that will add layered product patterns for the existing multi-LP OPP job (periodic-ci-stolostron-policy-collection-main-ocp4.22-interop-opp-aws) rather than the standalone single-LP ODF job.

Why: The team pivoted from single-LP testing to leveraging the existing OPP job which already tests ACM + ODF + Quay together (genuine multi-LP interop). Per-product test routing will be handled via ci-test-mapping SuiteRegEx, following the INTEROP-9203 (ACM+Virt) architecture.

What carries forward: Thank you @amiskin94 for the foundational work — the following patterns from this PR directly inform the new approach:

  • layeredProductPatterns entry structure for OPP job name classification
  • CR dashboard view configuration pattern
  • Unit test structure for variant job classification

The new Sippy PR will add layeredProductPatterns entries for the OPP job variants, a CR dashboard view (4.22-LP-Interop--OPP), and unit tests — following the architecture established by sippy#3830.

Tracked by: INTEROP-9280 | Epic: INTEROP-9202


AI-generated. Review for accuracy.

@amiskin94

Copy link
Copy Markdown
Contributor Author

Closing in favor of #3865, which registers the multi-LP OPP variant (lp-interop--OPP) instead of a standalone ODF variant.

Carry-forward contributions from this PR:

  • Sippy layeredProductPatterns approach
  • CR view configuration pattern (base/sample release, variant options)
  • Unit test structure for job name classification

Tracked by: INTEROP-9397 | Epic: INTEROP-9202

@amiskin94 amiskin94 closed this Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human-review Indicates a PR has been reviewed by automated tools and is ready for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants