|
|
27db0d |
# Build Systems overview
|
|
|
27db0d |
|
|
|
27db0d |
To build artifacts that will be released/pushed to the mirror network, CentOS Project relies on distributed build systems, mostly :
|
|
|
27db0d |
|
|
|
27db0d |
* [Koji](https://pagure.io/koji)
|
|
|
6d98f4 |
* [reimzul](reimzul.md)
|
|
|
27db0d |
|
|
|
27db0d |
While reimzul is still being used for CentOS Linux 7 rpm builds, koji is now the one being used for CentOS Linux 8 and all Stream releases (but different environments)
|
|
|
27db0d |
|
|
|
6d98f4 |
RPM packages built by/for Special Interest Groups on our [Community Build Service](koji-cbs.md) are also built on a koji instance, different from the one[s] used to build CentOS Linux/Stream distributions.
|
|
|
27db0d |
|
|
|
27db0d |
We adviced you to read upstream koji documentation to have details of all needed components and how they can be combined all together to be able to build/distribute packages, but here is a quick overview :
|
|
|
27db0d |
|
|
|
27db0d |
* kojihub/kojiweb : this is the main component, itself needing:
|
|
|
27db0d |
* authentication system in place (using either TLS/x509 certificates of kerberos tickets)
|
|
|
27db0d |
* postgresql database access : to store build results, activity, etc
|
|
|
27db0d |
* NFS storage: to store all builds logs and rpm packages and composed repositories
|
|
|
27db0d |
* httpd running with proper TLS certificates to encrypt traffic between hub and builders
|
|
|
27db0d |
* kojid : multiple builders, responsible to pick tasks (on the hub), and then use mock to build rpm packages and send results back to the kojihub
|
|
|
27db0d |
* depending if one of these nodes is also in the `createrepo` channel, it will itself RW rights on the NFS volume to be able to update repodata after some builds
|
|
|
27db0d |
|
|
|
27db0d |
Now you can read other sub-sections about dedicated koji and some specific notes around these implementations
|
|
|
27db0d |
|
|
|
27db0d |
It's through worth knowing that *all* koji enviroments (almost) are deployed from the same Ansible roles (but with different settings, per different inventory or group variables)
|
|
|
27db0d |
|
|
|
27db0d |
Some links to ansible roles:
|
|
|
27db0d |
|
|
|
27db0d |
* [kojihub](https://github.com/centos/ansible-role-kojihub)
|
|
|
27db0d |
* [kojid](https://github.com/centos/ansible-role-kojid)
|
|
|
27db0d |
* [nfs-server](https://github.com/centos/ansible-role-nfs-server)
|
|
|
27db0d |
* (only used for SIGs)[stylo](https://github.com/centos/ansible-role-stylo)
|