Katello - Large Custom Repo

I have a general inquiry about best practice for an in-house large custom repo.

What is consider best practice for a situation where we have a large repo (over 1TB)? Would it make sense to host in locally on Katello server… if it does, how can I have katello handle it so that the whole repo is not duplicated twice (local mirror + Katello mirroring)?

Is this best practice for Katello to manage a custom in-house repo or is there a better way? Sorry, did not find any info on a best practice for such a situation.

Thanks much for any who assist.

I don’t have any experience with this myself but my first thoughts are that it would be good to have your in-house repo geographically close to the Foreman/Katello server - the same region or datacenter. You might even NFS mount a volume for it. Beyond that I’m not aware of any best practice documented or otherwise.

Regarding the fact that the whole repo would be duplicated by Katello’s mirroring of it - I’m not sure there’s a way around that but I’d be curious if others have gotten clever with this somehow.

1 Like

Hi Jonathon,

As it stands now, the repo is actually on an nfs mount and is about 1TB. I guess I’m not following how Katello will handle that – will it attempt to download every RPM? or is setting the repo to ‘on demand’ in Katello my solution here?

Also curious to hear what others have done.


Hi and,

With ‘Immediate’ on the repo it will copy all of the packages to Katello at sync time. With ‘On Demand’ sync will create metadata only and packages will be pulled from the sync point and into Katello as they are requested by clients. Iit sounds like that is partially what you’re looking for. But at the point when all of the packages have been pulled by clients you’ll effectively have two copies - your master copy and the Katello copy. Maybe that’s what you were looking for in the first place - sorry if I misunderstood!

1 Like

Hi Jonathon,

That works! You got me thinking now… what if I have a small repo and I don’t want it to be hosted upstream? I’d want Katello to be the host.

In my POC environment, I built the repo locally on my Katello server within the OS and then added the repo via Katello GUI as a ‘yum’ repo (Mirror on Sync checked on). Is the solution here to do ‘on demand’ as well and turn off ‘mirror on sync’?

Thanks for the insight!

For a small custom repo it can be simpler let Katello be the authority for its content rather than having an upstream like you say. In that case I believe the ‘Mirror on Sync’ and the ‘Download Policy’ options are irrelevant as they relate to repos which have an upstream parent.

Since your small repo already exists you can go ahead and manage it from the Katello UI or Hammer CLI to add/remove packages and so on!

1 Like

Thanks, Jonathon. I guess I’m not seeing how to create a repo that Katello manages directly. I thought I only had to provide upstream links. Attempting to find this now…

Thank you.

To do this, simply create a repo in Katello with no upstream URL defined and no sync schedule.

The you can push packages into the repo via WebUI, Hammer CLI, or API.