Skip to content

fix: set CNV_SUBSCRIPTION_SOURCE for kubevirt AWS e2e jobs#78056

Closed
bryan-cox wants to merge 1 commit intoopenshift:mainfrom
bryan-cox:fix-kubevirt-cnv-subscription-source
Closed

fix: set CNV_SUBSCRIPTION_SOURCE for kubevirt AWS e2e jobs#78056
bryan-cox wants to merge 1 commit intoopenshift:mainfrom
bryan-cox:fix-kubevirt-cnv-subscription-source

Conversation

@bryan-cox
Copy link
Copy Markdown
Member

@bryan-cox bryan-cox commented Apr 20, 2026

Summary

  • Set CNV_SUBSCRIPTION_SOURCE: redhat-operators in both e2e-kubevirt-aws-ovn-reduced and e2e-kubevirt-aws-ovn job configs

Root Cause

PR #77820 (merged 2026-04-20) switched these jobs from workflow: hypershift-kubevirt-e2e-nested to workflow: hypershift-kubevirt-e2e-aws. The old nested workflow set CNV_SUBSCRIPTION_SOURCE: redhat-operators in its steps.env, but the new aws workflow does not.

Without this override, the hypershift-kubevirt-install step ref defaults to cnv-prerelease-catalog-source. Since the jobs aren't triggered via gangway API, CNV_PRERELEASE_CATALOG_IMAGE and CNV_SUBSCRIPTION_CHANNEL are both empty, causing the install script to fall through to the else branch:

CNV_RELEASE_CHANNEL=nightly-$(ocp_version)
CNV_PRERELEASE_CATALOG_IMAGE=quay.io/openshift-cnv/nightly-catalog:$(ocp_version)

The IPI cluster runs OCP 5.0, so this constructs quay.io/openshift-cnv/nightly-catalog:5.0 — an image tag that does not exist. The CatalogSource pod enters ImagePullBackOff, the OLM subscription never resolves a CSV, and the step exhausts 30 retries over ~15 minutes before failing.

Evidence

All three most recent runs of e2e-kubevirt-aws-ovn-reduced (against PRs #8278, #8288, #8247) show identical failure in hypershift-kubevirt-install:

+ [[ ! cnv-prerelease-catalog-source =~ ^(cnv-prerelease-catalog-source|redhat-operators)$ ]]
+ CNV_PRERELEASE_CATALOG_IMAGE=
+ CNV_SUBSCRIPTION_CHANNEL=
+ '[' cnv-prerelease-catalog-source == redhat-operators ']'
+ CNV_RELEASE_CHANNEL=nightly-5.0
+ CNV_PRERELEASE_CATALOG_IMAGE=quay.io/openshift-cnv/nightly-catalog:5.0
...
Try 30/30: can't get the CSV yet. Checking again in 30 seconds
Error: Failed to deploy CNV

No e2e tests ever ran — the failure is entirely in the pre-phase.

Fix

Explicitly set CNV_SUBSCRIPTION_SOURCE: redhat-operators in both job configs, matching the pattern already used by e2e-azure-kubevirt-ovn. This causes the install script to use the stable channel from the redhat-operators catalog instead of the nonexistent nightly prerelease catalog image.

Job History

/cc @openshift/hypershift-maintainers

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated test infrastructure configuration to include CNV subscription source environment variable for KubeVirt-related test steps.

PR openshift#77820 switched e2e-kubevirt-aws-ovn-reduced and e2e-kubevirt-aws-ovn
from the hypershift-kubevirt-e2e-nested workflow to hypershift-kubevirt-e2e-aws.
The nested workflow set CNV_SUBSCRIPTION_SOURCE: redhat-operators in its
steps.env, but the aws workflow does not. Without this override, the
hypershift-kubevirt-install step ref defaults to cnv-prerelease-catalog-source,
which causes the install script to derive a nightly catalog image tag from
the OCP cluster version (quay.io/openshift-cnv/nightly-catalog:5.0). This
image does not exist, so the CatalogSource pod enters ImagePullBackOff,
the OLM subscription never resolves, and the step fails after exhausting
30 retries.

Set CNV_SUBSCRIPTION_SOURCE: redhat-operators explicitly in both kubevirt
AWS job configs so the install script uses the stable channel from the
redhat-operators catalog instead of the nonexistent nightly prerelease
catalog image.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

@bryan-cox: GitHub didn't allow me to request PR reviews from the following users: openshift/hypershift-maintainers.

Note that only openshift members and repo collaborators can review this PR, and authors cannot review their own PRs.

Details

In response to this:

Summary

  • Set CNV_SUBSCRIPTION_SOURCE: redhat-operators in both e2e-kubevirt-aws-ovn-reduced and e2e-kubevirt-aws-ovn job configs

Root Cause

PR #77820 (merged 2026-04-20) switched these jobs from workflow: hypershift-kubevirt-e2e-nested to workflow: hypershift-kubevirt-e2e-aws. The old nested workflow set CNV_SUBSCRIPTION_SOURCE: redhat-operators in its steps.env, but the new aws workflow does not.

Without this override, the hypershift-kubevirt-install step ref defaults to cnv-prerelease-catalog-source. Since the jobs aren't triggered via gangway API, CNV_PRERELEASE_CATALOG_IMAGE and CNV_SUBSCRIPTION_CHANNEL are both empty, causing the install script to fall through to the else branch:

CNV_RELEASE_CHANNEL=nightly-$(ocp_version)
CNV_PRERELEASE_CATALOG_IMAGE=quay.io/openshift-cnv/nightly-catalog:$(ocp_version)

The IPI cluster runs OCP 5.0, so this constructs quay.io/openshift-cnv/nightly-catalog:5.0 — an image tag that does not exist. The CatalogSource pod enters ImagePullBackOff, the OLM subscription never resolves a CSV, and the step exhausts 30 retries over ~15 minutes before failing.

Evidence

All three most recent runs of e2e-kubevirt-aws-ovn-reduced (against PRs #8278, #8288, #8247) show identical failure in hypershift-kubevirt-install:

+ [[ ! cnv-prerelease-catalog-source =~ ^(cnv-prerelease-catalog-source|redhat-operators)$ ]]
+ CNV_PRERELEASE_CATALOG_IMAGE=
+ CNV_SUBSCRIPTION_CHANNEL=
+ '[' cnv-prerelease-catalog-source == redhat-operators ']'
+ CNV_RELEASE_CHANNEL=nightly-5.0
+ CNV_PRERELEASE_CATALOG_IMAGE=quay.io/openshift-cnv/nightly-catalog:5.0
...
Try 30/30: can't get the CSV yet. Checking again in 30 seconds
Error: Failed to deploy CNV

No e2e tests ever ran — the failure is entirely in the pre-phase.

Fix

Explicitly set CNV_SUBSCRIPTION_SOURCE: redhat-operators in both job configs, matching the pattern already used by e2e-azure-kubevirt-ovn. This causes the install script to use the stable channel from the redhat-operators catalog instead of the nonexistent nightly prerelease catalog image.

Job History

/cc @openshift/hypershift-maintainers

🤖 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 kubernetes-sigs/prow repository.

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

coderabbitai Bot commented Apr 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 6b9ffefc-b731-42ef-b935-fd97c7a4cce8

📥 Commits

Reviewing files that changed from the base of the PR and between e359ce0 and cbe3b8c.

📒 Files selected for processing (1)
  • ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml

Walkthrough

Environment variable CNV_SUBSCRIPTION_SOURCE: redhat-operators added to two KubeVirt AWS OVN test steps in the HyperShift CI operator configuration file.

Changes

Cohort / File(s) Summary
CI Configuration
ci-operator/config/openshift/hypershift/openshift-hypershift-main.yaml
Added CNV_SUBSCRIPTION_SOURCE: redhat-operators environment variable to e2e-kubevirt-aws-ovn-reduced and e2e-kubevirt-aws-ovn test steps.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 10
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately identifies the main change: adding CNV_SUBSCRIPTION_SOURCE environment variable to kubevirt AWS e2e job configurations. It is specific, concise, and directly relates to the primary purpose of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed PR modifies only CI operator configuration YAML files by adding environment variables to test step configurations without modifying Ginkgo test declarations or test titles.
Test Structure And Quality ✅ Passed This check is not applicable to the provided pull request. The PR modifies only CI configuration files, not Ginkgo test code.
Microshift Test Compatibility ✅ Passed PR modifies only CI configuration to set environment variables for existing test jobs, not new Ginkgo e2e tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed This pull request does not add any new Ginkgo e2e tests. The changes are exclusively configuration updates to existing CI job definitions in YAML files.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies CI/CD operator configuration file, not deployment manifests, operator code, or controllers. Changes only add environment variables to test job configurations, outside the scope of topology-awareness check.
Ote Binary Stdout Contract ✅ Passed Pull request modifies only YAML configuration file with environment variable additions, no Go code changes that could write non-JSON stdout.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR modifies CI job configuration YAML to set environment variables; no new Ginkgo e2e tests are added.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@bryan-cox
Copy link
Copy Markdown
Member Author

/pj-rehearse pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn-reduced

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@bryan-cox: 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]
@bryan-cox: 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-hypershift-main-e2e-kubevirt-aws-ovn openshift/hypershift presubmit Ci-operator config changed
pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn-reduced openshift/hypershift presubmit Ci-operator config changed

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.

@bryan-cox
Copy link
Copy Markdown
Member Author

/pj-rehearse pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@sdminonne
Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bryan-cox, sdminonne

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
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

@bryan-cox: 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/hypershift/main/e2e-kubevirt-aws-ovn-reduced cbe3b8c link unknown /pj-rehearse pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn-reduced
ci/rehearse/openshift/hypershift/main/e2e-kubevirt-aws-ovn cbe3b8c link unknown /pj-rehearse pull-ci-openshift-hypershift-main-e2e-kubevirt-aws-ovn

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.

@bryan-cox
Copy link
Copy Markdown
Member Author

/close

@openshift-ci openshift-ci Bot closed this Apr 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

@bryan-cox: Closed this PR.

Details

In response to this:

/close

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.

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. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants