Skip to content

GitOps | Change cluster architecture#74377

Open
varshab1210 wants to merge 10 commits intoopenshift:mainfrom
varshab1210:change-arch
Open

GitOps | Change cluster architecture#74377
varshab1210 wants to merge 10 commits intoopenshift:mainfrom
varshab1210:change-arch

Conversation

@varshab1210
Copy link
Copy Markdown
Contributor

@varshab1210 varshab1210 commented Feb 4, 2026

Summary by CodeRabbit

  • New Features

    • Added arm64 architecture support across builds, releases and test runs.
  • Improvements

    • Tests now run against arm64 release images and environments.
    • Operator installation failures produce richer diagnostics and fail explicitly for clearer test reporting.
    • Some presubmit jobs updated to mark specific checks as optional.

@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 Feb 4, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Feb 4, 2026

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 4, 2026
@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

1 similar comment
@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Feb 17, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: varshab1210

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/test all

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

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

Signed-off-by: Varsha B <vab@redhat.com>
Signed-off-by: Varsha B <vab@redhat.com>
Signed-off-by: Varsha B <vab@redhat.com>
Signed-off-by: Varsha B <vab@redhat.com>
Signed-off-by: Varsha B <vab@redhat.com>
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 17, 2026

Walkthrough

Adds arm64 architecture support to CI configs and presubmit jobs; updates test environments to use arm64 release images; and augments operator installation steps with failure-handling that prints diagnostic YAML, pod listings/describes, operator logs, and recent namespace events before exiting on error.

Changes

Cohort / File(s) Summary
CI Configs — arm64 build & tests
ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml, ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml
Adds additional_architectures: [arm64] for image builds, declares bundle capabilities: [arm64], and adds releases.arm64-latest (OCP nightly, arm64). Updates kuttl-sequential, kuttl-parallel, and e2e tests to include capabilities: [arm64], set OCP_ARCH: arm64, and OPENSHIFT_INSTALL_RELEASE_IMAGE_OVERRIDE: release:arm64-latest.
Test scripts — operator install diagnostics
ci-operator/config/...__v4.19.yaml, ci-operator/config/...__v4.14.yaml
Wraps operator-sdk run bundle ... in an if ! ...; then ...; exit 1; fi block in kuttl-sequential and kuttl-parallel install steps; on failure prints CSV YAML, pod list, pod describes, operator logs filtered by control-plane=gitops-operator, and recent namespace events before exiting with status 1.
Presubmits — add arm64 label / optional flag
ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml
Adds capability/arm64: arm64 label to multiple presubmit jobs (including ci-index-gitops-operator-bundle, e2e, images, kuttl-parallel, kuttl-sequential) for v4.14 and v4.19; sets optional: true on the v4.14 e2e presubmit.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'GitOps | Change cluster architecture' is vague and generic, using non-descriptive language that doesn't convey the specific nature of the changes (adding arm64 architecture support to CI/operator configurations). Consider a more specific title such as 'Add arm64 architecture support to GitOps operator CI configuration' that clearly indicates the main objective of the changeset.
✅ Passed checks (9 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.
Stable And Deterministic Test Names ✅ Passed The custom check for stable Ginkgo test names is not applicable as this PR only modifies YAML CI configuration files without any Ginkgo test code changes.
Test Structure And Quality ✅ Passed The custom check for Ginkgo test code quality is not applicable to this pull request. The PR modifies only OpenShift CI operator configuration files (YAML) that control how tests are executed, not the actual Ginkgo test code itself.
Microshift Test Compatibility ✅ Passed The PR modifies only CI operator configuration YAML files for arm64 architecture testing without adding new test logic or Ginkgo e2e test code.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies only YAML CI configuration files, not Ginkgo e2e test source code (no .go test files changed).
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI test configuration and Prow job definition files, not operator deployment manifests or controller code.
Ote Binary Stdout Contract ✅ Passed The PR modifies only YAML CI configuration files, not test source code. This check applies only to Go test files that could violate stdout contracts.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This pull request does not add new Ginkgo e2e tests, only CI operator configuration files in YAML format.

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

✨ 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 and usage tips.

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)
ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml (1)

79-92: Confirm this diagnostic scaffolding is intentional for merge.

Given the commit history (diagnostic steps, more diagnostic step, pod diagnostics) and that this PR's stated goal is the arch change, much of this instrumentation looks like temporary debugging for the arm64 bring-up. If that's the case, please strip it (or move to a step-registry ref behind a flag) before un-drafting — otherwise every future failure will dump hundreds of lines of unrelated status into CI logs and make triage harder, not easier. If it's meant to stay, a short comment in the YAML explaining why would help future readers.

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

In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`
around lines 79 - 92, The diagnostic scaffolding (the operator install failure
block that runs the operator-sdk run bundle command and the subsequent oc
commands: oc get csv, oc get pods, oc describe pods, oc logs, oc get events)
appears to be temporary debugging noise; either remove this entire failure dump
before merging, or gate it behind a CI flag/step-registry ref (e.g.,
ENABLE_VERBOSE_DIAGS) and add a short YAML comment above the block explaining
why it exists and when to enable it so future CI failures don’t always produce
huge unrelated logs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`:
- Around line 104-164: The diagnostic shell block is duplicated and should be
extracted into a reusable step-registry script (e.g. create
ci-operator/step-registry/gitops-operator/collect-diagnostics and expose it as a
step ref like gitops-operator/collect-diagnostics), then replace the duplicated
inline blocks in the kuttl-sequential `sequential-e2e-steps` and kuttl-parallel
`parallel-e2e-steps` (and the e2e test) with chain/ref to that step; inside the
extracted script remove the unused variable `container_state` (from where
`container_state=$(oc get pod ... .status.containerStatuses[0].state)` is set),
and fix the faulty check that compares `pod_phase` to container waiting reasons
by either removing the `CrashLoopBackOff`/`Error` comparisons against
`pod_phase` or switching that check to inspect `oc get pod -o
jsonpath='{.status.containerStatuses[*].state.waiting.reason}'` (keeping the
existing `ready_status != "True"` and `restart_count != "0"` checks).

---

Nitpick comments:
In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`:
- Around line 79-92: The diagnostic scaffolding (the operator install failure
block that runs the operator-sdk run bundle command and the subsequent oc
commands: oc get csv, oc get pods, oc describe pods, oc logs, oc get events)
appears to be temporary debugging noise; either remove this entire failure dump
before merging, or gate it behind a CI flag/step-registry ref (e.g.,
ENABLE_VERBOSE_DIAGS) and add a short YAML comment above the block explaining
why it exists and when to enable it so future CI failures don’t always produce
huge unrelated logs.
🪄 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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: b12409a7-fb97-4f5a-8a06-d09c74f0ee64

📥 Commits

Reviewing files that changed from the base of the PR and between 3f85ef2 and 7c4686a.

📒 Files selected for processing (2)
  • ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml
  • ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml

Comment on lines +104 to +164
echo "=== Manager pod is up, checking if operator is reconciling default instance ==="
sleep 10s
echo "=== Check openshift-gitops namespace ==="
oc get namespace openshift-gitops || echo "Namespace openshift-gitops does not exist yet"
echo "=== GitOpsService CR (should be created automatically) ==="
oc get gitopsservices -A -o yaml || echo "No GitOpsService CR found"
echo "=== ArgoCD CRs ==="
oc get argocds -A -o yaml || echo "No ArgoCD CRs found"
echo "=== All resources in openshift-gitops namespace ==="
oc get all -n openshift-gitops 2>/dev/null || echo "No resources in openshift-gitops namespace"
echo "=== Operator Manager Logs (checking for reconciliation activity) ==="
oc logs -n openshift-gitops-operator -l control-plane=gitops-operator -c manager --tail=100 || true
echo "=== Events in openshift-gitops-operator namespace ==="
oc get events -n openshift-gitops-operator --sort-by='.lastTimestamp' | tail -20 || true
echo "=== Events in openshift-gitops namespace (if exists) ==="
oc get events -n openshift-gitops --sort-by='.lastTimestamp' 2>/dev/null | tail -20 || echo "No events in openshift-gitops namespace"
echo "=== Pod Status with Wide Output ==="
oc get pods -n openshift-gitops -o wide || true
echo "=== Detailed Pod Status (Phase and Ready Condition) ==="
oc get pods -n openshift-gitops -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}Phase={.status.phase}{"\t"}Ready={.status.conditions[?(@.type=="Ready")].status}{"\t"}Reason={.status.conditions[?(@.type=="Ready")].reason}{"\t"}Message={.status.conditions[?(@.type=="Ready")].message}{"\n"}{end}' || true
echo "=== All Pod Conditions (to see why pods aren't Ready) ==="
for pod in $(oc get pods -n openshift-gitops -o jsonpath='{.items[*].metadata.name}'); do
echo "--- Conditions for pod: $pod ---"
oc get pod -n openshift-gitops $pod -o jsonpath='{range .status.conditions[*]}{.type}{": "}{.status}{" (Reason: "}{.reason}{", Message: "}{.message}{")\n"}{end}' || true
done
echo "=== Logs from ALL Pods (to identify why Running pods aren't Ready) ==="
for pod in $(oc get pods -n openshift-gitops -o jsonpath='{.items[*].metadata.name}'); do
pod_phase=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown")
ready_status=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}' 2>/dev/null || echo "Unknown")
echo "--- Logs from pod: $pod (Phase: $pod_phase, Ready: $ready_status) ---"
oc logs -n openshift-gitops $pod --all-containers=true --tail=100 || true
echo ""
done
echo "=== Checking ALL Pods for Issues (CrashLoopBackOff, Not Ready, or Error states) ==="
for pod in $(oc get pods -n openshift-gitops -o jsonpath='{.items[*].metadata.name}'); do
pod_phase=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.phase}' 2>/dev/null || echo "Unknown")
ready_status=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}' 2>/dev/null || echo "Unknown")
container_state=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.containerStatuses[0].state}' 2>/dev/null || echo "Unknown")
restart_count=$(oc get pod -n openshift-gitops $pod -o jsonpath='{.status.containerStatuses[0].restartCount}' 2>/dev/null || echo "0")
echo "--- Checking pod: $pod (Phase: $pod_phase, Ready: $ready_status, Restarts: $restart_count) ---"
if [ "$pod_phase" = "CrashLoopBackOff" ] || [ "$pod_phase" = "Error" ] || [ "$ready_status" != "True" ] || [ "$restart_count" != "0" ]; then
echo ">>> Pod $pod has issues - gathering detailed diagnostics <<<"
echo "=== Full pod status (JSON) ==="
oc get pod -n openshift-gitops $pod -o json || true
echo "=== Describe pod: $pod ==="
oc describe pod -n openshift-gitops $pod || true
echo "=== Container Statuses with Detailed State for pod: $pod ==="
oc get pod -n openshift-gitops $pod -o jsonpath='{range .status.containerStatuses[*]}{.name}{":\n"}{" ready="}{.ready}{"\n"}{" restartCount="}{.restartCount}{"\n"}{" state="}{.state}{"\n"}{" lastState="}{.lastState}{"\n"}{end}' || true
echo "=== Container Waiting States (if any containers are waiting) ==="
oc get pod -n openshift-gitops $pod -o jsonpath='{range .status.containerStatuses[?(@.state.waiting)]}{.name}{": waiting - reason="}{.state.waiting.reason}{" message="}{.state.waiting.message}{"\n"}{end}' || echo "No containers in waiting state"
echo "=== Readiness Probe Status ==="
oc get pod -n openshift-gitops $pod -o jsonpath='{range .status.containerStatuses[*]}{.name}{": started="}{.started}{" ready="}{.ready}{"\n"}{end}' || true
echo "=== Init Container Statuses for pod: $pod ==="
oc get pod -n openshift-gitops $pod -o jsonpath='{range .status.initContainerStatuses[*]}{.name}{": "}{"ready="}{.ready}{" state="}{.state}{"\n"}{end}' || true
echo "=== Current Logs from pod: $pod (all containers) ==="
oc logs -n openshift-gitops $pod --all-containers=true --tail=200 || true
echo "=== Previous container logs (if crashed): $pod ==="
oc logs -n openshift-gitops $pod --all-containers=true --previous --tail=200 2>/dev/null || echo "No previous logs available"
echo ""
fi
done
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.

⚠️ Potential issue | 🟡 Minor

Extract the duplicated diagnostic block into a step-registry ref.

Lines 104–164 (kuttl-sequential sequential-e2e-steps) and lines 216–276 (kuttl-parallel parallel-e2e-steps) are byte-identical ~60-line diagnostic preambles copy-pasted twice, and the e2e test at 297–298 would likely benefit from the same instrumentation. This is a lot of embedded shell that will drift out of sync on the next edit.

Consider moving it into a dedicated step under ci-operator/step-registry/ (e.g. gitops-operator/collect-diagnostics) and referencing it via chain/ref, matching the pattern used elsewhere (see ci-operator/step-registry/jobset/install/operator/jobset-install-operator-commands.sh). That also lets you gate it with || true at the step level and avoids embedding multi-hundred-line jsonpath strings inside YAML.

Minor cleanup inside the block while you're at it:

  • container_state is assigned on lines 141 and 253 but never referenced.
  • The CrashLoopBackOff/Error check on lines 144/256 compares $pod_phase against container-state strings — pod phase is only one of Pending|Running|Succeeded|Failed|Unknown. CrashLoopBackOff is a container waiting-reason, not a phase, so that branch never fires on phase. Check containerStatuses[*].state.waiting.reason (or just rely on the ready_status != "True" / restart_count != "0" conditions already there).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`
around lines 104 - 164, The diagnostic shell block is duplicated and should be
extracted into a reusable step-registry script (e.g. create
ci-operator/step-registry/gitops-operator/collect-diagnostics and expose it as a
step ref like gitops-operator/collect-diagnostics), then replace the duplicated
inline blocks in the kuttl-sequential `sequential-e2e-steps` and kuttl-parallel
`parallel-e2e-steps` (and the e2e test) with chain/ref to that step; inside the
extracted script remove the unused variable `container_state` (from where
`container_state=$(oc get pod ... .status.containerStatuses[0].state)` is set),
and fix the faulty check that compares `pod_phase` to container waiting reasons
by either removing the `CrashLoopBackOff`/`Error` comparisons against
`pod_phase` or switching that check to inspect `oc get pod -o
jsonpath='{.status.containerStatuses[*].state.waiting.reason}'` (keeping the
existing `ready_status != "True"` and `restart_count != "0"` checks).

Signed-off-by: Varsha B <vab@redhat.com>
@varshab1210 varshab1210 marked this pull request as ready for review April 17, 2026 10:57
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 17, 2026
@openshift-ci openshift-ci Bot requested review from chetan-rns and jannfis April 17, 2026 10:58
@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse more

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@varshab1210: 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

[REHEARSALNOTIFIER]
@varshab1210: 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
pull-ci-redhat-developer-gitops-operator-master-v4.14-ci-index-gitops-operator-bundle redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.14-e2e redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.14-images redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.14-kuttl-parallel redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.14-kuttl-sequential redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.19-ci-index-gitops-operator-bundle redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.19-e2e redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.19-images redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel redhat-developer/gitops-operator presubmit Ci-operator config changed
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-sequential redhat-developer/gitops-operator presubmit Ci-operator config 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.

@varshab1210
Copy link
Copy Markdown
Contributor Author

@coderabbitai help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 17, 2026

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

CodeRabbit commands

These commands are invoked using PR/Issue comments.

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai evaluate custom pre-merge check --instructions <custom-checks-instructions> --name <custom-checks-title> [--mode <error|warning>] to validate the custom pre-merge checks instructions. Defaults to error when --mode is omitted.
  • @coderabbitai ignore pre-merge checks to override pre-merge checks and get an approval on PR.
  • @coderabbitai run pre-merge checks to run pre-merge checks on the pull request.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve merge conflict to automatically resolve merge conflicts.
  • @coderabbitai autofix to automatically fix issues identified in unresolved review comments.
  • @coderabbitai resolve to resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai generate configuration to create a PR that adds the current resolved configuration as .coderabbit.yaml (or show it if already present).
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, support, documentation and community

  • Visit our status page to check the current availability of CodeRabbit.
  • Create a ticket on our support page for assistance with any issues or questions.
  • Visit our documentation site for detailed information on how to use CodeRabbit.
  • Join our Discord community to connect with other users and get help from the community.
  • Follow us on X/Twitter for updates and announcements.

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.14-kuttl-sequential

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@varshab1210
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 17, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

Caution

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

⚠️ Outside diff range comments (1)
ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml (1)

512-512: ⚠️ Potential issue | 🟠 Major

Asymmetric optional handling between v4.14 and v4.19 presubmits.

The v4.14 jobs pull-ci-...-v4.14-e2e (Line 146), ...-v4.14-kuttl-parallel (Line 287), and ...-v4.14-kuttl-sequential (Line 372) are now all optional: true, but the corresponding v4.19 jobs (Lines 512, 652, 736) remain required. Given that this PR flips these suites to arm64 for the first time (new release image, new architecture on the gitops-aws cluster profile), the v4.19 jobs will block merges on any arm64 provisioning/install flake. If the arm64 switch is expected to be unstable enough on v4.14 to warrant marking it optional, the same likely applies to v4.19.

Please either make the v4.19 e2e/kuttl-* jobs optional (matching v4.14) or explain why only v4.14 needs the relaxation.

Note: these optional flags are generated from the corresponding ci-operator config (redhat-developer-gitops-operator-master__v4.19.yaml test entries need optional: true), not edited here directly.

Also applies to: 652-652, 736-736

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

In
`@ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml`
at line 512, The v4.19 presubmit jobs
(pull-ci-redhat-developer-gitops-operator-master-v4.19-e2e,
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel,
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-sequential) are
currently required while the equivalent v4.14 jobs are optional; update the
ci-operator config for the master v4.19 tests
(redhat-developer-gitops-operator-master__v4.19.yaml) to set optional: true on
those test entries so the generated presubmit YAML matches v4.14, or
alternatively document why v4.19 must remain required if you intend to keep them
blocking.
♻️ Duplicate comments (1)
ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml (1)

40-46: ⚠️ Potential issue | 🔴 Critical

Same workflow: ipi-aws vs arm64 release concern as in v4.14.

Same pattern as in redhat-developer-gitops-operator-master__v4.14.yaml: release:arm64-latest + OCP_ARCH: arm64 is combined with the vanilla ipi-aws workflow and gitops-aws cluster profile at Lines 112, 162, and 182. Please verify the installer actually picks arm64 node types under this workflow; otherwise the operator install will continue to fail on node/payload architecture mismatch.

Also applies to: 66-72

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

In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`
around lines 40 - 46, The arm64 release block releases.arm64-latest is being
paired with workflow: ipi-aws and cluster_profile: gitops-aws while OCP_ARCH is
set to arm64, which can cause node/payload architecture mismatch; update the
pipeline to use an arm64-aware workflow or cluster profile (e.g., switch
workflow: ipi-aws to an arm64 flavor such as ipi-aws-arm64 or change
cluster_profile to an arm64-capable profile) or add explicit installer
machineType/instanceProfile overrides so the installer provisions arm64 instance
types; ensure the identifiers to update are releases.arm64-latest, OCP_ARCH,
workflow: ipi-aws and cluster_profile: gitops-aws.
🧹 Nitpick comments (1)
ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml (1)

165-185: e2e test has arm64 wiring but no failure diagnostics.

The e2e suite gets the same arm64 capabilities/env/dependencies as the kuttl suites, yet its e2e-steps command (scripts/openshiftci-presubmit-all-tests.sh) is not wrapped with the diagnostic gathering added to the kuttl install steps. If the arm64 payload/node mismatch theory above is correct, this suite will hit the same install-time failures but produce less debug info. Consider running the same diagnostics (or, better, a shared step-registry ref — see the duplication comment) on e2e as well.

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

In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml`
around lines 165 - 185, The e2e suite (the block labeled "e2e" running the
"e2e-steps" command that executes scripts/openshiftci-presubmit-all-tests.sh)
lacks the diagnostic-gathering wrapper used by the kuttl install steps; update
the e2e step to run the same diagnostic collection on failures (or refactor both
kuttl install and e2e steps to call a shared step-registry entry) so that when
arm64-related install failures occur you collect the same debug artifacts as the
kuttl suites.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml`:
- Around line 40-46: Add arm64-specific AWS instance type environment variables
into the env sections for the three jobs kuttl-sequential, kuttl-parallel, and
e2e so the ipi-aws workflow provisions Graviton instances for the arm64 release;
specifically set CONTROL_PLANE_INSTANCE_TYPE (e.g., "m6g.xlarge") and
COMPUTE_NODE_TYPE (e.g., "g5g.2xlarge") under each job's env block when the
release candidate uses the arm64-latest / version "4.14" candidate so the
installer does not default to x86_64 EC2 types.

In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`:
- Around line 62-65: The v4.19 job entries for the three tests
(kuttl-sequential, kuttl-parallel, and e2e) were changed to target arm64 but do
not include optional: true like the v4.14 equivalents; update each of the three
test blocks (the kuttl-sequential, kuttl-parallel, and e2e job definitions) to
add optional: true so they match v4.14 behavior (or alternatively add a short
comment/justification in those same blocks explaining why they must be
required), ensuring you modify the same three sections around the kuttl-* and
e2e job names.

---

Outside diff comments:
In
`@ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml`:
- Line 512: The v4.19 presubmit jobs
(pull-ci-redhat-developer-gitops-operator-master-v4.19-e2e,
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-parallel,
pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-sequential) are
currently required while the equivalent v4.14 jobs are optional; update the
ci-operator config for the master v4.19 tests
(redhat-developer-gitops-operator-master__v4.19.yaml) to set optional: true on
those test entries so the generated presubmit YAML matches v4.14, or
alternatively document why v4.19 must remain required if you intend to keep them
blocking.

---

Duplicate comments:
In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml`:
- Around line 40-46: The arm64 release block releases.arm64-latest is being
paired with workflow: ipi-aws and cluster_profile: gitops-aws while OCP_ARCH is
set to arm64, which can cause node/payload architecture mismatch; update the
pipeline to use an arm64-aware workflow or cluster profile (e.g., switch
workflow: ipi-aws to an arm64 flavor such as ipi-aws-arm64 or change
cluster_profile to an arm64-capable profile) or add explicit installer
machineType/instanceProfile overrides so the installer provisions arm64 instance
types; ensure the identifiers to update are releases.arm64-latest, OCP_ARCH,
workflow: ipi-aws and cluster_profile: gitops-aws.

---

Nitpick comments:
In
`@ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml`:
- Around line 165-185: The e2e suite (the block labeled "e2e" running the
"e2e-steps" command that executes scripts/openshiftci-presubmit-all-tests.sh)
lacks the diagnostic-gathering wrapper used by the kuttl install steps; update
the e2e step to run the same diagnostic collection on failures (or refactor both
kuttl install and e2e steps to call a shared step-registry entry) so that when
arm64-related install failures occur you collect the same debug artifacts as the
kuttl suites.
🪄 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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: aa5a6d67-9e0a-4ec6-9e9a-cac120f448ae

📥 Commits

Reviewing files that changed from the base of the PR and between 7c4686a and 4add2ca.

📒 Files selected for processing (3)
  • ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.14.yaml
  • ci-operator/config/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master__v4.19.yaml
  • ci-operator/jobs/redhat-developer/gitops-operator/redhat-developer-gitops-operator-master-presubmits.yaml

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.19-kuttl-sequential pull-ci-redhat-developer-gitops-operator-master-v4.14-kuttl-sequential

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@varshab1210: 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

@varshab1210: job(s): either don't exist or were not found to be affected, and cannot be rehearsed

@varshab1210
Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-redhat-developer-gitops-operator-master-v4.14-kuttl-sequential

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 22, 2026

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

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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants