Files
Controls-docs/proposals/draft_repositories.md
T
2022-12-05 13:53:04 +01:00

79 lines
2.2 KiB
Markdown

# 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 / ... ?)