RSPEED-3082: add build-nudge-files annotation for cross-repo nudging#1844
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (11)
🔇 Additional comments (1)
WalkthroughAdded a ChangesPipelineRun Build Nudge Configuration
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
✨ Simplify code
Warning Review ran into problems🔥 ProblemsStopped waiting for pipeline failures after 30000ms. One of your pipelines takes longer than our 30000ms fetch window to run, so review may not consider pipeline-failure results for inline comments if any failures occurred after the fetch window. Increase the timeout if you want to wait longer or run a 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 |
|
Wouldn't it be more straightforward to move the deployment config from Adding a nudge to this repo that references a file that doesn't exist anywhere in this repo may be confusing to future contributors. |
The default nudge file pattern (.*Dockerfile.*, .*.yaml, .*Containerfile.*) does not match .yml files. Since lscore-deploy uses openshift/lightspeed-stack.yml, the nudge controller silently skips it. This annotation explicitly targets the correct file so the nudge controller can find and update the image digest reference after each push build. Signed-off-by: Ellis Low <elow@redhat.com>
60a4348 to
a84fe82
Compare
Sam, thanks for your comment. Regarding the confusion I added a comment to the yml. Some reasoning for why I want to do it this way:
|
|
@samdoran There may be another option that lets us remove this change. Konflux has a default pattern that looks for files to do the digest replacement in, but Konflux's default file patterns only match .yaml, not .yml. We can override that pattern via a namespace ConfigMap in lightspeed-core-tenant so it also picks up .yml files. In that case we would not need this change, the cross-repo wiring would live entirely in Konflux cluster config. Do you think that's a better way? (I have not tested that, btw. Claude tells me we have this option.) |
|
/ok-to-run |
|
/ok-to-test |
That's the fundamental problem: app-interface expects the deployment config to live in the same repo as the code being deployed. That allows the container image tag to match the deployment config hash for automatic deployment. Fighting that design, limiting as it is, adds complexity. I agree it would be odd to have our deployment config here, but that arrangement would align best with what app-interface recommends.
These two things are easily solved with a codeowners file.
Nudging is a very useful feature. This is the incorrect use of nudging. While this change does seem to work, it crosses many boundaries that were not meant to be crossed. Nudging is meant for updating images used by components of the same application. A relationship is defined between the components of an application in Konflux within the same tenant. If component B uses component A in a The simplest solution is to move the config from |
What
Add
build.appstudio.openshift.io/build-nudge-filesannotation to the push PipelineRun, targetingopenshift/lightspeed-stack.ymlin lscore-deploy.Why
The Konflux nudge controller's default file pattern (
.*Dockerfile.*, .*.yaml, .*Containerfile.*) only matches.yamlfiles. Since lscore-deploy usesopenshift/lightspeed-stack.yml(note:.yml), the nudge controller silently skips it — no MR is opened to bump the image digest.This annotation explicitly tells the nudge controller which file to scan, bypassing the default pattern entirely.
Tickets
Testing
Once merged, the push pipeline triggered by this merge will include the annotation. The nudge controller should then open an MR in lscore-deploy updating the image digest in
openshift/lightspeed-stack.yml.Summary by CodeRabbit