Skip to content

TMP: do not merge - #83123

Closed
maxcao13 wants to merge 1 commit into
openshift:mainfrom
maxcao13:cro-s390x-poc
Closed

TMP: do not merge#83123
maxcao13 wants to merge 1 commit into
openshift:mainfrom
maxcao13:cro-s390x-poc

Conversation

@maxcao13

@maxcao13 maxcao13 commented Aug 7, 2026

Copy link
Copy Markdown
Member

POC of s390x tests for clusterresourceoverride

Summary by CodeRabbit

This PR adds s390x CI configuration for the ClusterResourceOverride admission operator. The configuration supports RHEL 9 builds, s390x release candidates, and a scheduled libvirt-based end-to-end workflow. The workflow installs the operator from a CatalogSource, verifies readiness, creates a ClusterResourceOverride resource, and runs e2e tests without upgrades.

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Aug 7, 2026
@openshift-ci

openshift-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Adds s390x CI configuration for the ClusterResourceOverride admission operator. It defines build inputs, release candidates, resource defaults, repository metadata, and a scheduled libvirt workflow that installs the operator and runs e2e tests.

Changes

s390x operator CI

Layer / File(s) Summary
Build and workflow foundation
ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml
Adds s390x base images, RHEL 9 build input, nightly release candidates, resource defaults, scheduled workflow settings, and repository metadata.
Operator installation and readiness
ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml
Creates the namespace and OperatorGroup, installs the operator from redhat-operators, waits for CSV and deployment readiness, and applies a ClusterResourceOverride.
End-to-end validation
ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml
Validates operator readiness, configures the Kubernetes CLI, and runs make e2e with upgrade tests skipped.

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

Sequence Diagram(s)

sequenceDiagram
  participant CIWorkflow
  participant OpenShiftCluster
  participant CatalogSource
  participant OperatorDeployment
  participant E2ETests
  CIWorkflow->>OpenShiftCluster: create namespace
  CIWorkflow->>CatalogSource: create Subscription from redhat-operators
  CatalogSource-->>OpenShiftCluster: install operator CSV
  OpenShiftCluster-->>OperatorDeployment: create operator deployment
  OperatorDeployment-->>CIWorkflow: report readiness
  CIWorkflow->>OpenShiftCluster: apply ClusterResourceOverride
  CIWorkflow->>E2ETests: run make e2e with upgrades skipped
  E2ETests->>OpenShiftCluster: execute e2e tests
Loading

Important

Pre-merge checks failed

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

❌ Failed checks (1 error, 1 warning, 1 inconclusive)

Check name Status Explanation Resolution
No-Sensitive-Data-In-Logs ❌ Error The install step logs oc get deployment,pods -n "${NS}" -o wide at line 120; CI output can include pod IPs and node/internal hostnames. Replace -o wide with minimal status output, or redact pod IP and node fields before writing the result to CI logs.
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning The added e2e job installs from the redhat-operators CatalogSource (lines 72–81) before make e2e (line 140), creating a public-registry dependency; no IPv4 literals were added. Use an internal or mirrored CatalogSource. Otherwise add [Skipped:Disconnected] and verify with the required IPv6 disconnected CI job.
Title check ❓ Inconclusive The title identifies the pull request as temporary but does not describe the s390x ClusterResourceOverride CI configuration. Replace the temporary title with a concise description, such as “Add s390x ClusterResourceOverride admission operator CI configuration.”
✅ Passed checks (12 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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 patch adds only CI YAML files; it introduces no Ginkgo declarations or test titles, and only invokes the existing make e2e suite.
Test Structure And Quality ✅ Passed The patch adds only YAML CI and generated Prow job files; it adds no Ginkgo It blocks, assertions, BeforeEach/AfterEach, Eventually, or Consistently calls to review.
Microshift Test Compatibility ✅ Passed The diff adds only two YAML CI configuration/job files; no Go test files or Ginkgo declarations are added, so this check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The commit adds only CI YAML files. It adds no Ginkgo tests or test source changes, so no SNO multi-node compatibility issue applies.
Topology-Aware Scheduling Compatibility ✅ Passed The commit adds only one CI YAML file. It creates an OLM Subscription and waits for a generated deployment, but adds no pod scheduling constraints or operator/controller code.
Ote Binary Stdout Contract ✅ Passed The PR changes only CI YAML and generated Prow job configuration; no OTE binary, main, init, suite setup, or process-level stdout write was added.
No-Weak-Crypto ✅ Passed The PR changes only two YAML files. Added lines contain CI and oc commands, and a boundary-aware scan found no MD5, SHA1, DES, RC4, Blowfish, ECB, custom crypto, or secret comparisons.
Container-Privileges ✅ Passed The two added YAML files contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root security settings; capabilities: intranet is Prow metadata.
✨ 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 Aug 7, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: maxcao13

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 7, 2026
@maxcao13

maxcao13 commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse pull-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@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/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml`:
- Around line 57-124: Run make update to regenerate the derived Prow
configuration for the new e2e-s390x-operator job, commit all generated output,
and avoid manually editing zz_generated_metadata.
- Around line 33-36: Update the s390x image overrides in the generated cluster
resource override admission operator configuration so PR validation uses the
pipeline-built operator image rather than the released ocp-s390x:5.0 image.
Ensure the operator pullspec resolves to the PR-built image, and document the
job’s released-image compatibility purpose instead if that behavior is
intentional.
🪄 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: Enterprise

Run ID: f159f863-0eb1-4ac5-9c4f-4b4ec6fce5b3

📥 Commits

Reviewing files that changed from the base of the PR and between ccfd628 and e5a030f.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@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
`@ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml`:
- Around line 134-146: Remove the metadata.namespace field from the
ClusterResourceOverride manifest in the oc apply block, while preserving
metadata.name and the existing spec so this cluster-scoped resource applies
successfully.
🪄 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: Enterprise

Run ID: eaf1b16b-7f17-4623-b231-b0aafde2facd

📥 Commits

Reviewing files that changed from the base of the PR and between f031e0a and ae07caa.

⛔ Files ignored due to path filters (2)
  • ci-operator/jobs/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml

Comment on lines +134 to +146
cat <<EOF | oc apply -f -
apiVersion: operator.autoscaling.openshift.io/v1
kind: ClusterResourceOverride
metadata:
name: cluster
namespace: ${NS}
spec:
podResourceOverride:
spec:
memoryRequestToLimitPercent: 50
cpuRequestToLimitPercent: 25
limitCPUToMemoryPercent: 200
EOF

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

Remove the namespace from the cluster-scoped resource.

ClusterResourceOverride is cluster-scoped. metadata.namespace: ${NS} makes oc apply reject the object. set -euo pipefail then stops the install step before e2e starts. The canonical workflow applies the same resource without a namespace.

Proposed fix
         metadata:
           name: cluster
-          namespace: ${NS}
         spec:
📝 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
cat <<EOF | oc apply -f -
apiVersion: operator.autoscaling.openshift.io/v1
kind: ClusterResourceOverride
metadata:
name: cluster
namespace: ${NS}
spec:
podResourceOverride:
spec:
memoryRequestToLimitPercent: 50
cpuRequestToLimitPercent: 25
limitCPUToMemoryPercent: 200
EOF
cat <<EOF | oc apply -f -
apiVersion: operator.autoscaling.openshift.io/v1
kind: ClusterResourceOverride
metadata:
name: cluster
spec:
podResourceOverride:
spec:
memoryRequestToLimitPercent: 50
cpuRequestToLimitPercent: 25
limitCPUToMemoryPercent: 200
EOF
🤖 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/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml`
around lines 134 - 146, Remove the metadata.namespace field from the
ClusterResourceOverride manifest in the oc apply block, while preserving
metadata.name and the existing spec so this cluster-scoped resource applies
successfully.

@maxcao13

maxcao13 commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse periodic-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@maxcao13: your /pj-rehearse request was not processed because the request waited in queue for longer than 5 minutes. Please retry in a few minutes.

@maxcao13

maxcao13 commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse periodic-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@maxcao13, pj-rehearse: unable to set up jobs ERROR:

failed resolve ReleaseBuildConfiguration: Failed resolve MultiStageTestConfiguration: test/e2e-s390x-operator: workflow/openshift-e2e-libvirt-vpn: parameter "CRO_CATALOG_IMAGE" is overridden in [test/e2e-s390x-operator] but not declared in any step

If the problem persists, please contact Test Platform.

Signed-off-by: Max Cao <macao@redhat.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@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
`@ci-operator/config/openshift/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml`:
- Around line 58-82: Add a least-privilege NetworkPolicy to the heredoc applied
after namespace creation for `${NS}`, targeting the OLM-managed operator pods
and allowing only the ingress and egress traffic required by the test. Keep the
existing OperatorGroup and Subscription resources unchanged, and ensure the
policy is defined within `${NS}`.
🪄 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: Enterprise

Run ID: ddde6f06-484b-4bee-8303-883def3f5438

📥 Commits

Reviewing files that changed from the base of the PR and between 8aae492 and b5a0712.

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

Comment on lines +58 to +82
NS=openshift-cluster-resource-override
oc create ns "${NS}"

cat <<EOF | oc apply -f -
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: clusterresourceoverride-operator
namespace: ${NS}
spec:
targetNamespaces:
- ${NS}
---
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: clusterresourceoverride
namespace: ${NS}
spec:
channel: stable
installPlanApproval: Automatic
name: clusterresourceoverride
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF

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.

🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

Define a NetworkPolicy for ${NS}.

Line 59 creates a namespace for OLM-managed pods. The configuration does not define a NetworkPolicy for that namespace. Add a least-privilege NetworkPolicy that permits only the operator traffic that the test requires.

As per path instructions, “NetworkPolicy defined for the namespace.”

🤖 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/cluster-resource-override-admission-operator/openshift-cluster-resource-override-admission-operator-main__s390x.yaml`
around lines 58 - 82, Add a least-privilege NetworkPolicy to the heredoc applied
after namespace creation for `${NS}`, targeting the OLM-managed operator pods
and allowing only the ingress and egress traffic required by the test. Keep the
existing OperatorGroup and Subscription resources unchanged, and ensure the
policy is defined within `${NS}`.

Source: Path instructions

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@maxcao13: 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-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator N/A periodic Periodic 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.

@maxcao13

maxcao13 commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

/pj-rehearse periodic-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-ci

openshift-ci Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

@maxcao13: The following tests 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/openshift/cluster-resource-override-admission-operator/main/s390x-e2e-s390x-operator e5a030f link unknown /pj-rehearse pull-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator
ci/rehearse/periodic-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator b5a0712 link unknown /pj-rehearse periodic-ci-openshift-cluster-resource-override-admission-operator-main-s390x-e2e-s390x-operator

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

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant