Skip to content
This repository has been archived by the owner on Nov 13, 2019. It is now read-only.

Repo Maintenance Options

Oliver Schmitz edited this page Nov 29, 2013 · 8 revisions

Maintenance Menu

Current maintenance options are related to propagation chain maintenance.

maintenance overview page

What are propagation chains?

Let us assume, you have three environments: dev, qa, prod and three repositories dev-repo, qa-repo, and prod-repo. We would suggest to configure a propagation chain as follows: All servers in prod are connected to prod-repo, all servers in qa are connected to qa-repo and prod-repo, all servers in dev are connected to dev-repo, qa-repo and prod-repo. In this case prod-repo will be the repo with the most RPMs inside. Dev-repo and qa-repo will only have release candidates of RPMs that have a pending change. All other RPMs will be fetched by all servers from pro-repo.

We call this setup of repose, dev-repo, qa-repo and prod-repo a propagation chain. If you want to test a new version of a new RPM, you first put it into the dev-repo, update some test machines and validate the RPM. If this is successfull, you propagate (move) the RPM from dev-repo to qa-repo. Now the RPM is available to all dev and all qa servers. If you are happy with this version in qa too, you propagate the RPM to pro-repo, and than it is available in all stages.

As the Yum Repo Server (by design) has no knowledge about which repos form a propagation chain, you need to supply two repo names in maintenance forms.

view and delete obsolete RPM versions in propagation chains.

A RPM in a lower level repo (for example dev-repo) is considered obsolete, if in a higher level repo (for example pro-repo) is a RPM available with the same name and architecture and a higher version. In this case the obsolete RPM will never be used for an update in any stage. And we consider version pinning a bad idea. Thus we would delete the obsolete RPM from the lower level repo.

view and propagate "propagatable" RPMs

A RPM in a lower level repo (for example dev-repo) is considered propagatable, if in a higher level repo (for example pro-repo) there is either no RPM with the same name and architecture, or there are only RPM available with the same name and architecture and lower versions. If successfully tested, the propagatable RPM could be propagated to the higher level repo.

Scheduled maintenance options

Limit number of versions to keep in one repo of any RPM

Use the max RPMs to keep setting in repo info static repo info layer