multiarch: migrate OCP 4.13–4.15 s390x remote-libvirt jobs to VPN-OZ - #82661
multiarch: migrate OCP 4.13–4.15 s390x remote-libvirt jobs to VPN-OZ#82661ibm-adarsh wants to merge 5 commits into
Conversation
Introduce openshift-e2e-libvirt-vpn-oz-upi for IBM Z Orange Zone VPN leases on OCP 4.15 and older, where openshift-e2e-libvirt-vpn assumes virt-install and ETCD_DISK_SPEED=slow (4.16+). Teach upi-install-libvirt to fall back to ACPI-free virsh define when virt-install is missing, inject oc via cli:latest, and gate the etcd hardware-speed patch. Migrate the nightly-4.15 homogeneous s390x e2e job to libvirt-s390x-vpn-oz to validate the path.
Intranet VPN libvirt jobs need a build farm cluster with the intranet capability; build01 lacks it. Align with other libvirt-s390x-vpn* jobs.
Validate BRANCH before the 4.16 API gate, fail hard when hypervisor vol-resize is required but fails, and quote virt-install arguments.
Drop the redundant oz-upi workflow wrappers and point 4.14/4.15 homogeneous and upgrade jobs at the existing VPN workflows with libvirt-s390x-vpn-oz. Quiet expected virsh destroy/undefine noise in the ≤4.15 install fallback.
Move homogeneous and upgrade remote-libvirt s390x jobs for OCP 4.13 and remaining 4.14 coverage onto libvirt-s390x-vpn-oz with the shared VPN workflow, and scope ≤4.15 virsh/qemu-img install fallbacks to s390x only.
|
Hi @ibm-adarsh. Thanks for your PR. I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with Tip We noticed you've done this a few times! Consider joining the org to skip this step and gain Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: ibm-adarsh 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 |
WalkthroughChangess390x libvirt VPN support
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant UPI Installer
participant qemu-img
participant Hypervisor
participant virt-install
participant virsh
UPI Installer->>qemu-img: Resize RHCOS image when available
UPI Installer->>Hypervisor: Resize volume remotely when local resize is unavailable
UPI Installer->>virt-install: Create VM when virt-install is available
UPI Installer->>virsh: Define and start fallback s390x domain on older branches
Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
/ok-to-test |
|
/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.13-ocp-e2e-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.13-ocp-e2e-serial-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.13-ocp-fips-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.13-ocp-image-ecosystem-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.13-upgrade-from-nightly-4.12-ocp-ovn-remote-libvirt-s390x |
|
@ibm-adarsh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-e2e-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-e2e-serial-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-fips-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-image-ecosystem-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-upgrade-from-nightly-4.13-ocp-ovn-remote-libvirt-s390x |
|
@ibm-adarsh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
[REHEARSALNOTIFIER]
A total of 156 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 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 (1)
ci-operator/step-registry/upi/install/libvirt/upi-install-libvirt-commands.sh (1)
139-143: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuePrefer
uuidgenfor the fallback instead ofpython3.
uuidgenis already relied on in this same script (line 519 in the agent path), whereaspython3isn't otherwise required by this step image.♻️ Suggested simplification
- if [[ -r /proc/sys/kernel/random/uuid ]]; then - uuid=$(cat /proc/sys/kernel/random/uuid) - else - uuid=$(python3 -c 'import uuid; print(uuid.uuid4())') - fi + uuid=$(uuidgen)🤖 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/upi/install/libvirt/upi-install-libvirt-commands.sh` around lines 139 - 143, Update the UUID fallback in the installation command flow to use uuidgen instead of invoking python3, while preserving the existing /proc/sys/kernel/random/uuid path and assignment behavior.
🤖 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/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13-upgrade-from-nightly-4.12.yaml`:
- Around line 141-142: Add the missing cluster: build12 setting to the affected
periodic job alongside its existing cluster_profile and intranet capabilities,
ensuring the migrated job is pinned to the intended cluster while preserving the
current cron configuration.
---
Nitpick comments:
In
`@ci-operator/step-registry/upi/install/libvirt/upi-install-libvirt-commands.sh`:
- Around line 139-143: Update the UUID fallback in the installation command flow
to use uuidgen instead of invoking python3, while preserving the existing
/proc/sys/kernel/random/uuid path and assignment behavior.
🪄 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 YAML (base), Central YAML (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: 4c987fa7-ecd0-4ecd-9690-6a5013f69a3b
⛔ Files ignored due to path filters (1)
ci-operator/jobs/openshift/multiarch/openshift-multiarch-main-periodics.yamlis excluded by!ci-operator/jobs/**
📒 Files selected for processing (9)
ci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13-upgrade-from-nightly-4.12.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.14-upgrade-from-nightly-4.13.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.14.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.15-upgrade-from-nightly-4.14.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.15.yamlci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.16-upgrade-from-nightly-4.15.yamlci-operator/step-registry/upi/install/libvirt/upi-install-libvirt-commands.shci-operator/step-registry/upi/install/libvirt/upi-install-libvirt-ref.yaml
| - intranet | ||
| cron: 0 0 3 1 * |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
fd -t f 'openshift-multiarch-main__nightly-4.1[3-6]' ci-operator/config/openshift/multiarch --exec rg -n -B6 -A2 'intranet' {}Repository: openshift/release
Length of output: 6971
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="ci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13-upgrade-from-nightly-4.12.yaml"
echo "== target file excerpt =="
sed -n '120,155p' "$FILE" | cat -n -v
echo
echo "== build/cluster keys in target file =="
rg -n '^( (cluster|from_pullspec|workflow):| - intranet| cron:)' "$FILE"
python3 - <<'PY'
import yaml
from pathlib import Path
p='ci-operator/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13-upgrade-from-nightly-4.12.yaml'
data=yaml.safe_load(Path(p).read_text())
for i,p in enumerate(data.get('periodics', [])):
as_name=p.get('as','')
has_cluster='cluster' in p
intranet='intranet' in (p.get('capabilities') or [])
cron=p.get('cron','')
print(i, as_name, 'has_cluster=', has_cluster, 'cluster=', p.get('cluster'), 'intranet=', intranet, 'cron=', cron)
PY
echo
echo "== search build12 references in multiarch config dir =="
rg -n 'build12|cluster:' ci-operator/config/openshift/multiarch ci-operator/config/openshift 2>/dev/null | head -n 200Repository: openshift/release
Length of output: 1854
Add the missing build12 cluster pinning.
These migrated jobs use cluster_profile: libvirt-s390x-vpn-oz together with capabilities: [intranet], but they do not set cluster: build12, so the periodic will run without the intended cluster pin.
🤖 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/config/openshift/multiarch/openshift-multiarch-main__nightly-4.13-upgrade-from-nightly-4.12.yaml`
around lines 141 - 142, Add the missing cluster: build12 setting to the affected
periodic job alongside its existing cluster_profile and intranet capabilities,
ensuring the migrated job is pinned to the intended cluster while preserving the
current cron configuration.
|
/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-e2e-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-e2e-serial-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-fips-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-image-ecosystem-ovn-remote-libvirt-s390x periodic-ci-openshift-multiarch-main-nightly-4.14-upgrade-from-nightly-4.13-ocp-ovn-remote-libvirt-s390x |
|
@ibm-adarsh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@ibm-adarsh: The following tests failed, say
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. |
Summary
libvirt-s390x-vpn-ozwithopenshift-e2e-libvirt-vpn/-vpn-fips,intranet, and OZ env (USE_EXTERNAL_DNS,LIBVIRT_IMAGE_PATH,DOMAIN_MEMORY,USE_RAMFS).upi-install-libvirtfor ≤4.15 s390x installer images (virsh/qemu-img fallbacks scoped to s390x < 4.16; etcd hardware-speed patch gated to BRANCH ≥ 4.16).This is a separate branch/PR from #82603 and does not update that PR’s branch.
Test plan
/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.15-ocp-e2e-ovn-remote-libvirt-s390x/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.14-ocp-e2e-ovn-remote-libvirt-s390x/pj-rehearse periodic-ci-openshift-multiarch-main-nightly-4.13-ocp-e2e-ovn-remote-libvirt-s390xcluster: build12, profilelibvirt-s390x-vpn-oz, capabilityintranetSummary by CodeRabbit
libvirt-s390x-vpn-ozprofile and VPN workflows with intranet access and required OZ/libvirt settings.qemu-img,virt-install, andvirsh; compatibility behavior is scoped by architecture and branch.