forked from Controls/gitea-pages
2.4 KiB
2.4 KiB
Draft Repository Design
Requirements
- Certain repositories must only be visible to certain clients (NX - currently done via htaccess file)
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:
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
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 / ... ?)