Skip to content

hypershift-kubevirt: debug ODF installation on <=4.19 - #83147

Open
orenc1 wants to merge 1 commit into
openshift:mainfrom
orenc1:debug_odf_installation_hypershift_kubevirt
Open

hypershift-kubevirt: debug ODF installation on <=4.19#83147
orenc1 wants to merge 1 commit into
openshift:mainfrom
orenc1:debug_odf_installation_hypershift_kubevirt

Conversation

@orenc1

@orenc1 orenc1 commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Pauses the Hypershift KubeVirt ODF installation flow for six hours when the odf-operator package is unavailable. This allows debugging before the flow creates the ODF 4.23 image mirror policy and catalog source.

Signed-off-by: Oren Cohen <ocohen@redhat.com>
@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

The ODF installation fallback now waits six hours after detecting an unavailable odf-operator package and before creating ODF 4.23 catalog resources.

Changes

ODF installation fallback

Layer / File(s) Summary
Missing-package fallback delay
ci-operator/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh
Adds a six-hour sleep before creating the ODF 4.23 image mirror policy and catalog source.

Estimated code review effort: 1 (Trivial) | ~2 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies debugging ODF installation for HyperShift KubeVirt on OpenShift versions 4.19 and older.
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 only change adds sleep 6h to a shell script; no Ginkgo test declarations or dynamic test titles exist in the changed file.
Test Structure And Quality ✅ Passed The commit changes only one Bash command file by adding sleep 6h; it adds no Ginkgo tests or cluster-test assertions, setup, cleanup, or waits to review.
Microshift Test Compatibility ✅ Passed The pull request changes one shell script by adding sleep 6h; it adds no Ginkgo e2e tests or MicroShift-incompatible test usage.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The commit changes only one shell script by adding sleep 6h; it adds no Ginkgo e2e test or SNO-relevant multi-node assumption.
Topology-Aware Scheduling Compatibility ✅ Passed The patch adds only sleep 6h; it does not add or modify deployment scheduling constraints, and existing topology handling excludes the External case before masters are made schedulable.
Ote Binary Stdout Contract ✅ Passed The PR changes only one CI shell script by adding sleep 6h; it does not modify an OTE binary or process-level test code, so the stdout JSON contract is not applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The PR changes only a Bash script by adding sleep 6h; it adds no Ginkgo e2e tests or new IPv4/external-connectivity test behavior.
No-Weak-Crypto ✅ Passed The PR adds only sleep 6h; it introduces no weak crypto, custom crypto, or secret comparison. Existing digest and pull-secret references are unchanged.
Container-Privileges ✅ Passed The patch adds only sleep 6h; the changed script, referenced step YAML, and complete diff contain no privileged, host namespace, SYS_ADMIN, root, or allowPrivilegeEscalation settings.
No-Sensitive-Data-In-Logs ✅ Passed The only added line is sleep 6h; it emits no log data and introduces no credentials, tokens, PII, hostnames, or customer data.
✨ 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 requested review from nirarg and qinqon August 9, 2026 07:43
@openshift-ci

openshift-ci Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: orenc1

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 9, 2026

@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/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh`:
- Line 28: Replace the fixed `sleep 6h` in the HyperShift KubeVirt ODF install
flow with bounded polling that repeatedly checks `odf-operator` package
availability. Proceed as soon as the package appears; only after the polling
limit is reached should the script create the ODF 4.23 fallback resources.
🪄 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: 987848b4-a6a1-4513-af48-0748550476f7

📥 Commits

Reviewing files that changed from the base of the PR and between 4722573 and fcd53aa.

📒 Files selected for processing (1)
  • ci-operator/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh

-o jsonpath='{.items[?(@.metadata.name=="odf-operator")].status.channels[*].name}' | tr ' ' '\n' | sort -V | tail -1)
else
echo "odf-operator package not found in ${ODF_SUBSCRIPTION_SOURCE} catalog, creating ODF 4.23 catalog source with ICSP"
sleep 6h

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.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Find workflow timeout settings and all callers of the ODF installation step.
rg -n -C 6 \
  'hypershift-kubevirt-install-odf|active_deadline_seconds|timeout:|timeout=' \
  --glob '*.yaml' --glob '*.yml' .

Repository: openshift/release

Length of output: 50374


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the step definition, command script, and exact workflow references.
printf '%s\n' '--- step files ---'
fd -i 'hypershift-kubevirt-install-odf' ci-operator/step-registry | sort

printf '%s\n' '--- command script ---'
cmd='ci-operator/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh'
cat -n "$cmd"

printf '%s\n' '--- exact references ---'
rg -n -C 12 --glob '*.yaml' --glob '*.yml' \
  'hypershift-kubevirt-install-odf' \
  ci-operator/config ci-operator/jobs ci-operator/step-registry

Repository: openshift/release

Length of output: 50373


🏁 Script executed:

#!/bin/bash
set -euo pipefail

printf '%s\n' '--- step files ---'
fd -i 'hypershift-kubevirt-install-odf' ci-operator/step-registry | sort

printf '%s\n' '--- command script ---'
cmd='ci-operator/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh'
cat -n "$cmd"

printf '%s\n' '--- exact references ---'
rg -n -C 12 --glob '*.yaml' --glob '*.yml' \
  'hypershift-kubevirt-install-odf' \
  ci-operator/config ci-operator/jobs ci-operator/step-registry

Repository: openshift/release

Length of output: 50373


🏁 Script executed:

#!/bin/bash
set -euo pipefail

step='ci-operator/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-ref.yaml'
printf '%s\n' '--- step definition ---'
cat -n "$step"

printf '%s\n' '--- workflow timeout and ordering ---'
for f in \
  ci-operator/step-registry/hypershift/kubevirt/e2e-aws/hypershift-kubevirt-e2e-aws-workflow.yaml \
  ci-operator/step-registry/hypershift/kubevirt/e2e-aws/capk/hypershift-kubevirt-e2e-aws-capk-workflow.yaml \
  ci-operator/step-registry/hypershift/mce/kubevirt/conformance/hypershift-mce-kubevirt-conformance-workflow.yaml \
  ci-operator/step-registry/hypershift/mce/kubevirt/azure/conformance/hypershift-mce-kubevirt-azure-conformance-workflow.yaml \
  ci-operator/step-registry/hypershift/mce/ibmz/conformance-s390xmgmt-kubevirt/hypershift-mce-ibmz-conformance-s390xmgmt-kubevirt-workflow.yaml \
  ci-operator/step-registry/hypershift/mce/ibmz/openshift-e2e-test-s390xmgmt-kubevirt/hypershift-mce-ibmz-openshift-e2e-test-s390xmgmt-kubevirt-workflow.yaml
do
  if [[ -f "$f" ]]; then
    echo "--- $f ---"
    cat -n "$f" | sed -n '1,45p'
  fi
done

printf '%s\n' '--- direct periodics using the step ---'
rg -l --glob '*.yaml' --glob '*.yml' \
  'ref: hypershift-kubevirt-install-odf' \
  ci-operator/config ci-operator/jobs |
  sort |
  while read -r f; do
    echo "--- $f ---"
    rg -n -C 8 'ref: hypershift-kubevirt-install-odf|timeout:' "$f"
  done

Repository: openshift/release

Length of output: 20790


Replace the six-hour sleep with bounded polling.

This step runs before HyperShift installation and e2e tests. The sleep 6h can consume the workflow timeout. The script does not recheck odf-operator after sleeping, so a package that appears during the delay still triggers the ODF 4.23 fallback. Poll for package availability and create fallback resources only when the package remains unavailable.

🤖 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/step-registry/hypershift/kubevirt/install/odf/hypershift-kubevirt-install-odf-commands.sh`
at line 28, Replace the fixed `sleep 6h` in the HyperShift KubeVirt ODF install
flow with bounded polling that repeatedly checks `odf-operator` package
availability. Proceed as soon as the package appears; only after the polling
limit is reached should the script create the ODF 4.23 fallback resources.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@orenc1: 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-openshift-origin-main-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-5.1-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-5.0-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.23-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.22-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.21-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.20-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.19-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.18-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.17-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.16-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.15-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.14-e2e-aws-ovn-kubevirt openshift/origin presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-main-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-5.1-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-5.0-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.23-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.22-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.21-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.20-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.19-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.18-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.17-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.16-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed
pull-ci-openshift-cluster-api-provider-kubevirt-release-4.15-e2e-hypershift-kubevirt openshift/cluster-api-provider-kubevirt presubmit Registry content changed

A total of 154 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs.

A full list of affected jobs can be found here
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals.

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.

@orenc1

orenc1 commented Aug 9, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-cluster-api-provider-kubevirt-release-4.19-e2e-hypershift-kubevirt

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@orenc1: 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 9, 2026

Copy link
Copy Markdown
Contributor

@orenc1: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/rehearse/openshift/cluster-api-provider-kubevirt/release-4.19/e2e-hypershift-kubevirt fcd53aa link unknown /pj-rehearse pull-ci-openshift-cluster-api-provider-kubevirt-release-4.19-e2e-hypershift-kubevirt

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.

1 participant