From 6a3626fc96141a79432fb60714f1accb7bc0ab00 Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Wed, 5 Aug 2026 11:13:22 -0400 Subject: [PATCH 1/7] Hypershift BM - Agent based via Assisted Installer Add metal-ds-hypershift-agent-mce-guest-f14 job for OCP 5.0 Add HyperShift agent MCE guest debug job to the 5.0 amd64-nightly config with a 24h wait step for cluster inspection. Update MCE_VERSION to 2.12 and set LVM_OPERATOR_SUB_CHANNEL to auto-detect --- ...ts-private-release-5.0__amd64-nightly.yaml | 16 ++++ ...t-tests-private-release-5.0-periodics.yaml | 91 +++++++++++++++++++ 2 files changed, 107 insertions(+) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index 505080fb03f0f..fb195f71bbabf 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -4991,6 +4991,22 @@ tests: test: - chain: openshift-e2e-test-qe workflow: baremetal-lab-upi-dual-stack +- as: metal-ds-hypershift-agent-mce-guest-f14 + capabilities: + - intranet + cron: 36 15 1,17 * * + steps: + cluster_profile: equinix-ocp-hcp + env: + LVM_OPERATOR_SUB_CHANNEL: "" + MCE_VERSION: "2.12" + TEST_FILTERS: ~ChkUpgrade&;~DisconnectedOnly&;~NonPreRelease&;~HyperShiftMGMT&;~MicroShiftOnly&;~NonHyperShiftHOST&;~Serial&;~Disruptive& + TEST_TIMEOUT: "30" + TIMEOUT: +24 hours + test: + - ref: wait + - chain: openshift-e2e-test-hypershift-qe + workflow: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-guest zz_generated_metadata: branch: release-5.0 org: openshift diff --git a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml index 7cf84df186ea5..c7ecd4c36d759 100644 --- a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml +++ b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml @@ -19396,6 +19396,97 @@ periodics: - name: result-aggregator secret: secretName: result-aggregator +- agent: kubernetes + cluster: build09 + cron: 36 15 1,17 * * + decorate: true + decoration_config: + skip_cloning: true + extra_refs: + - base_ref: release-5.0 + org: openshift + repo: openshift-tests-private + labels: + capability/intranet: intranet + ci-operator.openshift.io/cloud: equinix-ocp-metal + ci-operator.openshift.io/cloud-cluster-profile: equinix-ocp-hcp + ci-operator.openshift.io/variant: amd64-nightly + ci.openshift.io/generator: prowgen + job-release: "5.0" + pj-rehearse.openshift.io/can-be-rehearsed: "true" + name: periodic-ci-openshift-openshift-tests-private-release-5.0-amd64-nightly-metal-ds-hypershift-agent-mce-guest-f14 + spec: + containers: + - args: + - --gcs-upload-secret=/secrets/gcs/service-account.json + - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson + - --lease-server-credentials-file=/etc/boskos/credentials + - --oauth-token-path=/usr/local/github-credentials/oauth + - --report-credentials-file=/etc/report/credentials + - --secret-dir=/secrets/ci-pull-credentials + - --target=metal-ds-hypershift-agent-mce-guest-f14 + - --variant=amd64-nightly + command: + - ci-operator + env: + - name: HTTP_SERVER_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + image: quay-proxy.ci.openshift.org/openshift/ci:ci_ci-operator_latest + imagePullPolicy: Always + name: "" + ports: + - containerPort: 8080 + name: http + resources: + requests: + cpu: 10m + volumeMounts: + - mountPath: /etc/boskos + name: boskos + readOnly: true + - mountPath: /secrets/ci-pull-credentials + name: ci-pull-credentials + readOnly: true + - mountPath: /secrets/gcs + name: gcs-credentials + readOnly: true + - mountPath: /usr/local/github-credentials + name: github-credentials-openshift-ci-robot-private-git-cloner + readOnly: true + - mountPath: /secrets/manifest-tool + name: manifest-tool-local-pusher + readOnly: true + - mountPath: /etc/pull-secret + name: pull-secret + readOnly: true + - mountPath: /etc/report + name: result-aggregator + readOnly: true + serviceAccountName: ci-operator + volumes: + - name: boskos + secret: + items: + - key: credentials + path: credentials + secretName: boskos-credentials + - name: ci-pull-credentials + secret: + secretName: ci-pull-credentials + - name: github-credentials-openshift-ci-robot-private-git-cloner + secret: + secretName: github-credentials-openshift-ci-robot-private-git-cloner + - name: manifest-tool-local-pusher + secret: + secretName: manifest-tool-local-pusher + - name: pull-secret + secret: + secretName: registry-pull-credentials + - name: result-aggregator + secret: + secretName: result-aggregator - agent: kubernetes cluster: build09 cron: 32 10 4 * * From cb47eb322aba073193c6d3c558a3a06ebd2483d5 Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Thu, 6 Aug 2026 07:08:45 -0400 Subject: [PATCH 2/7] EgressIP debug job for HyperShift agent on baremetal with ipecho bastion The metal-ds-hypershift-agent-mce-guest-f14 job used MCE_VERSION 2.12, which doesn't exist in the mce-dev-catalog. Replace it with metal-ds-hypershift-agent-ovn-egressip-debug using MCE 2.17 (the correct version for OCP 5.0), and add ipecho provision/deprovision step-registry refs that deploy a Python HTTP server on the dev-scripts provisioning host (192.168.111.1:9095). The ipecho server sits on the same L2 segment (ostestbm bridge) as guest cluster worker VMs, enabling EgressIP SNAT verification without routing or NAT in the path. --- ...ts-private-release-5.0__amd64-nightly.yaml | 32 +++++-- ...t-tests-private-release-5.0-periodics.yaml | 5 +- .../agent/ovn/ipecho/deprovision/OWNERS | 18 ++++ ...t-agent-ovn-ipecho-deprovision-commands.sh | 20 ++++ ...t-ovn-ipecho-deprovision-ref.metadata.json | 25 +++++ ...hift-agent-ovn-ipecho-deprovision-ref.yaml | 16 ++++ .../agent/ovn/ipecho/provision/OWNERS | 18 ++++ ...ift-agent-ovn-ipecho-provision-commands.sh | 95 +++++++++++++++++++ ...ent-ovn-ipecho-provision-ref.metadata.json | 25 +++++ ...rshift-agent-ovn-ipecho-provision-ref.yaml | 26 +++++ 10 files changed, 270 insertions(+), 10 deletions(-) create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/OWNERS create mode 100755 ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-commands.sh create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.yaml create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/OWNERS create mode 100755 ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-commands.sh create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.yaml diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index fb195f71bbabf..ebf86505110c2 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -4991,22 +4991,38 @@ tests: test: - chain: openshift-e2e-test-qe workflow: baremetal-lab-upi-dual-stack -- as: metal-ds-hypershift-agent-mce-guest-f14 +- as: metal-ds-hypershift-agent-ovn-egressip-debug capabilities: - intranet cron: 36 15 1,17 * * steps: cluster_profile: equinix-ocp-hcp env: - LVM_OPERATOR_SUB_CHANNEL: "" - MCE_VERSION: "2.12" - TEST_FILTERS: ~ChkUpgrade&;~DisconnectedOnly&;~NonPreRelease&;~HyperShiftMGMT&;~MicroShiftOnly&;~NonHyperShiftHOST&;~Serial&;~Disruptive& - TEST_TIMEOUT: "30" - TIMEOUT: +24 hours + CLUSTERTYPE: host_384gb_el9 + DEVSCRIPTS_CONFIG: | + IP_STACK=v4 + NUM_WORKERS=3 + WORKER_MEMORY=32768 + WORKER_VCPU=16 + NETWORK_TYPE=OVNKubernetes + VM_EXTRADISKS=true + VM_EXTRADISKS_LIST=vda + VM_EXTRADISKS_SIZE=256G + NUM_EXTRA_WORKERS=3 + PROVISIONING_NETWORK_PROFILE=Disabled + REDFISH_EMULATOR_IGNORE_BOOT_DEVICE=True + HYPERSHIFT_NAMESPACE: local-cluster + MCE_VERSION: "2.17" + TIMEOUT: +18 hours + pre: + - chain: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-provision + - ref: hypershift-agent-ovn-ipecho-provision test: - ref: wait - - chain: openshift-e2e-test-hypershift-qe - workflow: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-guest + post: + - ref: hypershift-agent-ovn-ipecho-deprovision + - chain: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-deprovision + timeout: 20h0m0s zz_generated_metadata: branch: release-5.0 org: openshift diff --git a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml index c7ecd4c36d759..46086316f0888 100644 --- a/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml +++ b/ci-operator/jobs/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0-periodics.yaml @@ -19402,6 +19402,7 @@ periodics: decorate: true decoration_config: skip_cloning: true + timeout: 20h0m0s extra_refs: - base_ref: release-5.0 org: openshift @@ -19414,7 +19415,7 @@ periodics: ci.openshift.io/generator: prowgen job-release: "5.0" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: periodic-ci-openshift-openshift-tests-private-release-5.0-amd64-nightly-metal-ds-hypershift-agent-mce-guest-f14 + name: periodic-ci-openshift-openshift-tests-private-release-5.0-amd64-nightly-metal-ds-hypershift-agent-ovn-egressip-debug spec: containers: - args: @@ -19424,7 +19425,7 @@ periodics: - --oauth-token-path=/usr/local/github-credentials/oauth - --report-credentials-file=/etc/report/credentials - --secret-dir=/secrets/ci-pull-credentials - - --target=metal-ds-hypershift-agent-mce-guest-f14 + - --target=metal-ds-hypershift-agent-ovn-egressip-debug - --variant=amd64-nightly command: - ci-operator diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/OWNERS b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/OWNERS new file mode 100644 index 0000000000000..12944cf0b6796 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/OWNERS @@ -0,0 +1,18 @@ +approvers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 +reviewers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-commands.sh b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-commands.sh new file mode 100755 index 0000000000000..aae2bc0eb8ce5 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-commands.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -o nounset +set -o pipefail + +echo "Deprovisioning ipecho server from dev-scripts host" + +source "${SHARED_DIR}/packet-conf.sh" + +# SSH to host and clean up ipecho service; all errors absorbed +ssh "${SSHOPTS[@]}" "root@${IP}" bash -s << 'EOF' || true +systemctl stop ipecho.service || true +systemctl disable ipecho.service || true +rm -f /etc/systemd/system/ipecho.service || true +rm -f /usr/local/bin/ipecho.py || true +systemctl daemon-reload || true +echo "ipecho server cleaned up" +EOF + +echo "ipecho deprovision complete" diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json new file mode 100644 index 0000000000000..fb40580b009f6 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json @@ -0,0 +1,25 @@ +{ + "path": "hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.yaml", + "owners": { + "approvers": [ + "tssurya", + "martinkennelly", + "jcaamano", + "astoycos", + "kyrtapz", + "oribon", + "arkadeepsen", + "arghosh93" + ], + "reviewers": [ + "tssurya", + "martinkennelly", + "jcaamano", + "astoycos", + "kyrtapz", + "oribon", + "arkadeepsen", + "arghosh93" + ] + } +} diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.yaml b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.yaml new file mode 100644 index 0000000000000..71aa8c0101c10 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.yaml @@ -0,0 +1,16 @@ +ref: + as: hypershift-agent-ovn-ipecho-deprovision + from: dev-scripts + commands: hypershift-agent-ovn-ipecho-deprovision-commands.sh + resources: + requests: + cpu: 100m + memory: 100Mi + best_effort: true + timeout: 5m0s + grace_period: 5m0s + documentation: |- + Deprovisions the ipecho HTTP server on the dev-scripts provisioning host. + Stops and removes the systemd service and the ipecho.py script. + + All errors are absorbed to avoid blocking other post steps. diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/OWNERS b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/OWNERS new file mode 100644 index 0000000000000..12944cf0b6796 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/OWNERS @@ -0,0 +1,18 @@ +approvers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 +reviewers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-commands.sh b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-commands.sh new file mode 100755 index 0000000000000..2364c00c6f157 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-commands.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +set -o nounset +set -o errexit +set -o pipefail + +echo "Provisioning ipecho server on dev-scripts host" + +source "${SHARED_DIR}/packet-conf.sh" + +IPECHO_HOST_IP="192.168.111.1" +IPECHO_PORT="${IPECHO_PORT:-9095}" + +# Deploy ipecho server on the provisioning host via SSH +# shellcheck disable=SC2087 +ssh "${SSHOPTS[@]}" "root@${IP}" bash -s -- "${IPECHO_PORT}" << 'EOF' +set -euxo pipefail + +IPECHO_PORT="$1" + +# Write the ipecho Python HTTP server +cat > /usr/local/bin/ipecho.py << 'PYEOF' +#!/usr/bin/env python3 +"""Minimal HTTP server that returns the client source IP address.""" +import http.server +import socketserver +import sys + +class IPEchoHandler(http.server.BaseHTTPRequestHandler): + def do_GET(self): + client_ip = self.client_address[0] + self.send_response(200) + self.send_header("Content-Type", "text/plain") + self.end_headers() + self.wfile.write(client_ip.encode("utf-8")) + self.wfile.write(b"\n") + + def log_message(self, fmt, *args): + sys.stderr.write("%s - - [%s] %s\n" % + (self.client_address[0], + self.log_date_time_string(), + fmt % args)) + +if __name__ == "__main__": + port = int(sys.argv[1]) if len(sys.argv) > 1 else 9095 + with socketserver.TCPServer(("0.0.0.0", port), IPEchoHandler) as httpd: + print(f"ipecho server listening on 0.0.0.0:{port}") + httpd.serve_forever() +PYEOF +chmod +x /usr/local/bin/ipecho.py + +# Create systemd unit +cat > /etc/systemd/system/ipecho.service << SVCEOF +[Unit] +Description=ipecho HTTP server for EgressIP testing +After=network.target + +[Service] +Type=simple +ExecStart=/usr/bin/python3 /usr/local/bin/ipecho.py ${IPECHO_PORT} +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target +SVCEOF + +systemctl daemon-reload +systemctl enable --now ipecho.service + +# Verify the service is running +for i in $(seq 1 30); do + if curl -sf "http://192.168.111.1:${IPECHO_PORT}" >/dev/null 2>&1; then + echo "ipecho server is ready on port ${IPECHO_PORT}" + curl -s "http://192.168.111.1:${IPECHO_PORT}" + exit 0 + fi + echo "Waiting for ipecho server... attempt ${i}/30" + sleep 2 +done + +echo "ERROR: ipecho server did not become ready" +systemctl status ipecho.service || true +journalctl -u ipecho.service --no-pager -n 20 || true +exit 1 +EOF + +echo "ipecho server deployed successfully" + +# Write outputs for downstream test steps +echo "${IPECHO_HOST_IP}" > "${SHARED_DIR}/ipecho_host_ip" +echo "http://${IPECHO_HOST_IP}:${IPECHO_PORT}" > "${SHARED_DIR}/ipecho_url" + +echo "ipecho_host_ip: ${IPECHO_HOST_IP}" +echo "ipecho_url: http://${IPECHO_HOST_IP}:${IPECHO_PORT}" diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json new file mode 100644 index 0000000000000..01ee3236edcd2 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json @@ -0,0 +1,25 @@ +{ + "path": "hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.yaml", + "owners": { + "approvers": [ + "tssurya", + "martinkennelly", + "jcaamano", + "astoycos", + "kyrtapz", + "oribon", + "arkadeepsen", + "arghosh93" + ], + "reviewers": [ + "tssurya", + "martinkennelly", + "jcaamano", + "astoycos", + "kyrtapz", + "oribon", + "arkadeepsen", + "arghosh93" + ] + } +} diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.yaml b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.yaml new file mode 100644 index 0000000000000..e2e0a6cf0b2b6 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.yaml @@ -0,0 +1,26 @@ +ref: + as: hypershift-agent-ovn-ipecho-provision + from: dev-scripts + commands: hypershift-agent-ovn-ipecho-provision-commands.sh + resources: + requests: + cpu: 100m + memory: 100Mi + env: + - name: IPECHO_PORT + default: "9095" + documentation: "TCP port on which the ipecho HTTP server listens." + timeout: 10m0s + grace_period: 5m0s + documentation: |- + Provisions a Python3 ipecho HTTP server on the dev-scripts provisioning host + (192.168.111.1) as a systemd service. The ipecho server returns the caller's + source IP address, which is used by OVN-Kubernetes EgressIP tests. + + The server runs on the ostestbm libvirt bridge (192.168.111.0/24), on the + same L2 segment as the guest cluster worker VMs, so EgressIP SNAT traffic + reaches it without any routing or NAT in the way. + + Outputs saved to ${SHARED_DIR}: + - ipecho_host_ip: Bridge IP of the provisioning host (192.168.111.1) + - ipecho_url: Full URL (http://192.168.111.1:) From 7000c1d07d6316f53f5328ee53a6be085ca9c219 Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Thu, 6 Aug 2026 09:39:07 -0400 Subject: [PATCH 3/7] Fix CI check failures: config ordering, intermediate OWNERS, LVM channel - Reorder steps sections alphabetically (post/pre/test) to satisfy ci-operator-config-metadata validation - Add OWNERS files to intermediate directories hypershift/agent/ovn/ and hypershift/agent/ovn/ipecho/ for step-registry-metadata check - Set LVM_OPERATOR_SUB_CHANNEL to stable-4.22 since stable-5.0 channel does not exist yet --- ...sts-private-release-5.0__amd64-nightly.yaml | 7 ++++--- .../step-registry/hypershift/agent/ovn/OWNERS | 18 ++++++++++++++++++ .../hypershift/agent/ovn/ipecho/OWNERS | 18 ++++++++++++++++++ 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/OWNERS create mode 100644 ci-operator/step-registry/hypershift/agent/ovn/ipecho/OWNERS diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index ebf86505110c2..1613c9adc2cd1 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -5012,16 +5012,17 @@ tests: PROVISIONING_NETWORK_PROFILE=Disabled REDFISH_EMULATOR_IGNORE_BOOT_DEVICE=True HYPERSHIFT_NAMESPACE: local-cluster + LVM_OPERATOR_SUB_CHANNEL: stable-4.22 MCE_VERSION: "2.17" TIMEOUT: +18 hours + post: + - ref: hypershift-agent-ovn-ipecho-deprovision + - chain: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-deprovision pre: - chain: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-provision - ref: hypershift-agent-ovn-ipecho-provision test: - ref: wait - post: - - ref: hypershift-agent-ovn-ipecho-deprovision - - chain: cucushift-installer-rehearse-baremetalds-assisted-hypershift-agent-mce-deprovision timeout: 20h0m0s zz_generated_metadata: branch: release-5.0 diff --git a/ci-operator/step-registry/hypershift/agent/ovn/OWNERS b/ci-operator/step-registry/hypershift/agent/ovn/OWNERS new file mode 100644 index 0000000000000..12944cf0b6796 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/OWNERS @@ -0,0 +1,18 @@ +approvers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 +reviewers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/OWNERS b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/OWNERS new file mode 100644 index 0000000000000..12944cf0b6796 --- /dev/null +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/OWNERS @@ -0,0 +1,18 @@ +approvers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 +reviewers: +- tssurya +- martinkennelly +- jcaamano +- astoycos +- kyrtapz +- oribon +- arkadeepsen +- arghosh93 From baf9ebf0fa371e67451fd4e3d2feb7d484c23cad Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Thu, 6 Aug 2026 12:56:41 -0400 Subject: [PATCH 4/7] Fix CI check failures and LVM operator channel - Strip trailing newlines from metadata.json files to match make registry-metadata output format - Reorder steps sections alphabetically (post/pre/test) for ci-operator-config-metadata validation - Add OWNERS files to intermediate directories hypershift/agent/ovn/ and hypershift/agent/ovn/ipecho/ - Change LVM_OPERATOR_SUB_CHANNEL from stable-4.22 to stable-4.21 to match other working OCP 5.0 jobs --- ...hift-openshift-tests-private-release-5.0__amd64-nightly.yaml | 2 +- .../hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json | 2 +- .../hypershift-agent-ovn-ipecho-provision-ref.metadata.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index 1613c9adc2cd1..db72c1f594afd 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -5012,7 +5012,7 @@ tests: PROVISIONING_NETWORK_PROFILE=Disabled REDFISH_EMULATOR_IGNORE_BOOT_DEVICE=True HYPERSHIFT_NAMESPACE: local-cluster - LVM_OPERATOR_SUB_CHANNEL: stable-4.22 + LVM_OPERATOR_SUB_CHANNEL: stable-4.21 MCE_VERSION: "2.17" TIMEOUT: +18 hours post: diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json index fb40580b009f6..cfd88f7ffbef8 100644 --- a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/deprovision/hypershift-agent-ovn-ipecho-deprovision-ref.metadata.json @@ -22,4 +22,4 @@ "arghosh93" ] } -} +} \ No newline at end of file diff --git a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json index 01ee3236edcd2..1d1e4417229cb 100644 --- a/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json +++ b/ci-operator/step-registry/hypershift/agent/ovn/ipecho/provision/hypershift-agent-ovn-ipecho-provision-ref.metadata.json @@ -22,4 +22,4 @@ "arghosh93" ] } -} +} \ No newline at end of file From a29ec9a14ab44c27fe7e14a77814f31290cd10a7 Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Fri, 7 Aug 2026 07:53:33 -0400 Subject: [PATCH 5/7] Set LVM operator subscription source to lvm-catalogsource The operatorhub-subscribe-lvm-operator step defaults to subscribing from the redhat-operators catalog, which lacks the required channel for OCP 5.0. The lvms-catalogsource step already creates a custom catalog source using the correct index image, but the subscription was not pointed at it. Add LVM_OPERATOR_SUB_SOURCE: lvm-catalogsource to match all other working OCP 5.0 jobs --- ...shift-openshift-tests-private-release-5.0__amd64-nightly.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index db72c1f594afd..654ddb04f8b76 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -5013,6 +5013,7 @@ tests: REDFISH_EMULATOR_IGNORE_BOOT_DEVICE=True HYPERSHIFT_NAMESPACE: local-cluster LVM_OPERATOR_SUB_CHANNEL: stable-4.21 + LVM_OPERATOR_SUB_SOURCE: lvm-catalogsource MCE_VERSION: "2.17" TIMEOUT: +18 hours post: From 168952c6a39114a0c3db5f679d306efb733371ca Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Fri, 7 Aug 2026 11:22:21 -0400 Subject: [PATCH 6/7] Use stable-5.0 LVM channel to match lvm-catalogsource index The lvm-catalogsource index image (v5.0) only contains channels stable-5.0 and stable-4.22. The subscription was failing because stable-4.21 does not exist in that index. Other OCP 5.0 jobs use stable-4.21 with the redhat-operators catalog, but our job uses lvm-catalogsource which has different channel availability. --- ...hift-openshift-tests-private-release-5.0__amd64-nightly.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index 654ddb04f8b76..d17b50f798428 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -5012,7 +5012,7 @@ tests: PROVISIONING_NETWORK_PROFILE=Disabled REDFISH_EMULATOR_IGNORE_BOOT_DEVICE=True HYPERSHIFT_NAMESPACE: local-cluster - LVM_OPERATOR_SUB_CHANNEL: stable-4.21 + LVM_OPERATOR_SUB_CHANNEL: stable-5.0 LVM_OPERATOR_SUB_SOURCE: lvm-catalogsource MCE_VERSION: "2.17" TIMEOUT: +18 hours From a4e1b91b4de9a88cd3e752f9396cae9e34b5f942 Mon Sep 17 00:00:00 2001 From: Arti Sood Date: Fri, 7 Aug 2026 16:07:57 -0400 Subject: [PATCH 7/7] Add missing assisted-service-scripts base image to 5.0 nightly config The hypershift-mce-conf-os-images step requires the assisted-service-scripts image (from: assisted-service-scripts), but it was not declared in the release-5.0 amd64-nightly base_images, causing ErrImagePull failures in metal-ds-hypershift-agent jobs --- ...ft-openshift-tests-private-release-5.0__amd64-nightly.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml index d17b50f798428..cfc4dd6795485 100644 --- a/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml +++ b/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-5.0__amd64-nightly.yaml @@ -3,6 +3,10 @@ base_images: name: "5.0" namespace: ocp tag: ansible + assisted-service-scripts: + name: ocm-2.17 + namespace: edge-infrastructure + tag: assisted-service-scripts aws-efs-csi-operator-create-efs: name: "5.0" namespace: ocp