Skip to content

HIVE:3148: [WIP]hive extension binary test#78242

Open
miyadav wants to merge 1 commit intoopenshift:mainfrom
miyadav:hive-ote-tests
Open

HIVE:3148: [WIP]hive extension binary test#78242
miyadav wants to merge 1 commit intoopenshift:mainfrom
miyadav:hive-ote-tests

Conversation

@miyadav
Copy link
Copy Markdown
Member

@miyadav miyadav commented Apr 23, 2026

/hold

depends on - openshift/origin#31059

Summary by CodeRabbit

  • Tests
    • Added five new end-to-end test workflows across AWS, GCP, Azure, vSphere, and pool environments using the OTE testing framework.
    • Enabled automatic pull request testing with provider-specific configurations and enhanced test coverage.

@openshift-ci openshift-ci Bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Apr 23, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 23, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: miyadav
Once this PR has been reviewed and has the lgtm label, please assign suhanime for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 23, 2026

Walkthrough

Introduces OTE (OpenStack Test Extension) test infrastructure for OpenShift Hive by adding a new test container image and five end-to-end test workflows for AWS, GCP, Azure, and vSphere providers with corresponding presubmit job definitions targeting the master branch.

Changes

Cohort / File(s) Summary
OTE Test Workflows and Configurations
ci-operator/config/openshift/hive/openshift-hive-master.yaml, ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml
Adds new OTE container image (hive-tests) and five test workflows (e2e-ote, e2e-pool-ote, e2e-gcp-ote, e2e-azure-ote, e2e-vsphere-ote) with corresponding presubmit jobs. Workflows mount provider-specific credentials, configure environment variables (including dynamic CLUSTER_NAME), and run test suites. Hive-focused jobs include kubeconfig mounting and skip filtering; provider-specific jobs use conditional run_if_changed triggers.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Microshift Test Compatibility ❓ Inconclusive Unable to access shell capability or file contents - cannot verify the openshift-hive-master.yaml file changes Please provide the actual file contents or verification details to assess the changes
✅ Passed checks (11 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 PR modifies CI configuration files only, not Ginkgo test code. Custom check targets Ginkgo test titles defined in test code, not CI environment variables.
Test Structure And Quality ✅ Passed This PR modifies only CI/CD configuration files (YAML), not Ginkgo test code. The custom check for test quality is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies only YAML CI/CD pipeline configurations, not test code. No new Ginkgo e2e tests are introduced.
Topology-Aware Scheduling Compatibility ✅ Passed Pull request modifies CI/CD configuration files that define test workflows, not deployment manifests or operator code with scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The OTE Binary Stdout Contract check is not applicable to this pull request as it only modifies CI configuration files, not the OTE binary implementation code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR modifies only YAML CI configuration files without adding any new Ginkgo e2e test code.
Title check ✅ Passed The title references HIVE:3148 and mentions 'hive extension binary test', which aligns with the main change of adding OTE (OpenShift Tests Extension) test workflows and container image for Hive, but uses 'WIP' tag and lacks specificity about the actual changes being OTE test workflows.

✏️ 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.

@openshift-ci openshift-ci Bot requested review from dlom and jstuever April 23, 2026 11:00
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@miyadav: 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-hive-master-e2e-azure-ote openshift/hive presubmit Presubmit changed
pull-ci-openshift-hive-master-e2e-gcp-ote openshift/hive presubmit Presubmit changed
pull-ci-openshift-hive-master-e2e-ote openshift/hive presubmit Presubmit changed
pull-ci-openshift-hive-master-e2e-pool-ote openshift/hive presubmit Presubmit changed
pull-ci-openshift-hive-master-e2e-vsphere-ote openshift/hive presubmit Presubmit changed
pull-ci-openshift-hive-master-coverage openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e-azure openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e-gcp openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e-openstack openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e-pool openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-e2e-vsphere openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-images openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-periodic-images openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-security openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-unit openshift/hive presubmit Ci-operator config changed
pull-ci-openshift-hive-master-verify openshift/hive presubmit Ci-operator config changed
periodic-ci-openshift-hive-master-periodic-e2e-pool-weekly N/A periodic Ci-operator config changed
periodic-ci-openshift-hive-master-periodic-e2e-weekly N/A periodic Ci-operator config changed
periodic-ci-openshift-hive-master-periodic-e2e-azure-weekly N/A periodic Ci-operator config changed
periodic-ci-openshift-hive-master-periodic-e2e-gcp-weekly N/A periodic Ci-operator config changed
periodic-ci-openshift-hive-master-periodic-e2e-openstack-weekly N/A periodic 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.

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 (3)
ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml (1)

249-332: Missing timeout for e2e-azure-ote job.

The original e2e-azure job (lines 164-248) specifies timeout: 4h30m0s in decoration_config:

decoration_config:
  skip_cloning: true
  timeout: 4h30m0s

The new e2e-azure-ote job doesn't include this timeout, which may cause premature job termination for Azure's longer provisioning times.

Proposed fix
     decoration_config:
       skip_cloning: true
+      timeout: 4h30m0s
     labels:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml` around
lines 249 - 332, The new job pull-ci-openshift-hive-master-e2e-azure-ote is
missing the decoration_config timeout, which can cause premature termination
during long Azure provisioning; add a timeout: 4h30m0s entry under the job's
decoration_config (next to skip_cloning: true) so the job uses the same 4h30m0s
timeout as the original e2e-azure job.
ci-operator/config/openshift/hive/openshift-hive-master.yaml (2)

393-411: Azure OTE test is missing timeout and BASE_DOMAIN configuration.

Compared to the original e2e-azure test (lines 205-226):

  1. Missing timeout: The original test specifies timeout: 4h30m0s at the test level. Long-running Azure provisioning may exceed the default timeout.

  2. Missing BASE_DOMAIN: The original test exports BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt).

Proposed fix
 - as: e2e-azure-ote
   run_if_changed: azure
   steps:
     cluster_profile: openshift-org-azure
     test:
     - as: test
       cli: latest
       commands: |
+        export BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt)
         /usr/bin/openshift-tests-extension run-suite openshift/hive
       dependencies:
       - env: HIVE_IMAGE
         name: hive
       - env: RELEASE_IMAGE
         name: release:latest
       from: hive-tests
       resources:
         requests:
           cpu: 100m
+      timeout: 2h30m0s
     workflow: ipi-azure
+  timeout: 4h30m0s
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/openshift/hive/openshift-hive-master.yaml` around lines
393 - 411, The e2e-azure-ote job (as: e2e-azure-ote, run_if_changed: azure)
lacks the test-level timeout and BASE_DOMAIN export present in the original
e2e-azure job; update the test stanza (the test: - as: test block and its
commands) to add timeout: 4h30m0s at the same level as test and ensure
BASE_DOMAIN is exported before running openshift-tests-extension (e.g., add an
env/dependency or prepend a command to set
BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt) in the commands section) so the
job uses the same timeout and base domain configuration as the original
e2e-azure job.

374-392: GCP OTE test lacks cloud-specific environment setup.

The original e2e-gcp test sets CLOUD=gcp:

commands: GO_COMPLIANCE_INFO=0 CLOUD=gcp make test-e2e

The OTE version doesn't set any cloud indicator. If the test suite needs to know which cloud provider to target, consider adding the CLOUD environment variable or verify the OTE framework handles this through the cluster profile.

Proposed fix if CLOUD env is needed
     commands: |
+      export CLOUD=gcp
       /usr/bin/openshift-tests-extension run-suite openshift/hive
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/openshift/hive/openshift-hive-master.yaml` around lines
374 - 392, The OTE test's test step is missing the CLOUD=gcp indicator so the
suite may not target GCP; update the test step's commands (the commands key
under the test block that currently runs "/usr/bin/openshift-tests-extension
run-suite openshift/hive") to set CLOUD=gcp (e.g. prepend "CLOUD=gcp" or add an
env: CLOUD entry under the same test step) so the Hive tests run with the GCP
cloud context; alternatively, if the cluster_profile or workflow already injects
cloud info, explicitly verify that before leaving the commands unchanged.
🤖 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/openshift/hive/openshift-hive-master.yaml`:
- Around line 412-433: The e2e-vsphere-ote job is missing the vSphere
environment setup; update the job (as: e2e-vsphere-ote) to source the same
shared scripts and export the same env vars as the original e2e-vsphere job
before running tests: source $SHARED_DIR/vsphere_context.sh, $SHARED_DIR/govc.sh
and $SHARED_DIR/additional_cluster.sh, then export
CLUSTER_NAME=$ADDITIONAL_CLUSTER_NAME,
VSPHERE_API_VIP=$ADDITIONAL_CLUSTER_API_VIP,
VSPHERE_INGRESS_VIP=$ADDITIONAL_CLUSTER_INGRESS_VIP,
VSPHERE_MACHINE_NETWORK=$(<"${SHARED_DIR}/machinecidr.txt"),
BASE_DOMAIN=$(<"${SHARED_DIR}/basedomain.txt") and
VSPHERE_INSTALLER_PLATFORM_SPEC_JSON=$(<"${SHARED_DIR}/platform.json") (place
these commands at the start of the test.commands block that runs
/usr/bin/openshift-tests-extension run-suite openshift/hive so the hive tests
receive the required vSphere configuration).

---

Nitpick comments:
In `@ci-operator/config/openshift/hive/openshift-hive-master.yaml`:
- Around line 393-411: The e2e-azure-ote job (as: e2e-azure-ote, run_if_changed:
azure) lacks the test-level timeout and BASE_DOMAIN export present in the
original e2e-azure job; update the test stanza (the test: - as: test block and
its commands) to add timeout: 4h30m0s at the same level as test and ensure
BASE_DOMAIN is exported before running openshift-tests-extension (e.g., add an
env/dependency or prepend a command to set
BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt) in the commands section) so the
job uses the same timeout and base domain configuration as the original
e2e-azure job.
- Around line 374-392: The OTE test's test step is missing the CLOUD=gcp
indicator so the suite may not target GCP; update the test step's commands (the
commands key under the test block that currently runs
"/usr/bin/openshift-tests-extension run-suite openshift/hive") to set CLOUD=gcp
(e.g. prepend "CLOUD=gcp" or add an env: CLOUD entry under the same test step)
so the Hive tests run with the GCP cloud context; alternatively, if the
cluster_profile or workflow already injects cloud info, explicitly verify that
before leaving the commands unchanged.

In `@ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml`:
- Around line 249-332: The new job pull-ci-openshift-hive-master-e2e-azure-ote
is missing the decoration_config timeout, which can cause premature termination
during long Azure provisioning; add a timeout: 4h30m0s entry under the job's
decoration_config (next to skip_cloning: true) so the job uses the same 4h30m0s
timeout as the original e2e-azure job.
🪄 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: af59f246-1537-4e66-b160-bf870b89f616

📥 Commits

Reviewing files that changed from the base of the PR and between de50406 and 431bae2.

📒 Files selected for processing (2)
  • ci-operator/config/openshift/hive/openshift-hive-master.yaml
  • ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml

Comment on lines +412 to +433
- as: e2e-vsphere-ote
run_if_changed: vsphere
steps:
cluster_profile: vsphere-elastic
env:
NETWORK_TYPE: single-tenant
VSPHERE_ADDITIONAL_CLUSTER: "true"
test:
- as: test
cli: latest
commands: |
/usr/bin/openshift-tests-extension run-suite openshift/hive
dependencies:
- env: HIVE_IMAGE
name: hive
- env: RELEASE_IMAGE
name: release:latest
from: hive-tests
resources:
requests:
cpu: 100m
workflow: ipi-vsphere
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 | 🟠 Major

vSphere OTE test is missing required environment variable setup.

The original e2e-vsphere test (lines 227-263) sources multiple configuration files and exports several environment variables critical for vSphere operation:

source $SHARED_DIR/vsphere_context.sh
source $SHARED_DIR/govc.sh
source $SHARED_DIR/additional_cluster.sh

export CLUSTER_NAME=$ADDITIONAL_CLUSTER_NAME
export VSPHERE_API_VIP=$ADDITIONAL_CLUSTER_API_VIP
export VSPHERE_INGRESS_VIP=$ADDITIONAL_CLUSTER_INGRESS_VIP
export VSPHERE_MACHINE_NETWORK=$(<"${SHARED_DIR}"/machinecidr.txt)
export BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt)
export VSPHERE_INSTALLER_PLATFORM_SPEC_JSON=$(<"${SHARED_DIR}"/platform.json)

The OTE version doesn't perform any of this setup. Unless the OTE framework handles this internally or obtains these values through different means, the vSphere tests will likely fail due to missing configuration.

Proposed fix to add required vSphere configuration
 - as: e2e-vsphere-ote
   run_if_changed: vsphere
   steps:
     cluster_profile: vsphere-elastic
     env:
       NETWORK_TYPE: single-tenant
       VSPHERE_ADDITIONAL_CLUSTER: "true"
     test:
     - as: test
       cli: latest
       commands: |
+        source $SHARED_DIR/vsphere_context.sh
+        source $SHARED_DIR/govc.sh
+        source $SHARED_DIR/additional_cluster.sh
+
+        export CLUSTER_NAME=$ADDITIONAL_CLUSTER_NAME
+        export VSPHERE_API_VIP=$ADDITIONAL_CLUSTER_API_VIP
+        export VSPHERE_INGRESS_VIP=$ADDITIONAL_CLUSTER_INGRESS_VIP
+        export VSPHERE_MACHINE_NETWORK=$(<"${SHARED_DIR}"/machinecidr.txt)
+        export BASE_DOMAIN=$(<"${SHARED_DIR}"/basedomain.txt)
+        export VSPHERE_INSTALLER_PLATFORM_SPEC_JSON=$(<"${SHARED_DIR}"/platform.json)
+
         /usr/bin/openshift-tests-extension run-suite openshift/hive
       dependencies:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ci-operator/config/openshift/hive/openshift-hive-master.yaml` around lines
412 - 433, The e2e-vsphere-ote job is missing the vSphere environment setup;
update the job (as: e2e-vsphere-ote) to source the same shared scripts and
export the same env vars as the original e2e-vsphere job before running tests:
source $SHARED_DIR/vsphere_context.sh, $SHARED_DIR/govc.sh and
$SHARED_DIR/additional_cluster.sh, then export
CLUSTER_NAME=$ADDITIONAL_CLUSTER_NAME,
VSPHERE_API_VIP=$ADDITIONAL_CLUSTER_API_VIP,
VSPHERE_INGRESS_VIP=$ADDITIONAL_CLUSTER_INGRESS_VIP,
VSPHERE_MACHINE_NETWORK=$(<"${SHARED_DIR}/machinecidr.txt"),
BASE_DOMAIN=$(<"${SHARED_DIR}/basedomain.txt") and
VSPHERE_INSTALLER_PLATFORM_SPEC_JSON=$(<"${SHARED_DIR}/platform.json") (place
these commands at the start of the test.commands block that runs
/usr/bin/openshift-tests-extension run-suite openshift/hive so the hive tests
receive the required vSphere configuration).

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 23, 2026

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

@miyadav miyadav changed the title [WIP]hive extension binary test HIVE:3148: [WIP]hive extension binary test Apr 23, 2026
@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 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant