Repository navigation
NE-2934: Add Renovate automation for Konflux RPM lockfile updates - #608
grzpiotrowski wants to merge 1 commit into
Conversation
|
Pipeline controller notification This PR uses the pipeline controller for second-stage tests. Selection and triggering follow the repository configuration. Use |
9a7d8ca to
3ca855c
Compare
|
/retitle NE-2934: Add Renovate automation for Konflux RPM lockfile updates |
|
@grzpiotrowski: This pull request references NE-2934 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 story to target the "5.1.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. |
|
Scheduling tests matching the |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: alebedev87 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/assign @pedjak |
pedjak
left a comment
There was a problem hiding this comment.
issue: The approach here (regex manager + postUpgradeTasks with make konflux-rpm-lock) diverges from the standard pattern used across other openshift repos with RPM lockfiles. It also has several problems: make is likely not in MintMaker's allowedPostUpgradeCommands, regexManagers is deprecated since Renovate v37 (the instance runs v44), and there's no explicit grouping to guarantee the Containerfile and rpms.in.yaml updates land in a single PR.
The standard pattern (used by openshift/hive, openshift/lvm-operator, openshift/assisted-service, etc.) is:
-
Use
context: containerfile:inrpms.in.yamlinstead ofcontext: image:with a hardcoded digest — this makes the Containerfile the single source of truth for the base image:context: containerfile: file: ../Containerfile.external-dns-operator imagePattern: registry.access.redhat.com/ubi9/ubi-micro
-
Extend the MintMaker preset and enable the
rpm-lockfilemanager:"enabledManagers": ["dockerfile", "tekton", "rpm-lockfile"], "extends": [ "github>konflux-ci/mintmaker-presets:refresh-rpm-lockfiles" ],
The preset hooks into the Dockerfile manager's postUpgradeTasks — when Renovate updates the ubi-micro digest in the Containerfile, refresh-rpm-lockfiles finds the associated rpms.in.yaml via context.containerfile and regenerates the lockfile automatically. No regex manager or custom post-upgrade commands needed.
The refresh-rpm-lockfiles tool (source) specifically looks for context.containerfile in rpms.in.yaml — it doesn't understand context.image, so the current hardcoded digest approach would be skipped by the standard tooling entirely.
Reference: https://konflux-ci.dev/docs/mintmaker/rpm-lockfile/
|
/lgtm cancel |
3ca855c to
027a077
Compare
|
@pedjak thank you for the review. I made the changes as suggested. |
|
/hold until after the release, in the meantime the rpms are bumped in #628 |
When Renovate detects a ubi-micro digest update in Containerfile.external-dns-operator: 1. The Dockerfile manager updates the digest 2. The refresh-rpm-lockfiles preset's postUpgradeTasks runs refresh-rpm-lockfiles 3. That tool reads rpms.in.yaml, finds the containerfile.file path, extracts the image from the Containerfile 4. Regenerates rpms.lock.yaml with the new base image 5. Both files are committed in a single PR
027a077 to
f397eb2
Compare
|
/unhold |
|
@grzpiotrowski: all tests passed! 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. |
|
/hold it becomes obsolete if/when #654 gets merged. |
Add Renovate automation to keep Konflux RPM lockfile synchronized with base image updates.
When Renovate detects a ubi-micro digest update in Containerfile.external-dns-operator:
This ensures that openssl-libs and openssl-fips-provider RPM versions stay synchronized with the base image in automated dependency updates.
Followup to #588, #600.