HIVE:3148: [WIP]hive extension binary test#78242
HIVE:3148: [WIP]hive extension binary test#78242miyadav wants to merge 1 commit intoopenshift:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: miyadav The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
WalkthroughIntroduces 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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 11 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (11 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[REHEARSALNOTIFIER]
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals. Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (3)
ci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml (1)
249-332: Missing timeout fore2e-azure-otejob.The original
e2e-azurejob (lines 164-248) specifiestimeout: 4h30m0sindecoration_config:decoration_config: skip_cloning: true timeout: 4h30m0sThe new
e2e-azure-otejob 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-azuretest (lines 205-226):
Missing timeout: The original test specifies
timeout: 4h30m0sat the test level. Long-running Azure provisioning may exceed the default timeout.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-gcptest setsCLOUD=gcp:commands: GO_COMPLIANCE_INFO=0 CLOUD=gcp make test-e2eThe OTE version doesn't set any cloud indicator. If the test suite needs to know which cloud provider to target, consider adding the
CLOUDenvironment 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
📒 Files selected for processing (2)
ci-operator/config/openshift/hive/openshift-hive-master.yamlci-operator/jobs/openshift/hive/openshift-hive-master-presubmits.yaml
| - 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 |
There was a problem hiding this comment.
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).
|
@miyadav: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. |
/hold
depends on - openshift/origin#31059
Summary by CodeRabbit