Skip to content

USHIFT-7488: scripts: prefer locally built RPMs over product repos in configure-vm.sh - #7257

Merged
sdodson merged 1 commit into
openshift:release-4.21from
mkowalski:fix-local-rpm-repo-priority
Aug 27, 2026
Merged

sdodson merged 1 commit into
openshift:release-4.21from
mkowalski:fix-local-rpm-repo-priority

Conversation

@mkowalski

Copy link
Copy Markdown

What

Set priority=1 on the microshift-local repository used by configure-vm.sh so dnf always installs the locally built RPMs instead of any microshift RPMs published in enabled product repositories.

Why

All release-4.21 conformance CI jobs (periodics and presubmits) have been permafailing with OVN never initializing (failed to get ofport of -ex, OCPBUGS-105440) even after the ovn-kubernetes fix merged (openshift/ovn-kubernetes#3413) and is present in nightlies since 4.21.0-0.nightly-2026-08-24-221323.

Investigation of the failing job sosreports showed why: CI builds RPMs from the checked-out source into _output/rpmbuild and installs them via --repofrompath, but dnf resolved microshift from rhocp-4.21-for-rhel-9-x86_64-rpms instead, because the released NEVRA (4.21.29-202608170915.p0.gbc6f556) sorts higher than the locally built nightly version. Install transaction from a failing run of pull-ci-openshift-microshift-release-4.21-ocp-full-conformance-rhel-eus:

microshift  x86_64  4.21.29-202608170915.p0.gbc6f556.assembly.4.21.29.el9  rhocp-4.21-for-rhel-9-x86_64-rpms

That released RPM pins the pre-fix ovn-kubernetes-microshift image (built 2026-08-12 from cf07889, 44 commits behind release-4.21, missing the OCPBUGS-105440 fix), so the tested nodes always hit the already-fixed bug. This is also why the rebase PR #7242 cannot pass CI despite pinning a fixed image.

With repository priority 1 on the local repo, dnf prefers packages from it regardless of version ordering, so CI tests what it built.

How was this tested

bash -n and shellcheck on the modified script (no new findings). Behavioral verification will come from CI on this PR: the conformance jobs should now install the source-built RPMs (which pin the fixed ovn-kubernetes image from the rebase base) — not verified locally.


This PR description was generated using AI. Please verify before acting on it.
Assisted-By: Claude Fable 5

CI installs MicroShift by building RPMs from source and installing them
via a --repofrompath local repository. Once microshift RPMs became
available in the rhocp-4.21 product repository with a release version
(e.g. 4.21.29-...) that sorts higher than the locally built nightly
version, dnf silently resolved 'microshift' from the product repository
instead of the local one.

As a result, CI jobs tested the released RPM (pinning an outdated
ovn-kubernetes image affected by OCPBUGS-105440) instead of the RPMs
built from the checked-out source, causing all release-4.21 conformance
jobs to permafail with 'failed to get ofport of -ex' even after the fix
merged.

Set the highest repository priority on the local repository so dnf
always prefers the locally built RPMs regardless of version ordering.

Assisted-By: Claude Fable 5
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 27, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@mkowalski: This pull request explicitly references no jira issue.

Details

In response to this:

What

Set priority=1 on the microshift-local repository used by configure-vm.sh so dnf always installs the locally built RPMs instead of any microshift RPMs published in enabled product repositories.

Why

All release-4.21 conformance CI jobs (periodics and presubmits) have been permafailing with OVN never initializing (failed to get ofport of -ex, OCPBUGS-105440) even after the ovn-kubernetes fix merged (openshift/ovn-kubernetes#3413) and is present in nightlies since 4.21.0-0.nightly-2026-08-24-221323.

Investigation of the failing job sosreports showed why: CI builds RPMs from the checked-out source into _output/rpmbuild and installs them via --repofrompath, but dnf resolved microshift from rhocp-4.21-for-rhel-9-x86_64-rpms instead, because the released NEVRA (4.21.29-202608170915.p0.gbc6f556) sorts higher than the locally built nightly version. Install transaction from a failing run of pull-ci-openshift-microshift-release-4.21-ocp-full-conformance-rhel-eus:

microshift  x86_64  4.21.29-202608170915.p0.gbc6f556.assembly.4.21.29.el9  rhocp-4.21-for-rhel-9-x86_64-rpms

That released RPM pins the pre-fix ovn-kubernetes-microshift image (built 2026-08-12 from cf07889, 44 commits behind release-4.21, missing the OCPBUGS-105440 fix), so the tested nodes always hit the already-fixed bug. This is also why the rebase PR #7242 cannot pass CI despite pinning a fixed image.

With repository priority 1 on the local repo, dnf prefers packages from it regardless of version ordering, so CI tests what it built.

How was this tested

bash -n and shellcheck on the modified script (no new findings). Behavioral verification will come from CI on this PR: the conformance jobs should now install the source-built RPMs (which pin the fixed ovn-kubernetes image from the rebase base) — not verified locally.


This PR description was generated using AI. Please verify before acting on it.
Assisted-By: Claude Fable 5

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.

@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 43d95526-327b-40cf-933a-a75bb4fbaf2b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

@openshift-ci
openshift-ci Bot requested review from eslutsky and jerpeter1 August 27, 2026 08:25
@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mkowalski
Once this PR has been reviewed and has the lgtm label, please assign jogeo for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@redhat-chai-bot

Copy link
Copy Markdown
Contributor

This fix is correct and addresses the root cause of the 4.21 nightly permafail.

The problem: The dnf install command makes the microshift-local repo available via --repofrompath, but without a priority setting, dnf silently prefers microshift-4.21.29 from rhocp-4.21-for-rhel-9-x86_64-rpms because its NEVRA sorts higher than the locally-built nightly RPMs. The released 4.21.29 RPM pins the pre-fix ovn-kubernetes-microshift image (built before OCPBUGS-105440 was fixed), so CI tests always run with the broken OVN image regardless of what the nightly payload contains.

The fix: --setopt=microshift-local.priority=1 (highest dnf priority) ensures the locally-built RPMs win over any released version. This is minimally invasive — it doesn't disable the RHOCP repos (preserving access to other dependencies) and uses the standard dnf mechanism for repo preference.

Evidence: Confirmed by examining the openshift-microshift-infra-rpm-install-aws step artifact logs on PR #7242, which show every MicroShift package installed from rhocp-4.21-for-rhel-9-x86_64-rpms instead of microshift-local.

This is the critical PR for unblocking the 4.21 nightly stream. Once merged, the rebase PR #7242 should also be retested — it should pass since its pinned images contain the OVN fix.

Tracked in USHIFT-7489.


AI-generated. Review for accuracy.

@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@mkowalski: The following test 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/e2e-aws-tests-bootc e4d36f4 link true /test e2e-aws-tests-bootc

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.

@sdodson

sdodson commented Aug 27, 2026

Copy link
Copy Markdown
Member

/payload-job periodic-ci-openshift-microshift-release-4.21-periodics-e2e-aws-ovn-ocp-conformance

@openshift-ci

openshift-ci Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@sdodson: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-microshift-release-4.21-periodics-e2e-aws-ovn-ocp-conformance

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/aa4f97d0-a212-11f1-87e9-cb99bb355760-0

@sdodson
sdodson merged commit e6439cf into openshift:release-4.21 Aug 27, 2026
9 of 11 checks passed
@mkowalski
mkowalski deleted the fix-local-rpm-repo-priority branch August 27, 2026 12:31
@pacevedom pacevedom changed the title NO-JIRA: scripts: prefer locally built RPMs over product repos in configure-vm.sh USHIFT-7488: scripts: prefer locally built RPMs over product repos in configure-vm.sh Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants