# Draft Repository Design ## URL Patterns All repo URLs for any operating system follow this patterns: * https://repos.psi.ch/<os>/iso * https://repos.psi.ch/<os>/tags/<tag>/<repo> * https://repos.psi.ch/<os>/tags/<tag>/keys; * https://repos.psi.ch/<os>/snapshots/<tag>/<repo> * https://repos.psi.ch/<os>/snapshots/<tag>/keys * https://repos.psi.ch/<os>/latest/<repo> * https://repos.psi.ch/<os>/latest/keys; The __<os>__ part is a combination of the __ID__ and __VERSION_ID__ variable inside the standard (see https://stackoverflow.com/questions/47838800/etc-lsb-release-vs-etc-os-release) /etc/os-release file. In some cases the VERSION_ID will be trunkated (especially for RHEL systems) Example RHEL7 system: ``` [root]# cat /etc/os-release [...] ID="rhel" VERSION_ID="7.9" [...] ``` will result in __rhel7__. Example Ubuntu system: ``` [root]# cat /etc/os-release [...] ID=ubuntu VERSION_ID="22.04" [...] ``` will result in __ubuntu22.04__. For os independen firmware images we will have a "repos" like this: * https://repos.psi.ch/firmware * https://repos.psi.ch/firmware/<group> ### Examples * https://repos.psi.ch/rhel7/iso * https://repos.psi.ch/rhel7/tags/<tag>/<repo> * https://repos.psi.ch/rhel7/tags/<tag>/keys; * https://repos.psi.ch/rhel7/snapshots/<tag>/<repo> * https://repos.psi.ch/rhel7/snapshots/<tag>/keys * https://repos.psi.ch/rhel7/latest/<repo> * https://repos.psi.ch/rhel7/latest/keys; ---- * https://repos.psi.ch/rhel8/iso * https://repos.psi.ch/rhel8/tags/<tag>/<repo> * https://repos.psi.ch/rhel8/tags/<tag>/keys * https://repos.psi.ch/rhel8/snapshots/<tag>/<repo> * https://repos.psi.ch/rhel8/snapshots/<tag>/keys * https://repos.psi.ch/rhel8/latest/<repo> * https://repos.psi.ch/rhel8/latest/keys ---- * ... ---- * https://repos.psi.ch/firmware/... ## Filesystem Layout ![](draft_repositories_overview_directories.drawio.svg) ## Questions * One RPM to enable/install supported yum repository * Where do we provide our own rpm packages - lx-misc (currently pli-misc) * How to know which systems are using which repos? (via rpm package list / hiera config / ... ?)