Skip to content

Conversation

@crungehottman
Copy link
Member

This commit adds a new 'KonfluxSource' backend that loads RPM advisory metadata from local JSON files rather than querying remote ET APIs. This is one component required for delivery of RPMs built in Konflux.

Note: Future modifications will likely be required as additional functionality is implemented. For example, the 'src' attribute on RpmPushItem (currently set to None) may need to be modified to support "upload from URL" functionality when that is added in the future.

This commit adds new 'KonfluxSource' backend that loads RPM advisory
metadata from local JSON files rather than querying remote ET APIs.
This is one component required for delivery of RPMs built in Konflux.

Note: Future modifications will likely be required as additional
functionality is implemented. For example, the 'src' attribute on
RpmPushItem (currently set to None) may need to be modified to support
"upload from URL" functionality when that is added in the future.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Copy link
Member

@rbikar rbikar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

before getting further we need figure out the src of RPM push item from Konflux.
I guess we can just agree that src will include the download URL of RPM and move forward with this change.

return RpmPushItem(
name=filename,
state="PENDING",
src=None, # RPMs are stored in artifact storage
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, I'm just wondering what should be responsible for setting this field.
If you compare this to errata_source, the rpm push item gets src from Koji where it's a path to that rpm on some filesystem. And src in this case should be set to download URL of RPM.

I quickly went through the design docs and it doesn't seem to state the info about getting URLs to artifact storage (maybe it's buried in some resolved comments).

My current understanding is that the overall process of uploading RPM to rhsm-pulp should look like:

  1. pubtools-pulp-push gets push items from newly introduced KonfluxSource
  2. for RPM upload to rhsm-pulp we would use following approach:
    • send upload request to rhsm-pulp but we would need to get full URL of given artifact - RPM in this case
    • this URL should be determined in pushsource library (requesting the artifact-storage API possibly)
    • also some check of the artifact existence should be done here
  3. rhsm-pulp will download directly the artifact from given URL (if URL isn't public, we would set the env accordingly)

@jajreidy can you please have a look a this?

Copy link
Member Author

@crungehottman crungehottman Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Robert, thank you for the review!

hmm, I'm just wondering what should be responsible for setting this field.

You and me both 🙂

And src in this case should be set to download URL of RPM.

Agreed.

My current understanding is that the overall process of uploading RPM to rhsm-pulp should look like [...]

We have the same understanding.

Unfortunately, it seems that we cannot yet download RPMs from RoK artifact storage by URL, or outside of the Konflux environment. I filed ROK-1509 to address this (in that issue, there's a link to a doc which describes the supported means to download RPMs from artifact storage); @jajreidy plans to work on ROK-1509 in this sprint, but he may need more information from us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants