Skip to content

INTEROP-9402: Add MAP_TESTS support to Quay and ACM step refs - #82881

Merged
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
amiskin94:map-tests-quay-acm-refs
Aug 5, 2026
Merged

INTEROP-9402: Add MAP_TESTS support to Quay and ACM step refs#82881
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
amiskin94:map-tests-quay-acm-refs

Conversation

@amiskin94

@amiskin94 amiskin94 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add MAP_TESTS and DR__RP__CR_COMP_NAME env vars to 4 step refs used by the OPP multi-LP job, enabling Component Readiness junit suite name remapping via ExitTrap--PostProcessPrep
  • Quay: quay-tests-quay-interop-test — MAP_TESTS block chained with existing copyArtifacts EXIT trap
  • ACM: acm-tests-observability, acm-tests-grc, acm-tests-alc — MAP_TESTS block added at script top

Details

When MAP_TESTS=true (set at job level by PR #82839), each ref downloads and sources ExitTrap--PostProcessPrep.sh to rename junit test suite names to ${DR__RP__CR_COMP_NAME}--%s. The ci-test-mapping SuiteRegEx patterns (PR #799) then route these to per-product CR components.

Defaults (MAP_TESTS=false) preserve existing behavior — no functional change unless explicitly enabled.

Related

Test plan

  • Verify MAP_TESTS=false (default) preserves existing behavior for all 4 refs
  • Verify MAP_TESTS=true correctly renames junit suite names in ARTIFACT_DIR
  • Verify Quay ref chains copyArtifacts + ExitTrap correctly on EXIT
  • Job rehearsal with OPP AWS job to validate end-to-end CR routing

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Adds optional Component Readiness JUnit suite-name mapping to three ACM test steps and the Quay interop test step.
  • When MAP_TESTS=true, each step downloads and loads ExitTrap--PostProcessPrep.sh with wget or curl, using download timeouts.
  • Skips JUnit remapping with a warning if the helper is unavailable.
  • Uses DR__RP__CR_COMP_NAME for component-based result routing.
  • Preserves existing behavior when MAP_TESTS=false.
  • Keeps the Quay artifact-copy cleanup trap active after test mapping.
  • Adds a 15-minute grace period to the ACM test steps so EXIT traps can run before pod termination.
  • Adds configuration defaults and documentation for the new environment variables.

Enable Component Readiness junit suite name remapping for the OPP
multi-LP job by adding MAP_TESTS and DR__RP__CR_COMP_NAME env vars
to the Quay interop test ref and three ACM test refs (observability,
grc, alc). When MAP_TESTS=true, each ref sources
ExitTrap--PostProcessPrep to rename junit suites for CR routing.

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

openshift-ci-robot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

@amiskin94: This pull request references INTEROP-9402 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 sub-task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add MAP_TESTS and DR__RP__CR_COMP_NAME env vars to 4 step refs used by the OPP multi-LP job, enabling Component Readiness junit suite name remapping via ExitTrap--PostProcessPrep
  • Quay: quay-tests-quay-interop-test — MAP_TESTS block chained with existing copyArtifacts EXIT trap
  • ACM: acm-tests-observability, acm-tests-grc, acm-tests-alc — MAP_TESTS block added at script top

Details

When MAP_TESTS=true (set at job level by PR #82839), each ref downloads and sources ExitTrap--PostProcessPrep.sh to rename junit test suite names to ${DR__RP__CR_COMP_NAME}--%s. The ci-test-mapping SuiteRegEx patterns (PR #799) then route these to per-product CR components.

Defaults (MAP_TESTS=false) preserve existing behavior — no functional change unless explicitly enabled.

Related

Test plan

  • Verify MAP_TESTS=false (default) preserves existing behavior for all 4 refs
  • Verify MAP_TESTS=true correctly renames junit suite names in ARTIFACT_DIR
  • Verify Quay ref chains copyArtifacts + ExitTrap correctly on EXIT
  • Job rehearsal with OPP AWS job to validate end-to-end CR routing

🤖 Generated with Claude Code

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 Aug 4, 2026
@openshift-ci
openshift-ci Bot requested review from chaclark1974 and jbpratt August 4, 2026 11:16
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@amiskin94, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

could not determine changed registry steps: could not load step registry: [test `acm-tests-observability` has `commands` containing `trap` command, but test step is missing grace_period, test `acm-tests-grc` has `commands` containing `trap` command, but test step is missing grace_period, test `acm-tests-alc` has `commands` containing `trap` command, but test step is missing grace_period]
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro Plus

Run ID: 1097fe57-8c5e-47c2-a041-c640c9358508

📥 Commits

Reviewing files that changed from the base of the PR and between 91081dc and 62426a4.

📒 Files selected for processing (4)
  • ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh
  • ci-operator/step-registry/acm/tests/grc/acm-tests-grc-commands.sh
  • ci-operator/step-registry/acm/tests/observability/acm-tests-observability-commands.sh
  • ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-commands.sh
🚧 Files skipped from review as they are similar to previous changes (4)
  • ci-operator/step-registry/acm/tests/grc/acm-tests-grc-commands.sh
  • ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh
  • ci-operator/step-registry/acm/tests/observability/acm-tests-observability-commands.sh
  • ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-commands.sh

Walkthrough

ACM and Quay test steps add MAP_TESTS configuration, Component Readiness naming, and shared exit-trap processing for mapped JUnit results. Quay interop tests also enable inherited errexit behavior.

Changes

Mapped test processing

Layer / File(s) Summary
ACM mapped-test configuration and processing
ci-operator/step-registry/acm/tests/{alc,grc,observability}/*
ACM test steps add 15-minute grace periods and Component Readiness parameters. When MAP_TESTS=true, the command scripts load the shared helper and register component-specific EXIT traps.
Quay mapped artifact processing
ci-operator/step-registry/quay-tests/quay-interop-test/*
Quay interop tests add mapping parameters, enable inherited errexit, and select mapped or direct artifact cleanup based on MAP_TESTS.

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

Suggested reviewers: jbpratt, chaclark1974

Sequence Diagram(s)

sequenceDiagram
  participant TestStep
  participant WgetOrCurl
  participant ExitTrapPostProcessPrep
  participant ArtifactStorage
  TestStep->>WgetOrCurl: Download shared helper when MAP_TESTS is true
  WgetOrCurl-->>TestStep: Return helper script
  TestStep->>ExitTrapPostProcessPrep: Register component-specific EXIT trap
  TestStep->>ArtifactStorage: Copy test artifacts
  ExitTrapPostProcessPrep-->>TestStep: Process mapped test results and artifacts on exit
Loading
🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning When MAP_TESTS=true, all four test steps download ExitTrap--PostProcessPrep.sh from raw.githubusercontent.com, a public internet dependency unavailable in disconnected CI. Use an internal mirror or cluster-local source for the helper, or disable/skip MAP_TESTS in disconnected jobs.
✅ Passed checks (14 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 main change: adding MAP_TESTS support to Quay and ACM step references.
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 shell scripts and YAML refs; no Ginkgo test declarations or test titles are added or modified.
Test Structure And Quality ✅ Passed The commit changes only four shell scripts; no Ginkgo test code or It blocks are present, so these test-quality requirements are not applicable.
Microshift Test Compatibility ✅ Passed The PR changes only eight ACM/Quay shell and YAML step-registry files; no new Go files or Ginkgo It, Describe, Context, or When tests were added.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The full PR range changes only four shell and four YAML step-registry files; no Ginkgo test declarations or topology-sensitive tests were added.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only CI shell scripts and step-ref YAML for test execution, timeouts, grace periods, and environment variables; no workload manifests or topology-dependent scheduling constraints wer...
Ote Binary Stdout Contract ✅ Passed The patch changes four Bash CI step scripts only; it adds no Go/OTE binary code or process-level suite setup, so the OTE stdout contract check is not applicable.
No-Weak-Crypto ✅ Passed The complete PR diff and sourced helper contain no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret/token comparisons.
Container-Privileges ✅ Passed The PR adds scripts, environment variables, and grace periods only; its patch contains no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root settings.
No-Sensitive-Data-In-Logs ✅ Passed Added logging is limited to static warnings; the fixed public helper URL and component name contain no passwords, tokens, PII, or customer data.
✨ 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.

The CI registry requires grace_period when a script uses trap commands,
so the EXIT handler has time to run before the pod is killed.

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: 2

🤖 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 `@ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh`:
- Around line 7-15: Replace the direct eval-based helper acquisition before the
ExitTrap--PostProcessPrep trap in
ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh lines 7-15,
ci-operator/step-registry/acm/tests/grc/acm-tests-grc-commands.sh lines 7-15,
ci-operator/step-registry/acm/tests/observability/acm-tests-observability-commands.sh
lines 5-13, and
ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-commands.sh
lines 40-49 with a temporary-file download using bounded connection and total
timeouts plus retry settings; verify the download succeeds before
sourcing/evaluating it and registering the EXIT trap.
- Around line 7-15: Replace the mutable main-branch downloads executed by eval
in ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh:7-15,
ci-operator/step-registry/acm/tests/grc/acm-tests-grc-commands.sh:7-15,
ci-operator/step-registry/acm/tests/observability/acm-tests-observability-commands.sh:5-13,
and
ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-commands.sh:40-49
with a repository-controlled helper or an immutable commit fetch. Verify the
downloaded content against a checked-in digest before sourcing or executing it,
while preserving the existing ExitTrap--PostProcessPrep setup and trap behavior.
🪄 Autofix

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: 39a632b1-c692-4b6b-bc5f-f1c0bf5154fc

📥 Commits

Reviewing files that changed from the base of the PR and between b2b0b8d and d99cf5f.

📒 Files selected for processing (8)
  • ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh
  • ci-operator/step-registry/acm/tests/alc/acm-tests-alc-ref.yaml
  • ci-operator/step-registry/acm/tests/grc/acm-tests-grc-commands.sh
  • ci-operator/step-registry/acm/tests/grc/acm-tests-grc-ref.yaml
  • ci-operator/step-registry/acm/tests/observability/acm-tests-observability-commands.sh
  • ci-operator/step-registry/acm/tests/observability/acm-tests-observability-ref.yaml
  • ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-commands.sh
  • ci-operator/step-registry/quay-tests/quay-interop-test/quay-tests-quay-interop-test-ref.yaml

Comment thread ci-operator/step-registry/acm/tests/alc/acm-tests-alc-commands.sh Outdated
Addresses CodeRabbit review feedback: adds --connect-timeout/--max-time
(curl) and --timeout (wget) to bound the ExitTrap--PostProcessPrep
download, and validates the function exists before installing the EXIT
trap — gracefully degrading if the download fails.

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

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@amiskin94: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
periodic-ci-stolostron-acmqe-autotest-main-acm-ocp4.14-lp-interop-acm-interop-aws N/A periodic Registry content changed
periodic-ci-stolostron-acmqe-autotest-main-acm-ocp4.17-lp-interop-acm-interop-aws N/A periodic Registry content changed
periodic-ci-RedHatQE-interop-testing-master-acm-cnv-ocp-4.22-p2p-lp-interop-aws N/A periodic Registry content changed
periodic-ci-stolostron-policy-collection-main-ocp5.0-interop-opp-vsphere N/A periodic Registry content changed
periodic-ci-stolostron-policy-collection-main-ocp4.22-interop-opp-aws N/A periodic Registry content changed
periodic-ci-stolostron-acmqe-autotest-main-acm-ocp4.15-lp-interop-acm-interop-aws N/A periodic Registry content changed
periodic-ci-stolostron-acmqe-autotest-main-acm-ocp4.16-lp-interop-acm-interop-aws N/A periodic Registry content changed
periodic-ci-stolostron-policy-collection-main-ocp5.0-interop-opp-aws N/A periodic Registry content changed
periodic-ci-RedHatQE-interop-testing-master-acm-cnv-ocp-4.21-p2p-lp-interop-aws N/A periodic Registry content changed
periodic-ci-stolostron-policy-collection-main-ocp4.22-interop-opp-vsphere N/A periodic Registry content changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-ci

openshift-ci Bot commented Aug 5, 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.

@jbpratt

jbpratt commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

/lgtm

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

jbpratt commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

/approve

@vboulos

vboulos commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci

openshift-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amiskin94, jbpratt, vboulos

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:

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 approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 5, 2026
@amiskin94

Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Aug 5, 2026
@openshift-merge-bot
openshift-merge-bot Bot merged commit 4da144b into openshift:main Aug 5, 2026
11 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. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants