-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Update yum repository layout to be per repository #1937
Comments
I'm wondering if we should instead go for versions as top level, then the version specific repos. So: $ mkdir -p {3,8,3.9,nightly}/{client,foreman,plugins,katello}
$ ln -s 3.8 latest
$ tree
.
├── 3.8
│ ├── client
│ ├── foreman
│ ├── katello
│ └── plugins
├── 3.9
│ ├── client
│ ├── foreman
│ ├── katello
│ └── plugins
├── latest -> 3.8
└── nightly
├── client
├── foreman
├── katello
└── plugins We can also store the per-release GPG key in the directory (which would be missing in nightly). That way you immediately know which Katello release belongs to which Foreman release. |
What would you do with Pulpcore and Candlepin? For consistency, should we do by project and then version? e.g.
|
Yes, that would be best. Though for candlepin aren't they essentially also tied to a Foreman release? Today they're for a Katello release and Katello is essentially for a Foreman release. Or do you plan to maintain it more like pulpcore? Which would also imply a pulpcore-packaging equivalent. Maybe that's a good rule: -packaging repository gets a top level directory. Each rpm/ branch in that repository is the second level directory, where rpm/develop maps to rpm/nightly. Each packages/* directory within that branch gets a third level directory. Pulpcore doesn't have rpm/develop so there wouldn't be a pulpcore/nightly. It also doesn't split packages into multiple sub-directories so it doesn't get a third level directory. |
Given it's one package I don't intend to management in the same way as our packaging repository. But I do think it would be convenient for us to treat Candlepin as stand-alone and released based on it's version to allow updates to Candlepin that can then be tested without the risk of breaking nightly (or a release branch). We could push updates to Candlepin, run for example our puppet test suite or something equivalent and know the package changes are "good" before we promote them into Katello.
Doesn't change things, just an FYI, as of today, this is no longer true -- https://github.com/theforeman/pulpcore-packaging/tree/rpm/develop |
I'm mostly trying to find a good way to describe a "policy".
Candlepin has always been an exception. It has never had its own specs in our packaging repository. In that sense, it's not surprising it needs its own policy. I'm not opposed to this. Taking it to puppet-candlepin, we could easily have a policy very similar to puppet-pulpcore. If the repo can be consumed standalone, that would simplify testing.
Ah, I missed that. Good to know. |
That is the tactic I am taking starting from the Copr side as there will be a dedicated build repo for it -- https://copr.fedorainfracloud.org/coprs/g/theforeman/foreman-candlepin-nightly-staging/ |
I thought more about, and started testing the Candlepin part and realized it needed it's own repository even if that repo was realllly small and didn't actually have packages. To that end, I created https://github.com/theforeman/candlepin-packaging to allow me to work through this concept. |
|
@evgeni @ekohl As we are changing the structure of the repositories going forward, and creating a new host, this leaves the question of what do we do about the old repositories, and hostname?
|
This will break all upgrades for users, making it very painful for them.
I lean to this, though I'd probably try to use symlinks instead of copying. |
The copy here meant "from web01 to rpm-repo01" so that we can decommission web01. |
Then yes, I'd keep |
Background
Currently the yum.theforeman.org repository layout follows an almost common model with Foreman being the exception:
Where:
latest/
points to Foreman repositorynightly/
represents Foreman nightly repositoryProposal
That the repositories get aligned under a common naming and structure to make them more predictable, easier to code against and allow better matching with stagingyum and our layout that is coming from Copr.
In addition to this being the structure, we would retain (for some period of time) legacy symlinks:
The text was updated successfully, but these errors were encountered: