Merge katello RPM repository into foreman-plugins repository

This is me taking my “not far enough” comment in Proposal: Merging foreman pipelines with pipelines of other plugins - #2 by ekohl and making it its own RFC.

Context

Today we have 3 RPM repositories:

  • foreman
  • foreman-plugins
  • katello

Each needs the one above it and each has its own pipeline. So we have these pipelines set up in Jenkins:

Some notes:

  • foreman-plugins doesn’t run actual end-to-end tests, just checks repoclosure
  • katello uses katello version numbers which are different from Foreman, requiring a mapping
  • luna is katello with additional plugins enabled

Technically the sources are also split in packaging (see foreman-packaging/packages at rpm/develop · theforeman/foreman-packaging · GitHub)

Proposal

The proposal is to merge all packages tat are now in katello and move them into plugins.

Open topics

There are some issues we need to discuss and I don’t have good answers to all of them. IMHO they are blockers, but I think if we resolve them well this will be a benefit for both users and maintainers.

katello-repos

Some technical implications: today the katello-repos package contains the katello repo definition, which becomes obsolete but also the Pulp and Candlepin repository definitions. I think it’ll be a lot of overhead if we include those for all users, but for repoclosure we’ll need candlepin-selinux because katello-selinux depends on it.

pipelines

We’ll also need to decide on the pipelines to run. If we combine all of them, we can’t release any plugins when Katello is broken. IMHO this is acceptable if we commit to resolving issues quickly.

GPG signing

Today plugins isn’t GPG signed, but katello is. This is weird because what do GPG signatures on your package mean if its dependencies are unsigned? Feature #4788: Plugin rpms not signed - Packaging - Foreman has also been open over almost 11 years. Perhaps it’s a good excuse to start this.

3 Likes