Skip to content

Add hubs deployment ibu lane#79893

Closed
shaior wants to merge 1 commit into
openshift:mainfrom
shaior:ibu_lane
Closed

Add hubs deployment ibu lane#79893
shaior wants to merge 1 commit into
openshift:mainfrom
shaior:ibu_lane

Conversation

@shaior
Copy link
Copy Markdown
Contributor

@shaior shaior commented May 31, 2026

Summary by CodeRabbit

This PR adds a new CNF RAN IBU (Image Based Upgrade) lane and the required step-registry pieces to OpenShift CI so the eco-ci-cd pipeline can deploy two hubs (seed + target) and run an IBU validation flow.

What changed (practical impact)

  • CI job config

    • Added ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-ibu-4.20.yaml
    • Introduces a new periodic/test lane that uses the eco-ci-cd build root with OCP nightly 4.20 as the candidate release, declares the cnf-ran-ztp-tests suite and the telcov10n-functional-cnf-ran-ibu workflow, applies default CPU/memory requests/limits, exposes env vars for seed/target cluster names and hub versions, and sets a cron schedule.
  • Workflow

    • Added telcov10n-functional-cnf-ran-ibu workflow which orchestrates the IBU scenario: deploy seed hub, deploy target hub, perform image-based upgrade, run post-upgrade eco-gotests, report results and chain steps. The workflow references the new deploy steps and includes metadata/owners.
  • Step-registry entries (telcov10n/functional/cnf-ran/ibu)

    • Seed hub deploy step
      • New files: commands script, ref.yaml, and metadata.json under ibu-seed-hub-deploy.
      • Script builds Ansible inventory from mounted group/host vars, runs deploy-ocp-sno.yml via ansible, copies generated inventory artifacts to SHARED_DIR, extracts bastion/cluster info and writes seed_hub_version to SHARED_DIR.
      • Step ref: 4-hour timeout, resource requests, and configurable env vars (SEED_HUB_VERSION, SEED_CLUSTER_NAME, DISABLE_INSIGHTS). Multiple credential mounts are declared.
    • Target hub deploy step
      • New files: commands script, ref.yaml, and metadata.json under ibu-target-hub-deploy.
      • Mirrors the seed step pattern to deploy the target hub and writes target_hub_version to SHARED_DIR. Also uses a 4-hour timeout, resource requests, configurable env vars, and credential mounts.
    • IBU workflow and supporting step refs are wired to run the full Image Based Upgrade flow using the eco-ci-cd image stream.
  • Ownership and metadata

    • Added OWNERS files and .metadata.json entries for the new step directories and workflow, listing approvers: shaior, kononovn, and eifrach.

Why this matters

  • Enables OpenShift CI to provision two isolated hub clusters (seed + target), perform an image-based upgrade, run post-upgrade tests, and capture cluster versions/artifacts for validation. This enables automated IBU validation for CNF RAN using the eco-ci-cd pipeline and makes the new lanes and registry entries reviewable and maintainable.

Notes / behavior details

  • Deploy scripts use strict Bash mode, exit early if ${SHARED_DIR}/skip.txt exists, and explicitly copy generated host_vars/group_vars into SHARED_DIR for downstream steps.
  • Step refs provide defaults for hub versions and cluster names and support disabling Insights via DISABLE_INSIGHTS.
  • PR author has repeatedly requested rehearsals for the periodic job in the review thread.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 31, 2026

Warning

Review limit reached

@shaior, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 20 minutes and 6 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: b4882235-42d4-4bd3-9a26-abf56dff042c

📥 Commits

Reviewing files that changed from the base of the PR and between 3e8b961 and 8b66a34.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (12)
  • ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-ibu-4.20.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-commands.sh
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-ref.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-ref.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml

Walkthrough

Adds an eco-ci-cd CI config and telcov10n IBU workflow for CNF-RAN on OCP 4.20, plus seed and target hub deploy steps with scripts, step refs/metadata, and OWNERS; deploy steps build Ansible inventory, run deploy-ocp-sno.yml, and export cluster versions and inventory artifacts.

Changes

IBU Test Workflow and Infrastructure Setup

Layer / File(s) Summary
CI configuration and test entry
ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-ibu-4.20.yaml
Defines build_root (eco-ci-cd), sets releases.latest.candidate to nightly 4.20, global resource defaults, adds cnf-ran-ztp-tests (env vars, cron) and assigns telcov10n-functional-cnf-ran-ibu; includes zz_generated_metadata.
Seed hub deploy step (script, ref, metadata, OWNERS)
ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/*
Adds telcov10n-functional-cnf-ran-ibu-seed-hub-deploy: commands.sh flattens mounted group/host vars (skips vault paths), runs ansible deploy-ocp-sno.yml with built EXTRA_VARS, copies inventories to SHARED_DIR, and writes seed_hub_version; includes step ref YAML, metadata JSON, and OWNERS approvers.
Target hub deploy step (script, ref, metadata, OWNERS)
ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/*
Adds telcov10n-functional-cnf-ran-ibu-target-hub-deploy: commands.sh mirrors seed flow (inventory flattening, ansible deploy, copy artifacts) and writes target_hub_version; includes step ref YAML, metadata JSON, and OWNERS approvers.
Workflow definition and OWNERS
ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/*
Adds telcov10n-functional-cnf-ran-ibu workflow YAML and metadata; steps.pre wires seed and target deploy refs and post sets a wait; OWNERS file lists approvers.

Sequence Diagram(s)

sequenceDiagram
  participant Scheduler
  participant IBU_Workflow
  participant SeedDeployStep
  participant TargetDeployStep
  participant Ansible
  participant Seed_Bastion
  participant Target_Bastion
  Scheduler->>IBU_Workflow: trigger `telcov10n-functional-cnf-ran-ibu`
  IBU_Workflow->>SeedDeployStep: run seed deploy
  SeedDeployStep->>Ansible: run deploy-ocp-sno.yml (inventory)
  Ansible->>Seed_Bastion: provision seed hub
  IBU_Workflow->>TargetDeployStep: run target deploy
  TargetDeployStep->>Ansible: run deploy-ocp-sno.yml (inventory)
  Ansible->>Target_Bastion: provision target hub
  IBU_Workflow->>Scheduler: run IBU tests & post reporting
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

area/pipelines

Suggested reviewers

  • kononovn
  • eifrach
🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add hubs deployment ibu lane' accurately describes the main change: adding IBU (Image Based Upgrade) testing infrastructure with seed and target hub deployments.
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 This PR adds CI/CD configuration files (YAML, JSON, shell scripts) with no Ginkgo test code. The custom check for stable test names is not applicable to infrastructure/configuration files.
Test Structure And Quality ✅ Passed PR contains no Ginkgo test code. Changes are CI/CD config (YAML), deployment scripts (shell), and metadata (JSON/OWNERS) files only. Check not applicable.
Microshift Test Compatibility ✅ Passed No Ginkgo e2e tests found. PR adds CI/operator configuration files, deployment scripts, and metadata—no Go test code detected.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR adds only CI/CD infrastructure (YAML configs, shell scripts, metadata files, OWNERS), no Ginkgo e2e tests. The check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed No deployment manifests, operator code, or controllers are added in this PR. This is a CI/CD infrastructure configuration for IBU testing that contains no Kubernetes scheduling constraints.
Ote Binary Stdout Contract ✅ Passed PR contains no Go test binaries or OTE code; only CI/CD configuration, bash scripts, and metadata. Check not applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds CI/CD config, step registry references, and deployment scripts—no Ginkgo e2e tests added, so IPv6/disconnected network compatibility check is not applicable.
No-Weak-Crypto ✅ Passed No weak cryptographic algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or non-constant-time secret comparisons detected in PR files.
Container-Privileges ✅ Passed No privileged container configurations found in PR files; no privileged: true, hostPID/Network/IPC, SYS_ADMIN, allowPrivilegeEscalation, or root execution detected.
No-Sensitive-Data-In-Logs ✅ Passed Scripts properly handle sensitive data (SSH keys, credentials) via file redirection and restricted access (chmod 600), never exposing them in stdout/logs. Only configuration values logged.

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

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

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.

❤️ Share

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 31, 2026
@openshift-ci openshift-ci Bot requested review from neisw and rdiazcam May 31, 2026 08:08
@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

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: 2

🧹 Nitpick comments (2)
ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.yaml (1)

17-48: 💤 Low value

Hardcoded kni-qe-108 credential mounts are coupled to the SEED_CLUSTER_NAME default.

SEED_CLUSTER_NAME is overridable, but the credential name/mount_path entries hardcode kni-qe-108. Overriding SEED_CLUSTER_NAME without matching credentials would silently mount the wrong host variables. Worth a brief comment noting these must be updated together, or document that the cluster name is effectively fixed for this step.

🤖 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/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.yaml`
around lines 17 - 48, The SEED_CLUSTER_NAME default is overridable but the
credentials entries hardcode "kni-qe-108" (e.g., names like
telcov10n-ansible-kni-qe-108-master0, telcov10n-ansible-kni-qe-108-bastion and
mount_path entries under /var/host_variables/kni-qe-108/*), so changing
SEED_CLUSTER_NAME will leave mounts mismatched; fix by parameterizing those
credential name and mount_path values to use SEED_CLUSTER_NAME (or the template
variable used by the pipeline) instead of the literal "kni-qe-108" (or if
parameterization isn’t practical, add a clear top-of-file comment next to
SEED_CLUSTER_NAME stating that all credential `name` and `mount_path` entries
(telcov10n-ansible-kni-qe-108-*, /var/host_variables/kni-qe-108/*,
/var/group_variables/kni-qe-108/*) must be updated when SEED_CLUSTER_NAME is
changed).
ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh (1)

86-94: 💤 Low value

Remove the temporary SSH private key after use.

The key is materialized at /tmp/temp_ssh_key and never deleted. Even in an ephemeral CI container, cleaning it up immediately after the SSH call is cheap hygiene and avoids it lingering for any later step sharing the filesystem.

🧹 Suggested cleanup
 CLUSTER_VERSION=$(ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \
   -i /tmp/temp_ssh_key "${BASTION_USER}@${BASTION_IP}" \
   "KUBECONFIG=${HUB_KUBECONFIG} oc get clusterversion version -ojsonpath='{.status.desired.version}'")
+rm -f /tmp/temp_ssh_key
🤖 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/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh`
around lines 86 - 94, The temporary SSH key file /tmp/temp_ssh_key is created
and used by the ssh command that sets CLUSTER_VERSION but is never removed;
after the ssh call (the command that populates CLUSTER_VERSION via
KUBECONFIG=${HUB_KUBECONFIG} oc get clusterversion ...) remove the temp file
(e.g., delete /tmp/temp_ssh_key) and ensure removal happens even on failure (use
a trap or cleanup step) so the key is not left on disk after the script runs.
🤖 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/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh`:
- Line 38: Replace the bare mkdir calls that can fail when directories already
exist with idempotent mkdir -p invocations; locate the mkdir
"/eco-ci-cd/inventories/ocp-deployment/group_vars" (and the similar mkdir at the
other occurrence) in
telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh and update them to
use mkdir -p so the script does not abort under set -e when the directory
already exists.

In
`@ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml`:
- Around line 3-13: The workflow documentation claims it runs the IBU upgrade,
post-upgrade eco-gotests, Slack notification and job chaining, but the steps
section only defines pre with refs
telcov10n-functional-cnf-ran-ibu-seed-hub-deploy and
telcov10n-functional-cnf-ran-ibu-target-hub-deploy; either update the
documentation to state this is currently only a deployment lane, or add the
missing test and post blocks (e.g., include refs for the upgrade/test steps such
as telcov10n-functional-cnf-ran-ibu-upgrade and
telcov10n-functional-cnf-ran-ibu-post-upgrade-notify or whatever the canonical
job refs are) so the YAML's steps match the described Test and Post phases.

---

Nitpick comments:
In
`@ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh`:
- Around line 86-94: The temporary SSH key file /tmp/temp_ssh_key is created and
used by the ssh command that sets CLUSTER_VERSION but is never removed; after
the ssh call (the command that populates CLUSTER_VERSION via
KUBECONFIG=${HUB_KUBECONFIG} oc get clusterversion ...) remove the temp file
(e.g., delete /tmp/temp_ssh_key) and ensure removal happens even on failure (use
a trap or cleanup step) so the key is not left on disk after the script runs.

In
`@ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.yaml`:
- Around line 17-48: The SEED_CLUSTER_NAME default is overridable but the
credentials entries hardcode "kni-qe-108" (e.g., names like
telcov10n-ansible-kni-qe-108-master0, telcov10n-ansible-kni-qe-108-bastion and
mount_path entries under /var/host_variables/kni-qe-108/*), so changing
SEED_CLUSTER_NAME will leave mounts mismatched; fix by parameterizing those
credential name and mount_path values to use SEED_CLUSTER_NAME (or the template
variable used by the pipeline) instead of the literal "kni-qe-108" (or if
parameterization isn’t practical, add a clear top-of-file comment next to
SEED_CLUSTER_NAME stating that all credential `name` and `mount_path` entries
(telcov10n-ansible-kni-qe-108-*, /var/host_variables/kni-qe-108/*,
/var/group_variables/kni-qe-108/*) must be updated when SEED_CLUSTER_NAME is
changed).
🪄 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: Enterprise

Run ID: 051836f9-863f-4f43-a165-4bc586e8d1c3

📥 Commits

Reviewing files that changed from the base of the PR and between 7b983ef and 790d5b0.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main-periodics.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (12)
  • ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__cnf-ran-ibu-4.20.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-ref.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-commands.sh
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-ref.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu-target-hub-deploy/telcov10n-functional-cnf-ran-ibu-target-hub-deploy-ref.yaml
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/OWNERS
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.metadata.json
  • ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml

echo "SEED_HUB_VERSION=${SEED_HUB_VERSION}"

echo "Processing common group_vars"
mkdir /eco-ci-cd/inventories/ocp-deployment/group_vars
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 | 🟡 Minor | ⚡ Quick win

Use mkdir -p to avoid a hard failure when the directory already exists.

With set -e, a bare mkdir aborts the whole step if group_vars/host_vars already exist in the eco-ci-cd inventory tree (e.g. on a retry or if the repo ships these dirs). -p makes this idempotent.

🛠️ Proposed fix
-mkdir /eco-ci-cd/inventories/ocp-deployment/group_vars
+mkdir -p /eco-ci-cd/inventories/ocp-deployment/group_vars
-mkdir /eco-ci-cd/inventories/ocp-deployment/host_vars
+mkdir -p /eco-ci-cd/inventories/ocp-deployment/host_vars

Also applies to: 52-52

🤖 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/telcov10n/functional/cnf-ran/ibu-seed-hub-deploy/telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh`
at line 38, Replace the bare mkdir calls that can fail when directories already
exist with idempotent mkdir -p invocations; locate the mkdir
"/eco-ci-cd/inventories/ocp-deployment/group_vars" (and the similar mkdir at the
other occurrence) in
telcov10n-functional-cnf-ran-ibu-seed-hub-deploy-commands.sh and update them to
use mkdir -p so the script does not abort under set -e when the directory
already exists.

Comment on lines +3 to +13
documentation: |-
IBU (Image Based Upgrade) workflow for CNF RAN testing.
Pre: deploy seed hub (kni-qe-108) at SEED_HUB_VERSION and target hub (kni-qe-109) at TARGET_HUB_VERSION.
Test: run IBU upgrade and post-upgrade eco-gotests, report results.
Post: notify Slack, trigger next job in chain.
steps:
pre:
# Seed hub setup — kni-qe-108 deployed at SEED_HUB_VERSION (upgrade destination)
- ref: telcov10n-functional-cnf-ran-ibu-seed-hub-deploy
# Target hub setup — kni-qe-109 deployed at TARGET_HUB_VERSION (upgrade source), manages spokes
- ref: telcov10n-functional-cnf-ran-ibu-target-hub-deploy
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 | 🟡 Minor | ⚡ Quick win

Documentation describes Test/Post phases that the workflow does not implement.

The documentation states the workflow runs the IBU upgrade + post-upgrade eco-gotests and then notifies Slack / chains the next job, but steps only defines pre with the two hub-deploy refs — there is no test or post block. As written, this workflow only provisions the hubs and runs no test, so any job using it will pass without exercising IBU. If this "deployment lane" is intentional for now, trim the documentation to match; otherwise the test/post steps are missing.

🤖 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/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml`
around lines 3 - 13, The workflow documentation claims it runs the IBU upgrade,
post-upgrade eco-gotests, Slack notification and job chaining, but the steps
section only defines pre with refs
telcov10n-functional-cnf-ran-ibu-seed-hub-deploy and
telcov10n-functional-cnf-ran-ibu-target-hub-deploy; either update the
documentation to state this is currently only a deployment lane, or add the
missing test and post blocks (e.g., include refs for the upgrade/test steps such
as telcov10n-functional-cnf-ran-ibu-upgrade and
telcov10n-functional-cnf-ran-ibu-post-upgrade-notify or whatever the canonical
job refs are) so the YAML's steps match the described Test and Post phases.

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented May 31, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@shaior: 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

@shaior, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

could not determine changed registry steps: could not load step registry: failed to load registry file /var/tmp/gitrepo393329964/ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field MultiStageTestConfiguration.workflow.steps.post of type api.TestStep
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.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@shaior, pj-rehearse: unable to determine affected jobs ERROR:

could not determine changed registry steps: could not load step registry: failed to load registry file /var/tmp/gitrepo2373824539/ci-operator/step-registry/telcov10n/functional/cnf-ran/ibu/telcov10n-functional-cnf-ran-ibu-workflow.yaml: error unmarshaling JSON: while decoding JSON: json: cannot unmarshal string into Go struct field MultiStageTestConfiguration.workflow.steps.post of type api.TestStep

If the problem persists, please contact Test Platform.

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/pj-rehearse periodic-ci-openshift-kni-eco-ci-cd-main-cnf-ran-ibu-4.20-cnf-ran-ztp-tests

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/retest required

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/test all

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/approve

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/pj-rehearse ack

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 1, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 1, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: shaior

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

@shaior
Copy link
Copy Markdown
Contributor Author

shaior commented Jun 1, 2026

/pj-rehearse ack

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 1, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 1, 2026

PR needs rebase.

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.

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@shaior, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

couldn't prepare candidate: couldn't rebase candidate onto 1c9038ee0ff5424edbe410330168b1481a67e8f8 due to conflicts
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.

1 similar comment
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@shaior, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

couldn't prepare candidate: couldn't rebase candidate onto 1c9038ee0ff5424edbe410330168b1481a67e8f8 due to conflicts
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.

Add IBU (Image Based Upgrade) CI lane for CNF RAN testing.
Deploys seed hub (kni-qe-108) at 4.20 and target hub (kni-qe-109) at 4.18.

Co-authored-by: Cursor <cursoragent@cursor.com>
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

@shaior, pj-rehearse: unable to determine affected jobs. This could be due to a branch that needs to be rebased. ERROR:

couldn't prepare candidate: couldn't rebase candidate onto 1c9038ee0ff5424edbe410330168b1481a67e8f8 due to conflicts
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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Jun 1, 2026

@shaior: 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/prow/ordered-prow-config 8b66a34 link true /test ordered-prow-config
ci/prow/check-gh-automation 8b66a34 link true /test check-gh-automation
ci/prow/core-valid 8b66a34 link true /test core-valid
ci/prow/prow-config-semantics 8b66a34 link true /test prow-config-semantics
ci/prow/config 8b66a34 link true /test config
ci/prow/owners 8b66a34 link true /test owners
ci/prow/prow-config-filenames 8b66a34 link true /test prow-config-filenames
ci/prow/ci-operator-config-metadata 8b66a34 link true /test ci-operator-config-metadata
ci/prow/step-registry-metadata 8b66a34 link true /test step-registry-metadata
ci/prow/ci-operator-config 8b66a34 link true /test ci-operator-config
ci/prow/step-registry-shellcheck 8b66a34 link true /test step-registry-shellcheck
ci/prow/yamllint 8b66a34 link true /test yamllint
ci/prow/ci-operator-registry 8b66a34 link true /test ci-operator-registry
ci/prow/generated-config 8b66a34 link true /test generated-config
ci/prow/openshift-image-mirror-mappings 8b66a34 link true /test openshift-image-mirror-mappings
ci/prow/release-controller-config 8b66a34 link true /test release-controller-config

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.

@shaior shaior closed this Jun 1, 2026
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. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant