feature: add PulpProject class for Pulp-based package repository support - #2163
Conversation
|
This looks good, do we have an instance running with pulp to check this PR? |
@kshtsk for review, I am working on deploying Pulp server on OCP cluster. |
f60b0ef to
b2e5898
Compare
6a38b81 to
bb9ccff
Compare
0e9add6 to
e27a58d
Compare
39c888c to
c68e408
Compare
batrick
left a comment
There was a problem hiding this comment.
I recommend using an LLM to help you write up some docs on this new change.
The draft documentation is currently available on CephPad: https://pad.ceph.com/p/ceph_artifact_management_via_pulp. I will migrate this to a wiki page once all associated tasks are complete. |
5e367d6 to
b133a48
Compare
|
Smoke tests are passed - http://172.21.5.153:9091/vamahaja-2026-06-05_08:39:01-smoke-tentacle-distro-default-trial
|
|
This seems like a breaking change... While the number of global teuthology users is low, I am personally not a fan of removing options like I'd prefer to see something like But this is just my opinion. I'd like @zmc to weigh in. Can the option be set on a per-job/run basis? |
I don't think it is that breaking, @djgalloway to avoid interruption, could you or someone add the config to the server's teuthology yaml already: Or at least we need this before the merge.
This complicates the code logic and will make potential misuse, what to prefer when both "use_shaman" and "use_pulp" are enable or disabled, it is not possible to predict which is used not looking into the source code.
@djgalloway I like the idea of giving package_source on run/job basis though. |
@djgalloway @kshtsk no changes are needed, default values are already pointing to shaman with the required configs - https://github.com/ceph/teuthology/pull/2163/changes#diff-4525b7398914ab0a466329cd35d0e8b22b35479597fbfdca524baa871ae7d184R184 |
…pport Add a `PulpProject` subclass of `GitbuilderProject` so teuthology can use Pulp-hosted package repos when `config.package_source` is `pulp`, alongside the existing `Gitbuilder` and `Shaman` artifact backends. Signed-off-by: Vaibhav Mahajan <vamahaja@redhat.com>
For this to work long-term I don't know how we cannot have pulp be publicly (on the VPN at least) readable? |
batrick
left a comment
There was a problem hiding this comment.
I'm okay with this as-is to start.
|
How's pushing the big green button? |

This PR adds a
PulpProjectclass that extendsGitbuilderProjectso teuthology can use Pulp-hosted package repositories. It introduces new configuse_artifacts, set it topulp(globally in site config or per job) to use Pulp; other values keep the currentGitbuilderandShamanbehavior.Configuration
use_artifacts: 'pulp'- selects the Pulp backend (alongside existing 'shaman' and the default Gitbuilder path when unset / other values).pulp_host— Pulp server hostname (documented in siteconfig.rst).Key changes
PulpProjectinheriting fromGitbuilderProject._get_base_url()to use Pulp’s repository API._get_distro()for Pulp’s distro format._get_package_version()and_get_package_sha1()to read metadata from Pulp responses.get_builder_project()soconfig.use_artifacts == 'pulp'returnsPulpProject.siteconfig(and related docs) foruse_artifacts: 'pulp'andpulp_host.TestPulpProjecttoteuthology/test/test_packaging.py.