CNF-22982: Update LCA 4.14 and 4.16 jobs#79682
Conversation
|
@fontivan: This pull request references CNF-22982 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the sub-task to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
WalkthroughUpdates OCP target and base-image version fields in lifecycle-agent CI configs: release-4.14 changes ChangesCI Configuration Version Updates
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Suggested reviewers
🚥 Pre-merge checks | ✅ 12✅ Passed checks (12 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the 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 |
|
/pj-rehearse |
|
@fontivan: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: fontivan 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 |
|
/pj-rehearse max |
|
@fontivan: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
- Since 4.15 is no longer supported we should use 4.14 instead
- Since 4.13 is not supported, we should use 4.12 instead
6a1b34b to
5890369
Compare
|
@fontivan, Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/pj-rehearse max |
|
@fontivan: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yaml`:
- Line 132: CI job currently wires upgrades as SEED_VERSION=OCP_BASE_VERSION and
TARGET_VERSION=OCP_TARGET_VERSION, so with OCP_BASE_VERSION: "4.14" and
OCP_TARGET_VERSION: "4.12" the job actually tests 4.12→4.14; update the YAML
values to match the intended 4.13→4.14 test by setting OCP_BASE_VERSION to
"4.13" and OCP_TARGET_VERSION to "4.14" (or alternatively adjust the PR
description if you meant to test 4.12→4.14).
In
`@ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.16.yaml`:
- Around line 129-133: The config currently sets OCP_BASE_VERSION: "4.16" and
OCP_TARGET_VERSION: "4.14", which forces a direct 4.14→4.16 upgrade; change
OCP_TARGET_VERSION to "4.15" so the lifecycle-agent release job runs the
supported 4.14→4.15→4.16 path (update OCP_TARGET_VERSION and ensure any related
expectations in the job/scenario referencing OCP_TARGET_VERSION or
SEED_IMAGE_TAG_FORMAT are adjusted to reflect 4.15).
🪄 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: Enterprise
Run ID: 3d24eae8-035a-4dd7-9433-dd080661d094
📒 Files selected for processing (2)
ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yamlci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.16.yaml
| OCP_BASE_VERSION: "4.14" | ||
| OCP_TARGET_IMAGE_SOURCE: release | ||
| OCP_TARGET_VERSION: "4.13" | ||
| OCP_TARGET_VERSION: "4.12" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check if there are other lifecycle-agent configs that might clarify the version pattern
# Look for other release configs to understand the version selection pattern
fd -e yaml 'lifecycle-agent.*release' ci-operator/config/openshift-kni/lifecycle-agent/ --exec cat {} \; --exec echo "---FILE: {}"
# Search for OCP_TARGET_VERSION usage patterns
rg -A2 -B2 'OCP_TARGET_VERSION.*"4\.(1[0-9])"' ci-operator/config/openshift-kni/lifecycle-agent/Repository: openshift/release
Length of output: 50374
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yaml"
if [ ! -f "$FILE" ]; then
echo "Missing file: $FILE" >&2
exit 1
fi
echo "=== OCP_* lines in $FILE ==="
rg -n 'OCP_(BASE|TARGET)_VERSION' "$FILE" || true
echo
echo "=== Lines 110-150 of $FILE ==="
nl -ba "$FILE" | sed -n '110,150p'
echo
echo "=== Matching files for 4.14 in same dir ==="
fd -e yaml '*4.14*lifecycle-agent-release*' ci-operator/config/openshift-kni/lifecycle-agent/ --exec echo "--- {}" \; --exec rg -n 'OCP_(BASE|TARGET)_VERSION|variant:|upgrade-from' {} \;
echo
echo "=== Any other 4.12/4.13 occurrences in this directory (target/base only) ==="
rg -n 'OCP_(BASE|TARGET)_VERSION:\s*"4\.(12|13|14)"' ci-operator/config/openshift-kni/lifecycle-agent/ --glob '*.yaml' || trueRepository: openshift/release
Length of output: 438
🏁 Script executed:
#!/bin/bash
set -euo pipefail
DIR="ci-operator/config/openshift-kni/lifecycle-agent"
FILE="$DIR/openshift-kni-lifecycle-agent-release-4.14.yaml"
echo "=== OCP_* and context from $FILE ==="
rg -n 'OCP_(BASE|TARGET)_VERSION|workflow:|variant:|upgrade-from' "$FILE" || true
echo
echo "=== Lines 125-138 (raw) from $FILE ==="
sed -n '125,138p' "$FILE" || true
echo
echo "=== Files in $DIR mentioning 4.14 ==="
fd -e yaml 'release-4.14*.yaml' "$DIR" --exec bash -c 'echo "--- {}"; rg -n "variant:|upgrade-from|OCP_(BASE|TARGET)_VERSION" "{}" || true' \;
echo
echo "=== Files in $DIR mentioning 4.13 or 4.12 ==="
fd -e yaml 'release-(4.13|4.12)*.yaml' "$DIR" --exec bash -c 'echo "--- {}"; rg -n "variant:|upgrade-from|OCP_(BASE|TARGET)_VERSION" "{}" || true' \;Repository: openshift/release
Length of output: 1456
🏁 Script executed:
#!/bin/bash
set -euo pipefail
ROOT="."
DIR="ci-operator/config/openshift-kni/lifecycle-agent"
echo "=== Find all OCP_TARGET_VERSION assignments in lifecycle-agent configs ==="
rg -n 'OCP_TARGET_VERSION:\s*"4\.(0|1[0-9]|2[0-9])"' "$DIR" --glob '*.yaml' || true
echo
echo "=== Find all OCP_BASE_VERSION / OCP_TARGET_VERSION pairs in upgrade-e2e workflow blocks (lifecycle-agent) ==="
# print just a couple lines around both env vars for any yaml that contains them
rg -n 'workflow:\s+openshift-image-based-upgrade-e2e' "$DIR" --glob '*.yaml' -n -B3 -A6 || true
echo
echo "=== Search in repo for how OCP_BASE_VERSION / OCP_TARGET_VERSION are used ==="
rg -n 'OCP_(BASE|TARGET)_VERSION' "$ROOT" --glob '*.go' --glob '*.py' --glob '*.sh' --glob '*.yaml' --glob '!vendor/**' --glob '!node_modules/**' | head -n 200 || true
echo
echo "=== Search specifically for the workflow name + OCP_* vars ==="
rg -n 'openshift-image-based-upgrade-e2e' "$ROOT" --glob '*.yaml' --glob '*.sh' --glob '*.go' | head -n 200 || trueRepository: openshift/release
Length of output: 50373
🏁 Script executed:
#!/bin/bash
set -euo pipefail
ROOT="."
echo "=== Find step-registry entries for openshift-image-based-upgrade-e2e ==="
rg -n "openshift-image-based-upgrade-e2e" "$ROOT/ci-operator/step-registry" --glob '*.yaml' --glob '*.sh' --glob '*.go' --glob '*.py' | head -n 200
echo
echo "=== Search step-registry scripts for OCP_TARGET_VERSION usage in image-based upgrade ==="
rg -n "OCP_TARGET_VERSION" "$ROOT/ci-operator/step-registry/openshift/image-based/upgrade" --glob '*.*' | head -n 200
echo
echo "=== Search for OCP_BASE_VERSION usage in image-based upgrade seed/create/upgrade steps ==="
rg -n "OCP_BASE_VERSION" "$ROOT/ci-operator/step-registry/openshift/image-based/upgrade" --glob '*.*' | head -n 200
echo
echo "=== Inspect seed-create commands ref for base vs target role (first ~120 lines) ==="
REF_YAML="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/seed/create/openshift-image-based-upgrade-seed-create-ref.yaml"
CMD_SH="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/seed/create/openshift-image-based-upgrade-seed-create-commands.sh"
echo "--- $REF_YAML ---"
sed -n '1,160p' "$REF_YAML" || true
echo
echo "--- $CMD_SH ---"
sed -n '1,220p' "$CMD_SH" || trueRepository: openshift/release
Length of output: 14056
🏁 Script executed:
#!/bin/bash
set -euo pipefail
ROOT="."
REF="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/e2e/openshift-image-based-upgrade-e2e-ref.yaml"
WORKFLOW="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/e2e/openshift-image-based-upgrade-e2e-workflow.yaml"
CONF="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/e2e/conf/openshift-image-based-upgrade-e2e-conf-ref.yaml"
GATHER="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/e2e/gather/openshift-image-based-upgrade-e2e-gather-ref.yaml"
COMMANDS="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade/e2e/openshift-image-based-upgrade-e2e-commands.sh"
echo "=== $REF (relevant env/params section) ==="
rg -n 'OCP_(BASE|TARGET)_VERSION|OCP_(BASE|TARGET)_IMAGE_SOURCE|SEED_IMAGE_TAG_FORMAT|workflow|parameters' "$REF" || true
sed -n '1,120p' "$REF" || true
echo
echo "=== $WORKFLOW (first half) ==="
sed -n '1,140p' "$WORKFLOW" || true
echo
echo "=== $COMMANDS (lines containing OCP_BASE_VERSION/OCP_TARGET_VERSION) ==="
rg -n 'OCP_(BASE|TARGET)_VERSION' "$COMMANDS" || true
sed -n '1,220p' "$COMMANDS" || true
echo
echo "=== $CONF (env mapping) ==="
sed -n '1,220p' "$CONF" || true
echo
echo "=== $GATHER (env mapping) ==="
sed -n '1,240p' "$GATHER" || trueRepository: openshift/release
Length of output: 6114
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yaml"
echo "=== variant / upgrade-from metadata in $FILE ==="
rg -n 'variant:|upgrade-from' "$FILE" || true
echo
echo "=== OCP_BASE_VERSION / OCP_TARGET_VERSION block context in $FILE ==="
sed -n '118,140p' "$FILE" || trueRepository: openshift/release
Length of output: 1355
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for FILE in \
ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.16.yaml \
ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.18.yaml; do
echo "=== $FILE ==="
rg -n 'OCP_BASE_VERSION|OCP_TARGET_VERSION' "$FILE" || true
sed -n '110,170p' "$FILE" || true
echo
doneRepository: openshift/release
Length of output: 4085
🏁 Script executed:
#!/bin/bash
set -euo pipefail
ROOT="."
UPGRADE_DIR="$ROOT/ci-operator/step-registry/openshift/image-based/upgrade"
echo "=== Step-registry tree (upgrade) ==="
find "$UPGRADE_DIR" -maxdepth 3 -type f | head -n 80
echo
echo "=== Search for OCP_BASE_VERSION / OCP_TARGET_VERSION in upgrade step-registry ==="
rg -n 'OCP_(BASE|TARGET)_VERSION' "$UPGRADE_DIR" --glob '*.*' | head -n 200
echo
echo "=== Inspect upgrade/target step ref + commands ==="
TARGET_REF="$UPGRADE_DIR/target/openshift-image-based-upgrade-target-ref.yaml"
TARGET_CMDS="$UPGRADE_DIR/target/openshift-image-based-upgrade-target-commands.sh"
ls -l "$TARGET_REF" "$TARGET_CMDS" 2>/dev/null || true
sed -n '1,220p' "$TARGET_REF" 2>/dev/null || true
sed -n '1,260p' "$TARGET_CMDS" 2>/dev/null || trueRepository: openshift/release
Length of output: 10728
Critical: PR upgrade “from” version doesn’t match the CI config
ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yamlsetsOCP_BASE_VERSION: "4.14"andOCP_TARGET_VERSION: "4.12"(line 132).- The image-based upgrade wiring upgrades the target cluster from
TARGET_VERSIONtoSEED_VERSION;SEED_VERSIONcomes fromOCP_BASE_VERSIONandTARGET_VERSIONcomes fromOCP_TARGET_VERSION. - So this job tests 4.12 → 4.14, not “from 4.14 instead of 4.13” as stated in the PR description.
🤖 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-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.14.yaml`
at line 132, CI job currently wires upgrades as SEED_VERSION=OCP_BASE_VERSION
and TARGET_VERSION=OCP_TARGET_VERSION, so with OCP_BASE_VERSION: "4.14" and
OCP_TARGET_VERSION: "4.12" the job actually tests 4.12→4.14; update the YAML
values to match the intended 4.13→4.14 test by setting OCP_BASE_VERSION to
"4.13" and OCP_TARGET_VERSION to "4.14" (or alternatively adjust the PR
description if you meant to test 4.12→4.14).
| OCP_BASE_IMAGE_SOURCE: release | ||
| OCP_BASE_VERSION: "4.16" | ||
| OCP_TARGET_IMAGE_SOURCE: release | ||
| OCP_TARGET_VERSION: "4.15" | ||
| OCP_TARGET_VERSION: "4.14" | ||
| SEED_IMAGE_TAG_FORMAT: release |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
OpenShift 4.16 supported upgrade paths from 4.14
💡 Result:
From OpenShift Container Platform 4.14 to 4.16, the supported upgrade path is via the intermediate 4.15 release (minor-by-minor). In other words: 4.14 → 4.15 → 4.16, using the supported update/upgrade mechanism (channels and the upgrade graph). Evidence (official Red Hat docs): OpenShift 4.16 update documentation explicitly addresses upgrading from 4.15 to 4.16 and requires a manual administrator acknowledgment for that step, indicating 4.15 is the expected immediate predecessor for 4.16 updates [1][2]. OpenShift 4.14 update documentation describes how OpenShift uses an update recommendation service and an update graph that encodes which versions you can safely update to within the selected channel, which is how the supported intermediate hops are determined [3]. Notes: - Exact “4.14 → 4.15” z-stream/to-build selection can vary by channel (stable/fast/candidate/EUS), so you should confirm the specific allowed hops for your installed z-stream using the OpenShift update graph / oc adm upgrade channel output (the docs describe this model) [3][4]. - 4.16 uses Kubernetes 1.29 and may require workload/API migration as part of upgrading to 4.16 [1][2].
Citations:
- 1: https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html/updating_clusters/preparing-to-update-a-cluster
- 2: https://docs.redhat.com/en/documentation/openshift_container_platform/4.16/html-single/release_notes/index
- 3: https://docs.redhat.com/en/documentation/openshift_container_platform/4.14/html-single/updating_clusters/index
- 4: https://docs.redhat.com/documentation/openshift_container_platform/4.16/observability/updating_clusters/index
🌐 Web query:
Is OpenShift 4.14 still supported in 2026
💡 Result:
Yes—OpenShift Container Platform 4.14 can still be supported in 2026, depending on which Red Hat support phase/term you have. Red Hat announced additional Extended Update Support (EUS) for OpenShift 4.14 that extends support “through October 31, 2026” (Additional EUS term 2 ends 2026-10-31) [1]. The same lifecycle dates are reflected in Red Hat guidance on EUS/maintenance transitions (EUS release notes for 4.14 describe EUS duration and the availability of an additional 12-month add-on) [2]. Therefore, as of 2026-05-26, OpenShift 4.14 is still within the extended support window (EUS term 2) and can be considered supported if you are subscribed/enabled for the relevant EUS term [1][2].
Citations:
- 1: https://www.redhat.com/en/blog/announcing-additional-extended-update-support-openshift-414-and-beyond
- 2: https://docs.redhat.com/de/documentation/openshift_container_platform/4.14/html-single/release_notes/index
Fix 4.14 → 4.16 upgrade test to go via the supported 4.15 intermediate (don’t skip).
In ci-operator/config/openshift-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.16.yaml (lines 129-133), OCP_TARGET_VERSION: "4.14" and OCP_BASE_VERSION: "4.16" implies a direct upgrade 4.14 → 4.16. OpenShift’s supported minor upgrade path is 4.14 → 4.15 → 4.16, so the test suite should use the intermediate 4.15 step or update the scenario/expectations to match supported upgrade mechanics.
🤖 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-kni/lifecycle-agent/openshift-kni-lifecycle-agent-release-4.16.yaml`
around lines 129 - 133, The config currently sets OCP_BASE_VERSION: "4.16" and
OCP_TARGET_VERSION: "4.14", which forces a direct 4.14→4.16 upgrade; change
OCP_TARGET_VERSION to "4.15" so the lifecycle-agent release job runs the
supported 4.14→4.15→4.16 path (update OCP_TARGET_VERSION and ensure any related
expectations in the job/scenario referencing OCP_TARGET_VERSION or
SEED_IMAGE_TAG_FORMAT are adjusted to reflect 4.15).
|
/pj-rehearse pull-ci-openshift-kni-lifecycle-agent-release-4.14-ibu-e2e-flow |
|
@jc-rh: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel. |
|
@fontivan: 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 by CodeRabbit